WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как получить эскиз с видео YouTube, Vimeo и Dailymotion

166

Хотите получить эскизы видео YouTube, Vimeo и Dailymotion? Эти 3 самые популярные веб-сайты для обмена видео в Интернете. Каждая из этих платформ позволяет пользователям получать миниатюры своих видеороликов. В этой статье мы увидим, как получить миниатюру, используя URL-адрес видео на этих платформах.

Когда вы интегрируете видеогалерею на веб-сайты, вы должны отображать эскизы видео. А затем при щелчке по миниатюре должно воспроизводиться соответствующее видео. Встраивание видео с помощью тега iframe не рекомендуется. Это требует большой пропускной способности сервера и увеличивает размер страницы.

Я собираюсь написать код, который получает миниатюру видео через URL-адрес видео. Щелкнув эти миниатюры, вы можете воспроизводить свои видео, используя fancybox или любые другие пользовательские решения, которые вы предпочитаете.

Сказав это, давайте посмотрим один за другим, как получить эскизы видео YouTube, Vimeo и Dailymotion.

Получить эскиз с URL-адреса видео YouTube

В нашем руководстве я предполагаю, что вы передаете URL-адрес видео, чтобы получить его миниатюру. В случае YouTube доступно несколько типов действительных URL-адресов. Ниже приведены действительные URL-адреса видео YouTube:

Приведенный ниже метод извлекает идентификатор видео из любого из указанных выше форматов 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. Если вы используете какой-либо другой метод для достижения этой цели, сообщите мне об этом в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее