Яндекс станция произошла ошибка при просмотре видео кинопоиск

Обновлено: 07.07.2024

На Яндекс.Станции неудобно смотреть YouTube. Нет рекомендаций, подписок и даже поиск нормально не работает. Поэтому я написал телеграмм бота для отправки на неё любого видео.

Под катом история, как я это сделал несмотря на то, что официального открытого API нет.

С чего все началось?

Я инженер. Постоянно изучаю, как работают разные технологии и вещи вокруг, а также делаю много интересных проектов сам. Когда друзья подарили мне Яндекс.Станцию, я зареверсил протокол активации и развил идею передачи данных, ориентированной на wow-эффект.

У меня глупый (не smart) телевизор, а в качестве основной медиа приставки я использую Станцию. Все отлично, да только YouTube смотреть на ней совсем неудобно. Нельзя войти в аккаунт Ютуба, а значит, никаких рекомендаций и подписок. Кроме того, поиск по видео в Станции, как я понял, осуществляется через Яндекс.Видео. К сожалению такая схема не очень хорошо работает. Иногда не находятся видео даже если дословно произнести название, а новые видео вообще нельзя посмотреть, пока поисковик Яндекса их не проиндексирует.

Я почти смирился с тем, что YouTube на Станции смотреть нельзя, но все изменилось пару недель назад.

Что же произошло?

В субботу утром я решил посмотреть последний сезон «Кремниевой долины». Зашел на «Кинопоиск» и увидел следующее:


Я и думать забыл про сериал — на все выходные ушел в реверс инжиниринг и разработку.

Давайте разбираться.

Открываем «Кинопоиск» или «Яндекс.Видео» в Хроме — там отличные инструменты для web разработки. Находим нужную кнопку, кликаем правой клавишей мыши, выбираем «Исследовать элемент».


Можно много, что там поизучать, но нас интересует, какой запрос выполняется при клике по этой кнопке. Переходим во вкладку «Network» инструментов разработчика и смотрим запросы.


Да, отлетает много статистики, но сразу видно 2 интересных запроса. Это devices_online_stats и station.

Получаем список устройств

devices_online_stats — запрос активных устройств пользователя. Простой GET запрос. Если вы авторизованы в Яндексе, то можете узнать о своих устройствах просто открыв в браузере ссылку:


Интересно и достаточно интуитивно. ID Станции в примере я заменил на звездочки на всякий случай, но именно он понадобится нам в дальнейшем.

Воспроизводим видео


Запускаем в терминале и получаем ответ:


Через пару секунд видео запускается на станции. Успех!

Собираем

Я удалил все «лишние» поля из запроса так, чтобы он остался рабочим. Для отправки видео на Станцию в тело и заголовки POST запроса нужно положить всего 4 параметра:

  • SessionID — авторизация в Яндексе
  • x-csrf-token
  • provider_item_id — ссылка на видео (или идентификатор для некоторых сервисов)
  • device — Идентификатор устройства, который мы получили ранее

К этому моменту я уже стал оборачивать все в скрипт на Python. В итоге функция для отправки видео на станцию выглядит примерно так:


Вы могли заметить, что я добавляю поле player_id если прислана ссылка с Ютуба. Дело в том, что на Станции есть несколько плееров с кодами youtube, vh и ott. По умолчанию используется vh, но тогда ломается превью и название ролика. Кроме того, его состояние не сбрасывается при смене ролика, что часто вызывает ошибки (Возможно, не все поля в запросе были «лишними»). Плеер ott, как я понял, используется для стриминговых сервисов, а это значит, что в перспективе можно смотреть IPTV через станцию.

Что в итоге?


Я не стал делать его публичным, чтобы не собирать логины и пароли. Но вы можете развернуть такого же для себя или доработать для OAuth авторизации или отправки видео с других сайтов. Все исходники доступны на GitHub.

Я хотел сделать расширение для браузера, чтобы работало совсем как AirPlay с любыми видео, но понял, что удобнее отправлять из приложения с телефона. А для такого сценария лучше подходит бот. Вот видео его работы:

Заключение

Когда инженеру нехватает функционала, он доделывает его сам. Мы теперь действительно регулярно пользуемся этим ботом — очень удобно :)

