Как получить эскиз с видео YouTube, Vimeo и Dailymotion
Хотите получить эскизы видео YouTube, Vimeo и Dailymotion? Эти 3 самые популярные веб-сайты для обмена видео в Интернете. Каждая из этих платформ позволяет пользователям получать миниатюры своих видеороликов. В этой статье мы увидим, как получить миниатюру, используя URL-адрес видео на этих платформах.
Когда вы интегрируете видеогалерею на веб-сайты, вы должны отображать эскизы видео. А затем при щелчке по миниатюре должно воспроизводиться соответствующее видео. Встраивание видео с помощью тега iframe не рекомендуется. Это требует большой пропускной способности сервера и увеличивает размер страницы.
Я собираюсь написать код, который получает миниатюру видео через URL-адрес видео. Щелкнув эти миниатюры, вы можете воспроизводить свои видео, используя fancybox или любые другие пользовательские решения, которые вы предпочитаете.
Сказав это, давайте посмотрим один за другим, как получить эскизы видео YouTube, Vimeo и Dailymotion.
Получить эскиз с URL-адреса видео YouTube
В нашем руководстве я предполагаю, что вы передаете URL-адрес видео, чтобы получить его миниатюру. В случае YouTube доступно несколько типов действительных URL-адресов. Ниже приведены действительные URL-адреса видео YouTube:
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/embed/VIDEO_ID
- https://www.youtube.com/watch?v=VIDEO_ID
Приведенный ниже метод извлекает идентификатор видео из любого из указанных выше форматов URL.
<?php
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
?>
После извлечения идентификатора видео из URL-адреса вы можете легко получить миниатюру видео, используя следующий метод:
<?php
function getYouTubeThumbnailImage($video_id) {
return "//i3.ytimg.com/vi/$video_id/hqdefault.jpg";
}
?>
Здесь мы получаем эскиз по умолчанию с hqdefault.jpg
. Можно передать разные значения, например 0.jpg
, 1.jpg
чтобы получить другой размер эскиза.
Итак, наш окончательный код для получения миниатюры из URL-адреса видео YouTube:
<?php
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
function getYouTubeThumbnailImage($video_id) {
return "https://i3.ytimg.com/vi/$video_id/hqdefault.jpg"; //pass 0,1,2,3 for different sizes like 0.jpg, 1.jpg
}
$video_url = 'YOUTUBE_VIDEO_URL';
$video_id = extractVideoID($video_url);
$thumbnail = getYouTubeThumbnailImage($video_id);
echo "<img src='$thumbnail' />";
?>
Получите эскиз из видео Vimeo и Dailymotion
В поисках решения по извлечению идентификатора видео из URL-адресов видео Vimeo и Dailymotion я нашел этот ресурс. Я использовал их метод для извлечения идентификатора видео из URL-адресов видео Vimeo и Dailymotion. Этот метод поддерживает все допустимые форматы URL-адресов видео Vimeo и Dailymotion.
В случае получения эскизов видео Vimeo код будет следующим:
<?php
function getVimeoId($url)
{
if (preg_match('#(?:https?://)?(?:www.)?(?:player.)?vimeo.com/(?:[a-z]*/)*([0-9]{6,11})[?]?.*#', $url, $m)) {
return $m[1];
}
return false;
}
function getVimeoThumb($id)
{
$arr_vimeo = unserialize(file_get_contents("https://vimeo.com/api/v2/video/$id.php"));
return $arr_vimeo[0]['thumbnail_small']; // returns small thumbnail
// return $arr_vimeo[0]['thumbnail_medium']; // returns medium thumbnail
// return $arr_vimeo[0]['thumbnail_large']; // returns large thumbnail
}
$video_url = 'VIMEO_VIDEO_URL';
$video_id = getVimeoId($video_url);
$thumbnail = getVimeoThumb($video_id);
echo "<img src='$thumbnail' />";
?>
Для видео Vimeo мы можем использовать 3 значения, такие как thumbnail_small, thumbnail_medium, thumbnail_large, чтобы получить маленькие, средние и большие размеры миниатюр соответственно.
Наконец, код для получения эскиза видео Dailymotion выглядит следующим образом.
<?php
function getDailyMotionId($url)
{
if (preg_match('!^.+dailymotion.com/(video|hub)/([^_]+)[^#]*(#video=([^_&]+))?|(dai.ly/([^_]+))!', $url, $m)) {
if (isset($m[6])) {
return $m[6];
}
if (isset($m[4])) {
return $m[4];
}
return $m[2];
}
return false;
}
function getDailymotionThumb($id) {
$thumbnail_large_url = 'https://api.dailymotion.com/video/'.$id.'?fields=thumbnail_360_url'; //pass thumbnail_360_url, thumbnail_480_url, thumbnail_720_url, etc. for different sizes
$json_thumbnail = file_get_contents($thumbnail_large_url);
$arr_dailymotion = json_decode($json_thumbnail, TRUE);
$thumb = $arr_dailymotion['thumbnail_360_url'];
return $thumb;
}
$video_url = 'DAILYMOTION_VIDEO_URL';
$video_id = getDailyMotionId($video_url);
$thumbnail = getDailymotionThumb($video_id);
echo "<img src='$thumbnail' />";
?>
Надеюсь, вы понимаете, как получить миниатюру видео YouTube, Vimeo и Dailymotion. Если вы используете какой-либо другой метод для достижения этой цели, сообщите мне об этом в разделе комментариев ниже.
Статьи по Теме
- Получите список видео YouTube по ключевым словам с помощью API поиска YouTube и JavaScript
- YouTube API – как получить список YouTube-видео вашего канала
- Как использовать YouTube API для загрузки видео на канал YouTube