Однажды мне упала задача от заказчика: перенести «пару десятков» видеороликов внутри закрытой учебной платформы с YouTube на RuTube. Примерно 100 роликов спустя я обнаружил, что все ролики с доступом по ссылке недоступны к просмотру…

Как обстоят дела
TL;DR В студии Rutube ошибка в шаблоне html-кода. Исправление в конце статьи.
Большинство сервисов не поддерживают автоматическое встраивание плеера rutube по ссылке, как это традиционно происходило с youtube. Поэтому, встраивание такого плеера приходится производить через вставку html-кода в страницу.
Когда мы делаем это для публичных роликов всё работает как надо. Но как только мы попытаемся вставить код сформированный студией Rutube для видео доступного только по ссылке, получим такое окно:

При попытках найти решение, я обнаружил, что этой проблеме не один год:

Ответ технической поддержки Rutube
Как и полагается, решения проблемы в общем доступе не нашлось, так что я пошёл со своим вопросом в техническую поддержку Rutube, где спустя полторы недели получил такой ответ:
Здравствуйте! При встраивании приватного ролика необходимо заменить стандартный id ролика из кода вставки на id с ключом доступа (можно скопировать из url или выделить из ссылки в функции «поделиться»). Должен получиться такой формат: https://rutube.ru/play/embed/idролика/?p=ключ«… Убедитесь, чтобы код в ссылке содержал именно следующую последовательность: play/embed/id ролика с ключом.

«Интересно, а где обычные пользователи должны узнать этот занимательный факт?» — подумал я и полез автоматизировать формирование этих кодов, раз разработчики платформы решили отложить решение этой проблемы в долгий ящик.
Если вам нужно поправить всего пару роликов, то вот пошаговая инструкция, как сделать это руками. Автоматизацию ищите в конце данной статьи.
Как сделать это вручную
-
Копируем из окошка «Поделиться» ссылку на приватное видео и код для вставки:
Получение ссылки в «студии Rutube» Получение html-кода в «студии Rutube» -
Получаем ссылку и код такого вида:
# Ссылка: https://rutube.ru/video/private/<id-ролика>/?p=<key-ролика> # Код вставки плеера: <iframe width="720" height="405" src="https://rutube.ru/play/embed/<id-ролика>" # внимание на эту строку frameBorder="0" allow="clipboard-write; autoplay" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
Я заменил на плейс-холдеры лишь
<id-ролика>
и<key-ролика>
. Вместо них будет небольшой хэш, его можно увидеть на скриншоте выше, в ответе технической поддержки. -
Берём ключ, вместе с
/?p=
и добавляем к содержимому ссылки, внутри кода:<iframe width="720" height="405" src="https://rutube.ru/play/embed/<id-ролика>/?p=<key-ролика>" # внимание на эту строку frameBorder="0" allow="clipboard-write; autoplay" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
Вы не можете просто скопировать ссылку, т.к. у них разные пути:
.ru/video/private/
и.ru/play/embed/
Автоматизируем процесс
Вы можете просто использовать этот фрагмент кода на C# в любом онлайн компиляторе или адаптировать его под себя:
string srcUrl, htmlOut; string[] idAndKey; srcUrl = Console.ReadLine(); idAndKey = srcUrl.Split('/'); htmlOut = $"<iframe width=\"720\" height=\"405\" src=\"https://rutube.ru/play/embed/{idAndKey[5]}/{idAndKey[6]}\" " + $"frameBorder=\"0\" allow=\"clipboard-write; autoplay\" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>"; Console.WriteLine(htmlOut);
Или же воспользоваться простейшим оконным приложением из моего репозитория.
Итог
Уважаемые читатели, не забрасывайте технический долг на долгие годы. Пишите свои костыли и будьте счастливы. Документируйте найденные проблемы и делитесь ими с сообществом.
Надеюсь, моя статья поможет пользователям отечественной платформы, столкнувшимся с этой проблемой, разобраться, что проблема не в них самих. Спасибо за внимание.
ссылка на оригинал статьи https://habr.com/ru/articles/897538/
Добавить комментарий