[Мнение] Почему отечественные аналоги YouTube не дотягивают до него?

в 11:02, , рубрики: Rutube, YouTube

Выражу свое частное мнение по этому поводу. Я разработчик облачной CMS, и после "замедления YouTube", многие пользователи начали активно переходить на отечественные видеохостинги, и возникла необходимость интегрировать VK, RuTube, Ok.ru на нашу платформу. И казалось бы все должно быть максимально просто, но не тут то было...

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

Так выглядит интерфейс для добавления видео, добавленные видео отображаются с .jpg/.png обложками (не iframe)
Так выглядит интерфейс для добавления видео, добавленные видео отображаются с .jpg/.png обложками (не iframe)

Как получить обложку из Youtube.

  • Ссылка на видео выглядит так: youtube.com/watch?v=${VIDEO_ID}

  • Ссылка на обложку это i.ytimg.com/vi/${VIDEO_ID}/mqdefault.jpg

  • Т.е. зная VIDEO_ID мы по простейшей логике формируем ссылку на изображение обложки, все просто

Как получить обложку из VK.video

  1. Ссылка на видео выглядит так: https://vk.ru/video_ext.php?oid=${OID}&id=${ID}

  2. Ссылка на обложку вытягивается через API (но тут есть сложности с ключами доступа, с их быстрым истечением, долгоживущим ключом приложения получать любые видео невозможно), либо через парсинг embeded страницы (но размер обложки будет неуправляемым), в ссылке на изображение также зашит токен доступа, без него картинка не будет прогружаться

  3. Т.е. простая задача усложнена, по сравнению с youtube

Как получить обложку из Rutube

  1. Ссылка на видео выглядит так: https://rutube.ru/video/${VIDEO_ID}

  2. Ссылка на обложку вытягивается через публичное API https://rutube.ru/api/play/options/${VIDEO_ID}, из ответа берем обложку и добавляем к ней нужный size, пример: ${thumbnail_url}?size=w306

  3. По сравнению с 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

Источник


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js