Как получить миниатюру видео YouTube из API YouTube?

1912

Если у меня есть URL-адрес видео YouTube, есть ли способ использовать PHP и cURL для получения связанного эскиза из API YouTube?

  • 0
    Вот некоторые функции PHP, которые я создал, чтобы получить лучший эскиз, доступный из метода URL без проверки API, на основе многих хороших ответов на этой странице: gist.github.com/squarecandy/30ec9f6779c0e8cdf12e337c665d96c5
Теги:
curl
youtube
youtube-api
youtube-data-api

25 ответов

3878
Лучший ответ

На каждом видеоролике YouTube есть 4 сгенерированных изображения. Они предсказуемо отформатированы следующим образом:

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

Первый в списке - это изображение полного размера, а другие - уменьшенные изображения. Миниатюра изображения по умолчанию (то есть одна из 1.jpg, 2.jpg, 3.jpg):

https://img.youtube.com/vi/<insert-youtube-video-id-here>/default.jpg

Для высококачественной версии эскиза используйте URL-адрес, похожий на этот:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg

Существует также версия миниатюры среднего качества с использованием URL-адреса, подобного HQ:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg

Для версии миниатюры стандартной версии используйте URL-адрес, подобный этому:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/sddefault.jpg

Для версии максимального разрешения эскиза используйте URL-адрес, похожий на этот:

https://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

Все вышеперечисленные URL-адреса доступны через http. Кроме того, немного более короткое имя хоста i3.ytimg.com работает вместо img.youtube.com в приведенных выше примерах.

В качестве альтернативы вы можете использовать API данных YouTube (v3) для получения миниатюр.

  • 14
    Как вы получаете изображение высокой четкости (если оно есть)?
  • 2
    @hyperdouche: я только что проверил это, и похоже, что все вышеупомянутые URL доступны через https. Просто измените http на https в любом из приведенных выше URL.
Показать ещё 31 комментарий
330

Вы можете использовать API данных YouTube для получения миниатюр, заголовков, описания, рейтинга, статистики и т.д. API версии 3 требует ключ *. Получите ключ и создайте видео: список:

https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=VIDEO_ID

Пример кода PHP

$data = file_get_contents("https://www.googleapis.com/youtube/v3/videos?key=YOUR_API_KEY&part=snippet&id=T0Jqdjbed40");
$json = json_decode($data);
var_dump($json->items[0]->snippet->thumbnails);

Выход

object(stdClass)#5 (5) {
  ["default"]=>
  object(stdClass)#6 (3) {
    ["url"]=>
    string(46) "https://i.ytimg.com/vi/T0Jqdjbed40/default.jpg"
    ["width"]=>
    int(120)
    ["height"]=>
    int(90)
  }
  ["medium"]=>
  object(stdClass)#7 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/mqdefault.jpg"
    ["width"]=>
    int(320)
    ["height"]=>
    int(180)
  }
  ["high"]=>
  object(stdClass)#8 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/hqdefault.jpg"
    ["width"]=>
    int(480)
    ["height"]=>
    int(360)
  }
  ["standard"]=>
  object(stdClass)#9 (3) {
    ["url"]=>
    string(48) "https://i.ytimg.com/vi/T0Jqdjbed40/sddefault.jpg"
    ["width"]=>
    int(640)
    ["height"]=>
    int(480)
  }
  ["maxres"]=>
  object(stdClass)#10 (3) {
    ["url"]=>
    string(52) "https://i.ytimg.com/vi/T0Jqdjbed40/maxresdefault.jpg"
    ["width"]=>
    int(1280)
    ["height"]=>
    int(720)
  }
}

* Не только то, что вам нужен ключ, вам может потребоваться указать информацию о платежах в зависимости от количества запросов API, которые вы планируете сделать. Тем не менее, несколько миллионов запросов в день бесплатны.

Источник статьи.

  • 4
    К вашему сведению: я не изменил код для соответствия новой структуре JSON. Код в вашем getJSON неверен. Вы использовали jsonc вместо json для getJSON. Это происходит из-за неправильной структуры JSON.
  • 3
    Только первый пример может использовать jsonc . Примеры JQuery и PHP ДОЛЖНЫ использовать json . И я обновил код, чтобы соответствовать новой структуре JSON. Я использую код прямо сейчас, и он работает в прямом эфире. так что не говорите, что это не работает без чтения изменений. Спасибо!