Разработчики Яндекса, пожалуйста не ломайте этот запрос. Это не уязвимость. Работает только с аутентификацией. А если есть возможность — сделайте API устройств публичным — столько всего можно еще сделать!

Чтобы настроить разрешение видео и скорость воспроизведения, в правом нижнем углу видеоплеера нажмите . Чтобы выбрать аудиодорожку, включить или выключить субтитры, нажмите Аудио и субтитры . У некоторых фильмов есть только одна аудиодорожка или отсутствуют субтитры.

У некоторых видео субтитры включаются автоматически при выборе аудиодорожки — это особенность лицензии конкретного фильма или сериала.

Устаревший браузер может не поддерживать технологии, которые используются для быстрой и удобной загрузки страниц. Установите последнюю версию вашего браузера.

При первом запуске браузера могут подключиться не все плагины, необходимые для корректной работы системы шифрования контента. Перезапустите браузер, чтобы подключить плагины.

Чтобы разрешить воспроизведение защищенного контента, выполните следующие действия в своем браузере:

  • Яндекс.Браузер
  • Google Chrome
  • Mozilla Firefox
  • Opera
Внизу блока Сайты нажмите кнопку Расширенные настройки сайтов . В блоке Защищенное содержимое включите опции Разрешить воспроизведение защищенного содержимого и  Разрешить использование идентификаторов устройств . Перезапустите браузер, чтобы изменения вступили в силу. В левом меню нажмите Конфиденциальность и безопасность . В самом низу выберите Дополнительные настройки контента . Включите опции Разрешить сайтам воспроизводить защищенный контент и Использовать идентификаторы для защищенного контента . Перезапустите браузер, чтобы изменения вступили в силу. Нажмите  → Настройки и перейдите на вкладку Основные . В блоке Содержимое использующее технические средства защиты авторских прав (DRM) включите опцию Воспроизводить контролируемое DRM содержимое . Нажмите  → Настройки  → Дополнительно и перейдите на вкладку Безопасность . В блоке Конфиденциальность и безопасность нажмите Настройки контента  → Защищенное содержимое . Включите опции Разрешить сайтам воспроизводить защищенный контент и  Использовать идентификацию для защищенного содержимого . Перезапустите браузер, чтобы изменения вступили в силу. В\\n операционной системе Linux не все браузеры могут воспроизводить\\n защищенный контент без дополнительной настройки. Если вы используете Яндекс.Браузер на\\n Linux, см. подраздел В браузере под Linux не работает видео. Если\\n проблема повторяется, обратитесь в службу поддержки.

В операционной системе Linux не все браузеры могут воспроизводить защищенный контент без дополнительной настройки. Если вы используете Яндекс.Браузер на Linux, см. подраздел В браузере под Linux не работает видео. Если проблема повторяется, обратитесь в службу поддержки.

Смотреть фильмы и сериалы на Кинопоиске можно в России, Австралии, Австрии, Азербайджане, Аргентине, Армении, Беларуси, Болгарии, Великобритании, Германии, Греции, Грузии, Израиле, Испании, Италии, Казахстане, Канаде, Киргизии, Молдове, Монголии, Польше, Румынии, США, Таджикистане, Туркменистане, Турции, Узбекистане, Финляндии, Франции, Чехии и Южной Корее. Просмотр фильмов может быть недоступен, если вы заходите на Кинопоиск через  анонимайзер. Чтобы это проверить, отключите плагины, программы-анонимайзеры и откройте сайт с помощью последней версии браузера.

Уточните, к какому адресному пространству относится ваш IP-адрес Смотреть фильмы и сериалы на Кинопоиске можно в России, Австралии, Австрии, Азербайджане, Аргентине, Армении, Беларуси, Болгарии, Великобритании, Германии, Греции, Грузии, Израиле, Испании, Италии, Казахстане, Канаде, Киргизии, Молдове, Монголии, Польше, Румынии, США, Таджикистане, Туркменистане, Турции, Узбекистане, Финляндии, Франции, Чехии и Южной Корее. Страна пользователя определяется по IP-адресу. Если ваш интернет-провайдер использует адресное пространство других регионов, онлайн-просмотр будет недоступен. Уточните у своего интернет-провайдера, к адресному пространству какой страны относится ваш IP-адрес.

Воспроизведение прерывается или останавливается

