Выражу свое частное мнение по этому поводу. Я разработчик облачной CMS, и после "замедления YouTube", многие пользователи начали активно переходить на отечественные видеохостинги, и возникла необходимость интегрировать VK, RuTube, Ok.ru на нашу платформу. И казалось бы все должно быть максимально просто, но не тут то было...
Для многих сказанное ниже, может показаться невесомым аргументом, и я с ними отчасти соглашусь. Кто-то скажет, нельзя судить о таких сложных проектах по одному лишь кейсу с получением миниатюр к видео, но я убежден что практически всегда можно интерполировать что-то простое и понятное, на всю глубину проекта и сделать вывод (пусть и поверхностный) об уровне исполнения проекта, тем более у нас как у разработчиков есть с чем сравнивать.
Как получить обложку из Youtube.
-
Ссылка на видео выглядит так: youtube.com/watch?v=${VIDEO_ID}
-
Ссылка на обложку это i.ytimg.com/vi/${VIDEO_ID}/mqdefault.jpg
-
Т.е. зная VIDEO_ID мы по простейшей логике формируем ссылку на изображение обложки, все просто
Как получить обложку из VK.video
-
Ссылка на видео выглядит так: https://vk.ru/video_ext.php?oid=${OID}&id=${ID}
-
Ссылка на обложку вытягивается через API (но тут есть сложности с ключами доступа, с их быстрым истечением, долгоживущим ключом приложения получать любые видео невозможно), либо через парсинг embeded страницы (но размер обложки будет неуправляемым), в ссылке на изображение также зашит токен доступа, без него картинка не будет прогружаться
-
Т.е. простая задача усложнена, по сравнению с youtube
Как получить обложку из Rutube
-
Ссылка на видео выглядит так: https://rutube.ru/video/${VIDEO_ID}
-
Ссылка на обложку вытягивается через публичное API https://rutube.ru/api/play/options/${VIDEO_ID}, из ответа берем обложку и добавляем к ней нужный size, пример: ${thumbnail_url}?size=w306
-
По сравнению с youtube задача также усложнена дополнительным запросом к API
OK.ru
Тут получить обложку получилось только через парсинг embeded страницы, все тоже усложнение по сравнению с youtube
|
Youtube |
VK.Видео |
Rutube |
OK.ru |
Кол-во запросов для получения обложки |
0 |
1 |
1 |
1 |
Способы получения обложки |
Подставление ID в стандартный URL |
API / парсинг embeded страницы |
API (незадокументированное) / парсинг embeded страницы |
Парсинг embeded страницы |
Есть ли токены доступа в ссылке на обложку |
нет |
Да |
Да |
Да |
Вероятность того, что обложка станет нерабочей |
нет |
Теоритечески да, т.к. токен вшитый в ссылку на изображение может "протухнуть" |
Теоритечески да, т.к. токен вшитый в ссылку на изображение может "протухнуть" |
Теоритечески да, т.к. токен вшитый в ссылку на изображение может "протухнуть" |
Итог
Мы успешно интегрировали все перечисленные видеохостинги в свою CMS, но как говориться "осадочек остался". Решил поделиться им с вами, возможно данный опыт будет кому-то полезен. Да и теплиться надежда что этот материал подтолкнет разработчиков видеохостингов упростить жизнь своим коллегам.
Youtube при всей своей мощи, даже в таком простом кейсе как получение обложки из ссылки видео, заметно выигрывает у VK, Rutube и Ok.ru, не требует никаких ключей, костылей. Все просто: У Youtube зная id видео мы также знаем и ссылку на обложку.
Я уверен что отечественные платформы, могли бы взять за референс youtube и упростить разработчикам жизнь. В этом и других кейсах.
Надеюсь эта статья когда-нибудь потеряет свою актуальность, платформы сделают адекватный апгрейд, youtube наконец-то "починит свои кэши"
Автор: beatleboy