Чиним видеоролики с доступом по ссылке на RUTUBE

от автора

Однажды мне упала задача от заказчика: перенести «пару десятков» видеороликов внутри закрытой учебной платформы с 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 ролика с ключом.

Скриншот присланный сотрудником технической поддержки

Скриншот присланный сотрудником технической поддержки

«Интересно, а где обычные пользователи должны узнать этот занимательный факт?» — подумал я и полез автоматизировать формирование этих кодов, раз разработчики платформы решили отложить решение этой проблемы в долгий ящик.

Если вам нужно поправить всего пару роликов, то вот пошаговая инструкция, как сделать это руками. Автоматизацию ищите в конце данной статьи.

Как сделать это вручную

  1. Копируем из окошка «Поделиться» ссылку на приватное видео и код для вставки:

    Получение ссылки в «студии Rutube»

    Получение ссылки в «студии Rutube»
    Получение html-кода в «студии Rutube»

    Получение html-кода в «студии Rutube»
  2. Получаем ссылку и код такого вида:

      # Ссылка: 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-ролика>. Вместо них будет небольшой хэш, его можно увидеть на скриншоте выше, в ответе технической поддержки.

  3. Берём ключ, вместе с /?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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *