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.
This is my way. Slow, but it works. :)
function getVideos($channel){
if($channel == ""){
return false;
}
/* Get number of videos */
$books = simplexml_load_file('http://gdata.youtube.com/feeds/base/users/'.$channel.'/uploads?max-results=1&start-index=1');
$numb_videos = $books->children( 'openSearch', true )->totalResults;
settype($numb_videos, "integer");
$ids = array();
$i = 1;
for($i = 1; $i <= $numb_videos; $i++){
$books = simplexml_load_file('http://gdata.youtube.com/feeds/base/users/'.$channel.'/uploads?max-results=1&start-index='.$i);
$ApiLink = $books->entry->id;
settype($ApiLink, "string");
$ApiLink = str_replace("http://gdata.youtube.com/feeds/base/videos/", "", $ApiLink);
array_push($ids, $ApiLink);
}
return $ids;
}
Best Answer
The channels#list method will return a JSON with some information about the channel, including the playlist ID for the "uploads" playlist:
With the playlist ID you can get the videos with the playlistItems#list method:
You can test those at the end of the documentation pages.