Выражу свое частное мнение по этому поводу. Я разработчик облачной CMS, и после "замедления YouTube", многие пользователи начали активно переходить на отечественные видеохостинги, и возникла необходимость интегрировать VK, RuTube, Ok.ru на нашу платформу. И казалось бы все должно быть максимально просто, но не тут то было...
Для многих сказанное ниже, может показаться невесомым аргументом, и я с ними отчасти соглашусь. Кто-то скажет, нельзя судить о таких сложных проектах по одному лишь кейсу с получением миниатюр к видео, но я убежден что практически всегда можно интерполировать что-то простое и понятное, на всю глубину проекта и сделать вывод (пусть и поверхностный) об уровне исполнения проекта, тем более у нас как у разработчиков есть с чем сравнивать.
![Так выглядит интерфейс для добавления видео, добавленные видео отображаются с .jpg/.png обложками (не iframe) Так выглядит интерфейс для добавления видео, добавленные видео отображаются с .jpg/.png обложками (не iframe)](https://habrastorage.org/getpro/habr/upload_files/f6c/a9e/32b/f6ca9e32ba93892c66b24ba1ba3abe73.png)
Как получить обложку из 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 наконец-то "починит свои кэши"
Комментарии (26)
Thar0l
01.09.2024 11:07+34Ответ на вопрос из заголовка лежит далеко не в технической плоскости.
Даже если технически довести уровень отечественных сервисов до уровня того же YouTube, проблему наличия контента это не решит.
Суть YouTube в глобальности. Вряд ли я на том же Rutube или VK Video смогу найти видео, где какой-то кореец разбирает микрофон такой же модели как у меня, или американец показывает хитро расположенные винты крепления клавиатуры ноутбука выпуска начала нулевых, или где немецкий стример играет в свежую версию крупного мода для Factorio с разбором механик, или американский препод рассказывает как писать модули для ROS своим студентам.
Причем в половине случаях знание языка автора не нужно, достаточно просмотра видеоряда. На отечественных сервисах, как бы их не рекламировали данный контент если и появится когда-то, то далеко не в том объеме в каком он есть на международной площадке. Просто потому что он узконишевой.
Sonichka
01.09.2024 11:07+1А как на YouTube найти видео, как китаец разбирает клавиатуру?
Fahrain
01.09.2024 11:07+2Идешь в Гугл-переводчик, вбиваешь запрос, получаешь магические иероглифы на китайском. Через буфер обмена бережно несешь их в поиск. Если поиск ютуба всё равно не выдал ничего полезного, то надо взять обычный поиск гугла и потом просто переключить там вкладку на видео. Дополнительно можно ограничить срок результатов - "в этом году" вполне подойдет.
Sonichka
01.09.2024 11:07А вот и нет.
У китайцев есть свой bilibili.
И на YouTube нельзя найти официальную информацию, что сейчас происходит в Курске. Поэтому YouTube скорее всего в будущем заблокируют за ограничение свободы слова.
Fahrain
01.09.2024 11:07+3У китайцев есть свой bilibili.
Ну, есть. Можно и там искать - кто вам мешает? Самое интересное частично на ютубе продублировано и тоже находится - иногда даже сами авторы-китайцы это и делают. Я много смотрю китайского на ютубе)
Поэтому YouTube скорее всего в будущем заблокируют за ограничение свободы слова.
Угу. Расскажите это всё Дурову, вот он порадуется!
GDragon
01.09.2024 11:07+2Чего чего там нельзя найти?
Хотя я понимаю что повесточку надо отрабатывать, но к обсуждению наличия информации на ютубе его блокировку в РФ вы приплели ну очень уж нарочито.
Astrolux78
Почему в опросе нет варианта "никогда не заходил на них, и не собираюсь ни при каких обстоятельствах"?
beatleboy Автор
Добавил четвертым вариантом