Як отримати ескіз із відео 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 Videos. Якщо ви використовуєте будь-який інший метод для досягнення цього, повідомте мене про це в розділі коментарів нижче.
Пов’язані статті
- Отримайте список відео YouTube за ключовими словами за допомогою API пошуку YouTube та JavaScript
- API YouTube – Як отримати список відео YouTube вашого каналу
- Як використовувати API YouTube для завантаження відео на канал YouTube