Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get a YouTube video thumbnail from the YouTube API?

If I have a YouTube video URL, is there any way to use PHP and cURL to get the associated thumbnail from the YouTube API?

like image 314
CodeOverload Avatar asked Jan 14 '10 23:01

CodeOverload


People also ask

Can I download a YouTube video thumbnail?

In your new tab, you will see a large-sized version of your video's thumbnail. To save this thumbnail to your device, right-click it and select “Save Image As.” Select a folder to save the thumbnail in, and you're all set.

Will YouTube auto generate a thumbnail?

We are running a small experiment where 0.3% of viewers will see an auto-generated thumbnail, instead of your custom thumbnail. We are not removing the ability to create your custom thumbnail, but we hope to gain insights on auto-generated thumbnails for the future.


2 Answers

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

https://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg https://img.youtube.com/vi/<insert-youtube-video-id-here>/1.jpg https://img.youtube.com/vi/<insert-youtube-video-id-here>/2.jpg https://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 (i.e., one of 1.jpg, 2.jpg, 3.jpg) is:

https://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:

https://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:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg 

For the standard definition version of the thumbnail, use a URL similar to this:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/sddefault.jpg 

For the maximum resolution version of the thumbnail use a URL similar to this:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg 

All of the above URLs are available over HTTP too. Additionally, the slightly shorter hostname i3.ytimg.com works in place of img.youtube.com in the example URLs above.

Alternatively, you can use the YouTube Data API (v3) to get thumbnail images.

like image 163
Asaph Avatar answered Sep 20 '22 06:09

Asaph


You can use YouTube Data API to retrieve video thumbnails, caption, description, rating, statistics and more. API version 3 requires a key*. Obtain the key and create a videos: list request:

https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID 

Example PHP Code

$data = file_get_contents("https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=T0Jqdjbed40"); $json = json_decode($data); var_dump($json->items[0]->snippet->thumbnails); 

Output

object(stdClass)#5 (5) {   ["default"]=>   object(stdClass)#6 (3) {     ["url"]=>     string(46) "https://i.ytimg.com/vi/T0Jqdjbed40/default.jpg"     ["width"]=>     int(120)     ["height"]=>     int(90)   }   ["medium"]=>   object(stdClass)#7 (3) {     ["url"]=>     string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/mqdefault.jpg"     ["width"]=>     int(320)     ["height"]=>     int(180)   }   ["high"]=>   object(stdClass)#8 (3) {     ["url"]=>     string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/hqdefault.jpg"     ["width"]=>     int(480)     ["height"]=>     int(360)   }   ["standard"]=>   object(stdClass)#9 (3) {     ["url"]=>     string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/sddefault.jpg"     ["width"]=>     int(640)     ["height"]=>     int(480)   }   ["maxres"]=>   object(stdClass)#10 (3) {     ["url"]=>     string(52) "https://i.ytimg.com/vi/T0Jqdjbed40/maxresdefault.jpg"     ["width"]=>     int(1280)     ["height"]=>     int(720)   } } 

* Not only that you need a key, you might be asked for billing information depending on the number of API requests you plan to make. However, few thousand requests per day are free.

Source article.

like image 20
Salman A Avatar answered Sep 23 '22 06:09

Salman A