Показать ещё 3 комментария
182

Асаф сказал правильно. Однако не все видеоролики YouTube содержат все девять миниатюр, но для каждого видео есть семь миниатюр. Это:

(Размер изображения зависит от видео.)

  • Значок фона проигрывателя (480x360 пикселей)
    https://i1.ytimg.com/vi/G0wGs3useV8/0.jpg

  • Запустите миниатюру (120x90 пикселей)
    https://i1.ytimg.com/vi/G0wGs3useV8/1.jpg

  • Средняя миниатюра (120x90 пикселей)
    https://i1.ytimg.com/vi/G0wGs3useV8/2.jpg

  • End Thumbnail (120x90 пикселей)
    https://i1.ytimg.com/vi/G0wGs3useV8/3.jpg

  • Миниатюра высокого качества (480x360 пикселей)
    https://i1.ytimg.com/vi/G0wGs3useV8/hqdefault.jpg

  • Миниатюры среднего качества (320x180 пикселей)
    https://i1.ytimg.com/vi/G0wGs3useV8/mqdefault.jpg

  • Миниатюра нормального качества (120x90 пикселей)
    https://i1.ytimg.com/vi/G0wGs3useV8/default.jpg

Кроме того, следующие два миниатюры могут быть или не существовать. Для видео HQ они существуют.

  • Миниатюра стандартного разрешения (640x480 пикселей)
    https://i1.ytimg.com/vi/G0wGs3useV8/sddefault.jpg

  • Максимальное разрешение (1920x1080 пикселей)
    https://i1.ytimg.com/vi/G0wGs3useV8/maxresdefault.jpg

Вы можете получить скрипты JavaScript и PHP для извлечения эскизов и других Информация о YouTube в

Также используйте инструмент YouTube Video Information Generator, чтобы получить все информацию о видео YouTube, отправив URL или идентификатор видео.

  • 4
    Вы также можете добиться того же результата с помощью официальной ссылки на YouTube img.youtube.com/vi/mJ8tq8AnNis/mqdefault.jpg, где mJ8tq8AnNis - идентификатор видео
  • 3
    Иногда некоторые из них не существуют - i1.ytimg.com/vi/r5R8gSgedh4/maxresdefault.jpg - подделка, хотя i1.ytimg.com/vi/r5R8gSgedh4/0.jpg - это нормально, например.
Показать ещё 4 комментария
61

В YouTube API V3 мы также можем использовать эти URL для получения эскизов... Они классифицируются по их качеству.

https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/default.jpg -   default
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg - medium 
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg - high
https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/sddefault.jpg - standard

И для максимального разрешения.

https://i1.ytimg.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

Одно из преимуществ этих URL-адресов над URL-адресами в первом ответе состоит в том, что эти URL-адреса не блокируются брандмауэрами.

  • 2
    Предполагается ли, что эти изображения будут помещены в тег img и должны просто работать, потому что я пытаюсь включить ссылку с правильным идентификатором видео YouTube и поместить их в тег img, но я продолжаю получать 404
  • 4
    @ Lion789 Эти URL-адреса работают нормально, когда они помещены в тег img. Возможно, проблема в неправильном идентификаторе видео или запрашиваемое разрешение может быть недоступно, но вы не получите 404 с этими ошибками. Проверьте URL-адрес тег img.
Показать ещё 2 комментария
47

Если вы хотите получить наибольшее изображение с YouTube для определенного идентификатора видео, то URL-адрес должен выглядеть примерно так:

http://i3.ytimg.com/vi/SomeVideoIDHere/0.jpg

Используя API, вы можете выбрать миниатюру по умолчанию. Простой код должен быть примерно таким:

//Grab the default thumbnail image
$attrs = $media->group->thumbnail[1]->attributes();
$thumbnail = $attrs['url'];
$thumbnail = substr($thumbnail, 0, -5);
$thumb1 = $thumbnail."default.jpg";

// Grab the third thumbnail image
$thumb2 = $thumbnail."2.jpg";

// Grab the fourth thumbnail image.
$thumb3 = $thumbnail."3.jpg";

// Using simple cURL to save it your server.
// You can extend the cURL below if you want it as fancy, just like
// the rest of the folks here.