Если видео постоянно прерывается, останавливается при нажатии на паузу или переходе в полноэкранный режим, попробуйте решить проблему самостоятельно:

В настройках плеера нажмите  → Качество и выберите более низкое качество видео.

Закройте в браузере все вкладки, кроме Кинопоиска. Отключите приложения, использующие интернет, и перезагрузите страницу.

Проверьте скорость с помощью Интернетометра. Для видео c разрешением 360p скорость входящего интернет-соединения должна быть больше 2,7 Мбит/с. Если скорость интернета меньше, обратитесь в службу поддержки вашего провайдера.

Попробуйте войти на Кинопоиск через мобильный интернет. Если видео отображается корректно, обратитесь к вашему интернет-провайдеру.

Смотреть фильмы или ролики с помощью Станции можно только при подключенном телевизоре. Соедините колонку и телевизор кабелем HDMI из комплекта поставки. Алиса сделает все остальное.

С помощью Станции можно смотреть видео по подписке из крупнейших онлайн-кинотеатров — КиноПоиска и Амедиатеки, а также на YouTube и Яндекс.Видео. Чтобы посмотреть фильм, который не входит в подписку, его нужно арендовать или купить.

На телевизор, подключенный к Станции, можно отправлять видео, сериалы, мультфильмы, шоу и другие видеоролики. Запустить их можно из результатов поиска на Яндекс.Видео, из КиноПоиска (сайта или приложения для Android), а также из приложения YouTube.

Из Яндекс.Видео

1. Войдите в аккаунт на Яндексе, который вы используете для управления Станцией.

2. Введите в поисковой строке название фильма или ролика, который хотите посмотреть.

4. Выберите Станцию в списке устройств.

5. Управляйте воспроизведением с помощью голосовых команд, например: «Сделай громче», «Поставь на паузу», «Перемотай на 10 минут вперед».

Если вы только что активировали Станцию, она может не сразу отобразиться в списке устройств для отправки видео. Как правило, должно пройти около 30 минут. Попробуйте запустить трансляцию еще раз через некоторое время.

Из КиноПоиска

С сайта

1. Войдите в аккаунт на Яндексе, который вы используете для управления Станцией.

2. Найдите фильм или серию и нажмите кнопку просмотра.

3. В правом верхнем углу над видеоплеером нажмите значок .

5. Управляйте воспроизведением с помощью голосовых команд, например: «Сделай громче», «Поставь на паузу», «Перемотай на 10 минут вперед».

Трансляция недоступна в мобильной версии сайта.

Из приложения

1. Убедитесь, что ваш смартфон или планшет подключен к той же сети Wi-Fi, что и Станция.

2. Откройте приложение КиноПоиска и войдите в аккаунт на Яндексе, который вы используете для управления Станцией.

3. В правом верхнем углу главного экрана нажмите значок .

4. Выберите Станцию в списке устройств.

5. Найдите фильм или серию и нажмите кнопку просмотра.

6. Управляйте воспроизведением с помощью голосовых команд, например: «Сделай громче», «Поставь на паузу», «Перемотай на 10 минут вперед». Кроме того, можно пользоваться пультом управления — он доступен в приложении КиноПоиска.

Транслировать трейлеры на Станцию невозможно.

Из приложения YouTube

Android



3. Управляйте воспроизведением с помощью голосовых команд, например: «Сделай громче», «Поставь на паузу», «Перемотай на 10 минут вперед».

Avatar

Кнопки не будет, если у вас устройство на iOS. Пока там трансляция на Я.Станцию не поддерживается.

Avatar

Кнопки не будет, если у вас устройство на iOS. Пока там трансляция на Я.Станцию не поддерживается.

Avatar

Кнопки не будет, если у вас устройство на iOS. Пока там трансляция на Я.Станцию не поддерживается.

А я где-то писал, что у меня iOS? У меня Huawei Y8P на Android 10.. И кнопки нет

Avatar

А я где-то писал, что у меня iOS? У меня Huawei Y8P на Android 10.. И кнопки нет

Avatar

Можете уточнить, какое в итоге решение? Смартфон на андройд, подключен к той же сети wifi, что и станция, возможность трансляции отсутствует - кнопки попросту нет. Трансляция из веб-версии при этом доступна и работает корректно.

Avatar

Можете уточнить, какое в итоге решение? Смартфон на андройд, подключен к той же сети wifi, что и станция, возможность трансляции отсутствует - кнопки попросту нет. Трансляция из веб-версии при этом доступна и работает корректно.

Кнопка для трансляции изображения в приложении на Android должна отображаться. Если кнопки нет - что-то идёт не так.

Напишите, пожалуйста, об этом в нашу почтовую службу поддержки или в онлайн-чат. Поможем во всём разобраться!

Avatar

Добрый день!
А планируется кнопка продолжить на устройстве в версиях приложения для ТВ Samsung?

Avatar

Добрый день!
А планируется кнопка продолжить на устройстве в версиях приложения для ТВ Samsung?

Пока обещать этого не можем, но постараемся реализовать в будущем!

Сейчас вы можете транслировать изображение несколькими способами:

1. AirPlay на устройствах с iOS, он доступен не только между платформами Apple, но и на некоторые другие модели телевизоров;
2. Google Cast (ранее Chromrecast) на устройствах с Android и Android TV. Устройство Chromecast можно подключить к телевизорам Samsung и транслировать изображение на них, через мобильное приложение;
3. Трансляция на Яндекс.Станцию и Модуль.

Avatar

Кнопка для трансляции изображения в приложении на Android должна отображаться. Если кнопки нет - что-то идёт не так.

Напишите, пожалуйста, об этом в нашу почтовую службу поддержки или в онлайн-чат. Поможем во всём разобраться!

Удалось разобраться самостоятельно - при подключении к новой сети Wi-Fi требуется перезагрузка устройства, с которого планируется выполнять трансляцию. После перезагрузки кнопка трансляции появляется (проверено на 2 телефонах).

Avatar

Кнопки не будет, если у вас устройство на iOS. Пока там трансляция на Я.Станцию не поддерживается.

Avatar

Кнопки не будет, если у вас устройство на iOS. Пока там трансляция на Я.Станцию не поддерживается.

Avatar

Кнопки не будет, если у вас устройство на iOS. Пока там трансляция на Я.Станцию не поддерживается.

А я где-то писал, что у меня iOS? У меня Huawei Y8P на Android 10.. И кнопки нет

Avatar

А я где-то писал, что у меня iOS? У меня Huawei Y8P на Android 10.. И кнопки нет

Avatar

Можете уточнить, какое в итоге решение? Смартфон на андройд, подключен к той же сети wifi, что и станция, возможность трансляции отсутствует - кнопки попросту нет. Трансляция из веб-версии при этом доступна и работает корректно.

Avatar

Можете уточнить, какое в итоге решение? Смартфон на андройд, подключен к той же сети wifi, что и станция, возможность трансляции отсутствует - кнопки попросту нет. Трансляция из веб-версии при этом доступна и работает корректно.

Кнопка для трансляции изображения в приложении на Android должна отображаться. Если кнопки нет - что-то идёт не так.

Напишите, пожалуйста, об этом в нашу почтовую службу поддержки или в онлайн-чат. Поможем во всём разобраться!

Avatar

Добрый день!
А планируется кнопка продолжить на устройстве в версиях приложения для ТВ Samsung?

Avatar

Добрый день!
А планируется кнопка продолжить на устройстве в версиях приложения для ТВ Samsung?

Пока обещать этого не можем, но постараемся реализовать в будущем!

Сейчас вы можете транслировать изображение несколькими способами:

1. AirPlay на устройствах с iOS, он доступен не только между платформами Apple, но и на некоторые другие модели телевизоров;
2. Google Cast (ранее Chromrecast) на устройствах с Android и Android TV. Устройство Chromecast можно подключить к телевизорам Samsung и транслировать изображение на них, через мобильное приложение;
3. Трансляция на Яндекс.Станцию и Модуль.

Avatar

Кнопка для трансляции изображения в приложении на Android должна отображаться. Если кнопки нет - что-то идёт не так.

Напишите, пожалуйста, об этом в нашу почтовую службу поддержки или в онлайн-чат. Поможем во всём разобраться!

Удалось разобраться самостоятельно - при подключении к новой сети Wi-Fi требуется перезагрузка устройства, с которого планируется выполнять трансляцию. После перезагрузки кнопка трансляции появляется (проверено на 2 телефонах).

Читайте также: