Миниатюра YouTube не работает во всех случаях
Приложение, над которым я работаю, должно получить миниатюры YouTube HQ с указанным URL. Используя этот ответ, я попытался использовать maxresdefault.jpg
чтобы получить максимальное разрешение миниатюры, но на некоторых видео (казалось бы, случайных) запрос 404.
Вот некоторые примеры:
Используя те же URL-адреса, другие запросы, использующие те же ключи видео, работают:
Почему maxresdefault.jpg
надежно не возвращает изображение? Оба эти видео являются общедоступными и могут быть встроены.
Я бы использовал 0.jpg
но у него есть черные полосы сверху и снизу изображения.
Ответы
Ответ 1
Насколько я понимаю, YouTube генерирует кадры только в высоком разрешении для видео высокого разрешения. Первая ссылка была загружена с разрешением не менее 1080p, а вторая менее 720p.
Похоже, единственное, что вы можете сделать, - это потянуть видеофайл, проверить его, чтобы увидеть, было ли еще создано высокое разрешение, и увеличить масштаб самого маленького, если нет.
Все кадры YouTube представлены в соотношении сторон 4: 3, поэтому всегда будут черные полосы сверху и снизу, если видео 16: 9. В HTML/CSS с этим легко бороться, устанавливая изображение в качестве фона div и подбирая размер div к правильному аспекту.
¹ За исключением фотографий mqdefault.jpg, которые все в формате 16: 9 (320x180)
Ответ 2
Обновление 2015:
Ни одна из ваших ссылок "maxresdefault" не работает
Попробуйте следующее:
http://img.youtube.com/vi/<insert-youtube-video-id-here>/0.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/1.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/2.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/3.jpg
Ответ 3
Обновление 2019 ::
https://i.ytimg.com/vi/<insert-youtube-video-id-here>/hqdefault.jpg
Кажется, чтобы вернуть максимально возможное изображение....
1.jpg, 2.jpg, 3.jpg возвращают превью по длине клипа, что также удобно;)