Friday, 3 May 2013

How to get thumbnail of YouTube video link using YouTube API in Android

Each YouTube video has 4 generated images. They are predictably formatted as follows:

http://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/1.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/2.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/3.jpg

The first one in the list is a full size image and others are thumbnail images. The default thumbnail image (ie. one of 1.jpg, 2.jpg, 3.jpg) is:

http://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg

For the high quality version of the thumbnail use a url similar to this:
http://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg

There is also a medium quality version of the thumbnail, using a url similar to the HQ:
http://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg

For the maximum resolution version of the thumbnail use a url similar to this:
http://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

All of the above urls are available over https too. Just change http to https in any of the above urls.

Alternatively, you can use the YouTube API to get thumbnail images.
String img_url="http://img.youtube.com/vi/WLBuJfaaGD8/default.jpg";

public void DownloadThumbnailImageYoutubeVideo(final String imgurl)
      {      
         new Thread(new Runnable()
           {
             public void run()
              {
               try
                {
                 final Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(imgurl).getContent());
                   imgView.post(new Runnable()
                     {
                       @Override
                       public void run()
                      {
                         if(bitmap !=null)
                         {                            
                             imgView.setImageBitmap(bitmap);                                          
                          }  

                       }
                      });
                 } 
                  catch (Exception e)
                  {}
               }
         }).start(); 
       }

I will be happy if you will provide your feedback or follow this blog. Any suggestion and help will be appreciated.

Thank you :)