$ch = curl_init ("$thumb1");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata = curl_exec($ch);
curl_close($ch);

// Using fwrite to save the above
$fp = fopen("SomeLocationInReferenceToYourScript/AnyNameYouWant.jpg", 'w');

// Write the file
fwrite($fp, $rawdata);

// And then close it.
fclose($fp);
  • 2
    Я нашел пример, где 0.jpg имеет разрешение 480x360, а maxresdefault.jpg - 1280x720.
38

Если вы хотите избавиться от "черных полос" и сделать это, как это делает YouTube, вы можете использовать:

https://i.ytimg.com/vi_webp/<video id>/mqdefault.webp

И если вы не можете использовать расширение .webp, вы можете сделать это следующим образом:

https://i.ytimg.com/vi/<video id>/mqdefault.jpg

Кроме того, если вам нужна немасштабированная версия, используйте maxresdefault вместо mqdefault.

Примечание. Я не уверен в соотношении сторон, если вы планируете использовать maxresdefault.

  • 1
    Формат .webp не работает в Firefox
  • 2
    В этом случае используйте https://i.ytimg.com/vi/<video id>/mqdefault.jpg .
Показать ещё 3 комментария
24

В API данных YouTube версии 3 вы можете получить миниатюры видео с помощью video- > list. Из snippet.thumbnails. (Key) вы можете выбрать миниатюру по умолчанию, среднего или высокого разрешения и получить ее ширину, высоту и URL.

Вы также можете обновить миниатюры с помощью эскизов- > установить.

В качестве примера вы можете проверить проект PHP-версии.)

  • 1
    Я думаю, что это правильный способ сделать это, так как он исходит от члена отношений Google Dev для API YouTube
24

Вы можете получить Video Entry, который содержит URL-адрес миниатюры видео. Вот пример кода в ссылке. Или, если вы хотите проанализировать XML, здесь здесь. Возвращенный XML имеет элемент media:thumbnail, который содержит URL-адрес эскиза.

  • 1
    Я не могу получить его с помощью simpleXML. Это довольно сложно!
23

Я сделал функцию только для извлечения существующих изображений из YouTube

function youtube_image($id) {
    $resolution = array (
        'maxresdefault',
        'sddefault',
        'mqdefault',
        'hqdefault',
        'default'
    );

    for ($x = 0; $x < sizeof($resolution); $x++) {
        $url = '//img.youtube.com/vi/' . $id . '/' . $resolution[$x] . '.jpg';
        if (get_headers($url)[0] == 'HTTP/1.0 200 OK') {
            break;
        }
    }
    return $url;
}
19
// Get image form video URL
$url = $video['video_url'];

$urls = parse_url($url);

//Expect the URL to be http://youtu.be/abcd, where abcd is the video ID
if ($urls['host'] == 'youtu.be') :

    $imgPath = ltrim($urls['path'],'/');

//Expect the URL to be http://www.youtube.com/embed/abcd
elseif (strpos($urls['path'],'embed') == 1) :

    $imgPath = end(explode('/',$urls['path']));

//Expect the URL to be abcd only
elseif (strpos($url,'/') === false):

    $imgPath = $url;

//Expect the URL to be http://www.youtube.com/watch?v=abcd
else :

    parse_str($urls['query']);

    $imgPath = $v;

endif;
  • 2
    это плохое решение! почему бы не использовать Youtube api v3?
16

YouTube принадлежит Google, а Google любит иметь разумное количество изображений для разных размеров экрана, поэтому его изображения хранятся в разных размерах, вот пример того, как ваш эскиз понравится, он понравится

Миниатюра низкого качества:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/sddefault.jpg

Миниатюра среднего качества:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/mqdefault.jpg

Миниатюра высокого качества:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/hqdefault.jpg

Миниатюра максимального качества:

http://img.youtube.com/vi/<YouTube_Video_ID_HERE>/maxresdefault.jpg
13

YOUTUBE ВЕРСИЯ API 3 ** ВВЕРХ И РАБОТА В 2 МИНУТ **

Если все, что вы хотите сделать, это поиск на YouTube и получение связанных свойств:

2. Используйте строку запроса ниже. Поисковый запрос (обозначаемый q =) в строке url представляет собой stackoverflow для примера. Затем YouTube отправит вам ответ json, где вы сможете разобрать для Thumbnail, Snippet, Author и т.д.

https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&maxResults=50&q=stackoverflow&key=YOUR_API_KEY_HERE
  • 2
    Я получаю 400 нормально ошибку с помощью этого
12

Использование:

https://www.googleapis.com/youtube/v3/videoCategories?part=snippet,id&maxResults=100&regionCode=us&key=**Your YouTube ID**

Выше ссылка. Используя это, вы можете найти характеристики YouTube для видео. После определения характеристик вы можете получить видео из выбранной категории. После этого вы можете найти выбранные видеоизображения с помощью ответа Асафа.

Попробуйте описанный выше подход, и вы можете анализировать все, начиная с YouTube API.

11

Я использовал YouTube Thumbnails таким образом:

$url = 'http://img.youtube.com/vi/' . $youtubeId . '/0.jpg';
$img = dirname(__FILE__) . '/youtubeThumbnail_'  . $youtubeId . '.jpg';
file_put_contents($img, file_get_contents($url));

Помните, что YouTube предотвращает включение изображений непосредственно со своего сервера.

10

Просто для добавления/расширения решений, я считаю, что необходимо отметить, что, поскольку у меня была эта проблема сама, на самом деле можно захватить несколько видеороликов YouTube, в данном случае эскизов, с одним HTTP-запросом:

Используя Rest Rest, в этом случае HTTPFUL, вы можете сделать что-то вроде этого:

<?php
header("Content-type", "application/json");

//download the httpfull.phar file from http://phphttpclient.com
include("httpful.phar");

$youtubeVidIds= array("nL-rk4bgJWU", "__kupr7KQos", "UCSynl4WbLQ", "joPjqEGJGqU", "PBwEBjX3D3Q");


$response = \Httpful\Request::get("https://www.googleapis.com/youtube/v3/videos?key=YourAPIKey4&part=snippet&id=".implode (",",$youtubeVidIds)."")

->send();

print ($response);

?>
10

Я нашел этот отличный инструмент, который позволяет вам создать изображение с помощью кнопки воспроизведения YouTube, размещенной над изображением:

9

простая функция php i, созданная для миниатюры youtube, и типы

  • По умолчанию
  • hqdefault
  • mqdefault
  • sddefault
  • maxresdefault

    function get_youtube_thumb($link,$type){
    
        $video_id = explode("?v=", $link); 
            if (empty($video_id[1])){
               $video_id = explode("/v/", $link); 
               $video_id = explode("&", $video_id[1]); 
               $video_id = $video_id[0];
            }
        $thumb_link = "";
        if($type == 'default' || $type == 'hqdefault' || $type == 'mqdefault' || $type == 'sddefault' || $type == 'maxresdefault'){
    
            $thumb_link = 'http://img.youtube.com/vi/'.$video_id.'/'.$type.'.jpg';
    
        }elseif($type == "id"){
            $thumb_link = $video_id;
        }
        return $thumb_link;}
    
8

Еще одна хорошая альтернатива - использовать API oEmbed, который поддерживается YouTube.

Вы просто добавляете свой URL-адрес YouTube в url-адрес, и вы получите JSON, включая эскиз и HTML-код для встраивания.

Пример:

http://www.youtube.com/oembed?format=json&url=http%3A//youtube.com/watch%3Fv%3DDLzxrzFCyOs

Дала бы вам:

{
  thumbnail_url: "https://i.ytimg.com/vi/DLzxrzFCyOs/hqdefault.jpg",
  width: 459,
  author_name: "AllKindsOfStuff",
  version: "1.0",
  author_url: "https://www.youtube.com/channel/UCLNd5EtH77IyN1frExzwPRQ",
  thumbnail_width: 480,
  type: "video",
  provider_url: "https://www.youtube.com/",
  html: "<iframe width="459" height="344" src="https://www.youtube.com/embed/DLzxrzFCyOs?feature=oembed" frameborder="0" allowfullscreen></iframe>",
  title: "Some title bla bla foo bar",
  thumbnail_height: 360,
  provider_name: "YouTube",
  height: 344
}

Прочитайте документацию для более Информация.

7

Если вы используете публичный api, лучший способ сделать это - использовать инструкции if.

Если видео является общедоступным или незарегистрированным, вы устанавливаете миниатюру с помощью метода url. Если видео закрыто, вы используете api для получения миниатюры.

<?php
if($video_status == 'unlisted'){
$video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
$video_status = '<i class="fa fa-lock"></i>&nbsp;Unlisted';
}
elseif($video_status == 'public'){
$video_thumbnail = 'http://img.youtube.com/vi/'.$video_url.'/mqdefault.jpg';
$video_status = '<i class="fa fa-eye"></i>&nbsp;Public';
}
elseif($video_status == 'private'){
$video_thumbnail = $playlistItem['snippet']['thumbnails']['maxres']['url'];
$video_status = '<i class="fa fa-lock"></i>&nbsp;Private';
}
6

API данных YouTube

YouTube Предоставляет нам 4 сгенерированных изображения для каждого видео через API данных (v3), для Ex -

  • https://i.ytimg.com/vi/V_zwalcR8DU/maxresdefault.jpg

  • https://i.ytimg.com/vi/V_zwalcR8DU/sddefault.jpg

  • https://i.ytimg.com/vi/V_zwalcR8DU/hqdefault.jpg

  • https://i.ytimg.com/vi/V_zwalcR8DU/mqdefault.jpg

Получение доступа к изображениям через API

  • Сначала введите свой открытый ключ API в Консоль API Google.
  • В соответствии с ссылкой на эскизы YouTube в Документация по API, вам нужно получить доступ к ресурсам в snippet.thumbnails.
  • В соответствии с этим вам нужно рассказать свой URL-адрес следующим образом:

    www.googleapis.com/youtube/v3/videos?part=snippet&id= yourVideoId & ключ = yourApiKey

Теперь измените yourVideoId и yourApiKey на ваш соответствующий идентификатор видео и api-ключ, и его ответ будет выходом JSON, обеспечивающим 4 ссылки в миниатюрах переменной фрагмента (если все доступно).

5

Я думаю, что у них много ответов на миниатюру, но я хочу добавить некоторые другие URL-адреса, чтобы получить эскиз youtube очень легко. Я просто беру текст из ответа Асафа. Вот несколько url для получения эскизов youtube

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/default.jpg

Для высококачественной версии эскиза используйте URL-адрес, похожий на этот:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg

Существует также версия миниатюры среднего качества с использованием URL-адреса, подобного HQ:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg

Для версии миниатюры стандартной версии используйте URL-адрес, подобный этому:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/sddefault.jpg

Для версии максимального разрешения эскиза используйте URL-адрес, похожий на этот:

https://ytimg.googleusercontent.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg

Надеюсь, что это поможет кому-то в ближайшем будущем.

4
    function get_video_thumbnail( $src ) {
            $url_pieces = explode('/', $src);
            if( $url_pieces[2] == 'dai.ly'){
                $id = $url_pieces[3];
                $hash = json_decode(file_get_contents('https://api.dailymotion.com/video/'.$id.'?fields=thumbnail_large_url'), TRUE);
                $thumbnail = $hash['thumbnail_large_url'];
            }else if($url_pieces[2] == 'www.dailymotion.com'){
                $id = $url_pieces[4];
                $hash = json_decode(file_get_contents('https://api.dailymotion.com/video/'.$id.'?fields=thumbnail_large_url'), TRUE);
                $thumbnail = $hash['thumbnail_large_url'];
            }else if ( $url_pieces[2] == 'vimeo.com' ) { // If Vimeo
                $id = $url_pieces[3];
                $hash = unserialize(file_get_contents('http://vimeo.com/api/v2/video/' . $id . '.php'));
                $thumbnail = $hash[0]['thumbnail_large'];
            } elseif ( $url_pieces[2] == 'youtu.be' ) { // If Youtube
                $extract_id = explode('?', $url_pieces[3]);
                $id = $extract_id[0];
                $thumbnail = 'http://img.youtube.com/vi/' . $id . '/mqdefault.jpg';
            }else if ( $url_pieces[2] == 'player.vimeo.com' ) { // If Vimeo
                $id = $url_pieces[4];
                $hash = unserialize(file_get_contents('http://vimeo.com/api/v2/video/' . $id . '.php'));
                $thumbnail = $hash[0]['thumbnail_large'];
            } elseif ( $url_pieces[2] == 'www.youtube.com' ) { // If Youtube
                $extract_id = explode('=', $url_pieces[3]);
                $id = $extract_id[1];
                $thumbnail = 'http://img.youtube.com/vi/' . $id . '/mqdefault.jpg';
            } else{
                $thumbnail = tim_thumb_default_image('video-icon.png', null, 147, 252);
            }
            return $thumbnail;
        }

