In this tutorial, you will learn how to Get a YouTube Video thumbnail from a URL in PHP. A YouTube video thumbnail is the image that appears on a video’s listing on YouTube or video search results. A big part of why videos are clicked is because of an attractive thumbnail associated with the video link.
So, it’s important to have eye-catching thumbnails for your videos if you wish to attract more viewers. But what about getting those images from within the HTML page?
CONTENTS
How to get YouTube Video Id from URL?
To get the thumbnail, at first you have to parse the YouTube video id from the URL. To get the id we are going to use regex. Check the below function-
function get_youtube_id($url){
$reg = '/(?im)\b(?:https?:\/\/)?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)\/(?:(?:\??v=?i?=?\/?)|watch\?vi?=|watch\?.*?&v=|embed\/|)([A-Z0-9_-]{11})\S*(?=\s|$)/';
preg_match($re, $url, $matches);
return !$matches == Null ? $matches[1] : "";
}
//extract id from url
var_dump(get_youtube_id("https://www.youtube.com/watch?v=PgCliOxl41o"));
//output will be
//PgCliOxl41o
Get YouTube Video Title and Thumbnail
You can use one of these below methods to get a YouTube video title and thumbnail picture.
Method 1: Get thumbnail using YouTube Data API v3
The first method of getting YouTube video title and thumbnail we are going to use the new Data API v3 introduced by Google, which provides everything that is needed to get the data along with JSON parsing.
This method will work till Google’s servers keep on serving it directly. The reason why I prefer this method over any other available one is because of because Google recommended it. Let’s look at the code below:
<?php
$video_id = get_youtube_id("https://www.youtube.com/watch?v=PgCliOxl41o");
$url = "https://youtube.googleapis.com/youtube/v3/videos?part=snippet&id=".$video_id."&key=YOUR-API-KEY";
$data = file_get_contents($url);
$json = json_decode($data);
$thumbnails = $json->items[0]->snippet->thumbnails;
$description = $json->items[0]->snippet;
//print the title
echo $description->title .'<br/>';
//get default thumbnail
echo $thumbnails->default->url .'<br/>';
//get medium thumbnail
echo $thumbnails->medium->url .'<br/>';
//get high thumbnail
echo $thumbnails->high->url .'<br/>';
//get standard thumbnail
echo $thumbnails->standard->url .'<br/>';
//get maxres thumbnail
echo $thumbnails->maxres->url;
Method 2: Get thumbnail using Image URL
If you don’t want to use the API method, you can directly get the image from the image URL.
https://i.ytimg.com/vi/<video_id>/default.jpg
https://i.ytimg.com/vi/<video_id>/mqdefault.jpg
https://i.ytimg.com/vi/<video_id>/hqdefault.jpg
https://i.ytimg.com/vi/<video_id>/sddefault.jpg
https://i.ytimg.com/vi/<video_id>/maxresdefault.jpg
If you want to get .webp
version use the below code:
https://i.ytimg.com/vi_webp/<video_id>/default.webp
https://i.ytimg.com/vi_webp/<video_id>/mqdefault.webp
https://i.ytimg.com/vi_webp/<video_id>/hqdefault.webp
https://i.ytimg.com/vi_webp/<video_id>/sddefault.webp
https://i.ytimg.com/vi_webp/<video_id>/maxresdefault.webp
But keep in mind, all videos do not have .webp
version thumbnail.
Method 3: Get YouTube Player Background Thumbnail
You can also get the YouTube player background thumbnails either .jpg
or .webp
format.
WebP
https://i.ytimg.com/vi_webp/<video_id>/0.webp
JPG
https://i.ytimg.com/vi/<video_id>/0.jpg
Method 4: Get video frames Thumbnail
To get the start, middle, and end frames of a video, use the below URL:
WebP:
Start: https://i.ytimg.com/vi_webp/<video_id>/1.webp
Middle: https://i.ytimg.com/vi_webp/<video_id>/2.webp
End: https://i.ytimg.com/vi_webp/<video_id>/3.webp
JPG:
Start: https://i.ytimg.com/vi/<video_id>/1.jpg
Middle: https://i.ytimg.com/vi/<video_id>/2.jpg
End: https://i.ytimg.com/vi/<video_id>/3.jpg
Replace <video_id>
with your YouTube Video id.
Method 5: Get different resolution video Thumbnail
You can get the all different resolution video thumbnails from the below table. However, all YouTube video does not have this thumbnail because of video size.
Width | Height | URL |
120 | 90 | https://i.ytimg.com/vi/<video_id>/1.jpg |
120 | 90 | https://i.ytimg.com/vi/<video_id>/2.jpg |
120 | 90 | https://i.ytimg.com/vi/<video_id>/3.jpg |
120 | 90 | https://i.ytimg.com/vi/<video_id>/default.jpg |
320 | 180 | https://i.ytimg.com/vi/<video_id>/mq1.jpg |
320 | 180 | https://i.ytimg.com/vi/<video_id>/mq2.jpg |
320 | 180 | https://i.ytimg.com/vi/<video_id>/mq3.jpg |
320 | 180 | https://i.ytimg.com/vi/<video_id>/mqdefault.jpg |
480 | 360 | https://i.ytimg.com/vi/<video_id>/0.jpg |
480 | 360 | https://i.ytimg.com/vi/<video_id>/hq1.jpg |
480 | 360 | https://i.ytimg.com/vi/<video_id>/hq2.jpg |
480 | 360 | https://i.ytimg.com/vi/<video_id>/hq3.jpg |
480 | 360 | https://i.ytimg.com/vi/<video_id>/hqdefault.jpg |
640 | 480 | https://i.ytimg.com/vi/<video_id>/sd1.jpg |
640 | 480 | https://i.ytimg.com/vi/<video_id>/sd2.jpg |
640 | 480 | https://i.ytimg.com/vi/<video_id>/sd3.jpg |
640 | 480 | https://i.ytimg.com/vi/<video_id>/sddefault.jpg |
1280 | 720 | https://i.ytimg.com/vi/<video_id>/hq720.jpg |
1920 | 1080 | https://i.ytimg.com/vi/<video_id>/maxresdefault.jpg |
Conclusion
After reading this article, you should have a better understanding of how to get a YouTube video thumbnail from a URL in PHP. If there is anything that we can do for you about the topic or if you need help with something else related to marketing your business online, please feel free to contact us at any time.