Web

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

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

Ответ 1

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

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.jpg2.jpg3.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

 

Для версии эскиза со стандартным определением используйте:

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

 

Для версии миниатюры с максимальным разрешением используйте:

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

 

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

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

 

Ответ 2

Вы можете использовать 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, которые вы планируете сделать. Однако несколько миллионов запросов в день бесплатны.

 

Ответ 3

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

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

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

//Захват изображения миниатюры по умолчанию

$attrs     = $media->group->thumbnail[1]->attributes();

$thumbnail = $attrs['url'];

$thumbnail = substr($thumbnail, 0, -5);

$thumb1    = $thumbnail."default.jpg";

// Захват третьего уменьшенного изображения

$thumb2 = $thumbnail."2.jpg";

// Захват четвертого уменьшенного изображения

$thumb3 = $thumbnail."3.jpg";

// Использование простого cURL для сохранения на вашем сервере.

$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);

// Использование fwrite для сохранения вышеуказанных данных

$fp = fopen("SomeLocationInReferenceToYourScript/AnyNameYouWant.jpg", 'w');

// Запись файла

fwrite($fp, $rawdata);

fclose($fp);

 

Схожие статьи

Web

Извлечение данных из JSON с помощью PHP

Web

Получение информации о дорожке из аудиопотока с помощью PHP

Web

Как передать HTML эхом в PHP

Web

Преобразование сценария PHP в автономный исполняемый файл Windows

×