get_video_thumbnail('https://vimeo.com/154618727');
get_video_thumbnail('https://www.youtube.com/watch?v=SwU0I7_5Cmc');
get_video_thumbnail('https://youtu.be/pbzIfnekjtM');
get_video_thumbnail('http://www.dailymotion.com/video/x5thjyz');
0

Лучший ответ, оптимизированный для ручного использования. Маркер идентификатора видео без разделителей позволяет выбирать с двойным щелчком.

На каждом видеоролике YouTube есть 4 сгенерированных изображения. Они предсказуемо отформатированы следующим образом:

https://img.youtube.com/vi/YOUTUBEVIDEOID/0.jpg
https://img.youtube.com/vi/YOUTUBEVIDEOID/1.jpg
https://img.youtube.com/vi/YOUTUBEVIDEOID/2.jpg
https://img.youtube.com/vi/YOUTUBEVIDEOID/3.jpg

Первый в списке - это изображение полного размера, а другие - уменьшенные изображения. Миниатюра изображения по умолчанию (то есть одна из 1.jpg, 2.jpg, 3.jpg):

https://img.youtube.com/vi/YOUTUBEVIDEOID/default.jpg

Для высококачественной версии эскиза используйте URL-адрес, похожий на этот:

https://img.youtube.com/vi/YOUTUBEVIDEOID/hqdefault.jpg

Существует также версия миниатюры среднего качества с использованием URL-адреса, подобного HQ:

https://img.youtube.com/vi/YOUTUBEVIDEOID/mqdefault.jpg

Для версии миниатюры стандартной версии используйте URL-адрес, подобный этому:

https://img.youtube.com/vi/YOUTUBEVIDEOID/sddefault.jpg

Для версии максимального разрешения эскиза используйте URL-адрес, похожий на этот:

https://img.youtube.com/vi/YOUTUBEVIDEOID/maxresdefault.jpg

Все вышеперечисленные URL-адреса доступны через http. Кроме того, немного более короткое имя хоста i3.ytimg.com работает вместо img.youtube.com в приведенных выше примерах.

В качестве альтернативы вы можете использовать API данных YouTube (v3) для получения миниатюр.

-1
public const string tubeThumb = "http://i.ytimg.com/vi/[id]/hqdefault.jpg";
vid.Thumbnail = tubeThumb.Replace("[id]", vid.VideoID);
-2

Сохранить файл как .js

  var maxVideos = 5;
  $(document).ready(function(){
  $.get(
    "https://www.googleapis.com/youtube/v3/videos",{
      part: 'snippet,contentDetails',
      id:'your_vedio_id',
      kind: 'youtube#videoListResponse',
      maxResults: maxVideos,
      regionCode: 'IN',
      key: 'Your_API_KEY'},
      function(data){
        var output;
        $.each(data.items, function(i, item){
          console.log(item);
                thumb = item.snippet.thumbnails.high.url;
          output = '<div id="img"><img src="' + thumb + '"></div>';
          $('#thumbnail').append(output);
        })
        
      }
    );
}); 
.main{
 width:1000px;
 margin:auto;
}
#img{
float:left;
display:inline-block;
margin:5px;
}
<!DOCTYPE html>
<html>
<head>
  <title>Thumbnails</title>
</head>
<body>
<div class="main">
 <ul id="thumbnail"> </ul>
</div>
</body>
</html>
  • 3
    что такое "vedio"?
  • 0
    о, извините, орфографическая ошибка не vedio, это видео, как будто у меня есть эта ссылка на youtube.com/watch?v=QmQPK6pSelk и сразу после v = есть уникальное значение символа, вот эти "QmQPK6pSelk" - это идентификатор видео, но в вашем коде вы будет использовать идентификатор видео вашего видео, миниатюру которого вы хотите получить. Если вы получили свой ответ, пожалуйста, проголосуйте за мой ответ. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню