Я взломал и доработал Яндекс.Станцию

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

Пример работы

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

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

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

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

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

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

Я взломал и доработал Яндекс.Станцию

После клика по кнопке видео улетело на Яндекс.Станцию и воспроизвелось дальше там. Прямо как ChromeCast или AirPlay. Восторг! Но я обрадовался не самому функционалу, а потенциальной возможности отправить любое видео на станцию.

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

Взлом

Ну как "взлом". Я просто посмотрел, как работает отправка команды с сайта на станцию. Технические подробности, как всегда на Хабре. А тут вкратце.

Я взломал и доработал Яндекс.Станцию

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

В результате получилась программа, которая может отправить ссылку с видео на Станцию. Но это ещё должно быть удобно!

Интерфейс

Сначала я думал сделать расширение для Хрома, чтобы было совсем, как AirPlay, но потом понял, что удобнее управлять будет с мобильного телефона. Поэтому выбор пал на телеграм-бота.

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

Что в итоге?

Сейчас у меня есть бот, через которого мы отправляем видео с Ютуба на Станцию. Просто нажимаем «Поделиться» в приложении YouTube и отправляем ссылку Боту. Кстати, я назвал его «Ящик» и сделал логотип)

Я взломал и доработал Яндекс.Станцию

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

А вот, как работает бот сейчас:

Заключение

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

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

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

Надеюсь, вам было интересно.

Успехов!

1818
10 комментариев

Понимаю, что это не самое подходящее место для оффтоп-обсуждения, но вот такой прикол я поймал в вашей игре :)

Ответить

Блин, Сергей, “I win”😂😂👍🏽

1
Ответить