Сергей Крупник
1021

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

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

В закладки
Пример работы

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

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

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

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

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

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

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

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

Взлом

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

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

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

Интерфейс

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

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

Что в итоге?

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

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

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

Заключение

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

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

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

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

Успехов!

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Сергей Крупник", "author_type": "self", "tags": [], "comments": 6, "likes": 6, "favorites": 4, "is_advertisement": false, "subsite_label": "unknown", "id": 98738, "is_wide": true, "is_ugc": true, "date": "Mon, 23 Dec 2019 20:24:27 +0300", "is_special": false }
Создать объявление на vc.ru
Дизайн
Adobe прекращает поддержку Muse CC. Ближайший аналог — Nicepage
Adobe Systems 26 марта 2020 года прекращает техническую поддержку Muse CC, сам проект закрыт еще в 2018. Muse CC — это…
(function(d, ver) { var s = d.createElement('script'); s.src = 'https://specials-f378ef5.gcdn.co/Covid19Quiz/all.min.js?' + ver; s.async = true; var container = d.getElementById('covid-quiz'); if (container) { s.onload = function() { new Covid19Quiz.Special({ css: 'https://specials-f378ef5.gcdn.co/Covid19Quiz/all.min.css?' + ver, container: container, location: 'article', share: { url: '', title: '', } }); }; } d.body.appendChild(s); })(document, '445a6a75');
0
6 комментариев
Популярные
По порядку
Написать комментарий...
0

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

Ответить
1

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

Ответить
0

Круто! Как вам механика?

Ответить
0

Ну, как я понял, суть игры в том, чтобы вырастить более крупный шар по сравнению с имеющимися npc. Сделать это можно путём поглощения меньших по размеру. Причём их ещё надо «притянуть» к себе, а дефолтные параметры гравитации всё усложняют (так оно и интереснее). В плане механики мне понравилась штука, когда ты делаешь всё, чтобы притянуть к себе меньшую по объёму сферу, и ты думаешь «ага щас я её заберу в себя», то какие-то 1-2 мм всё решают (+гравитация), и ты можешь остаться на «стыковке». Но следующий выстрел может решить эту проблему и эта сфера будет поглощена.

Механика, если честно, лютая - я офигел от способа передвижения: мало того, чтобы передвигаться в одно направление, надо стрелять в противоположное; так ещё и если не будешь экономить выстрелы, рискуешь растратить свои ресурсы. Это усложняет, но это и заставляет вникать и думать типа «хмм.. надо сейчас аккуратнее до сфер добираться, а то можно и обнулиться». В общем, сложно, интересно и весьма необычно. По крайней мере доя меня необычно :)

Ответить
1

Ого! Спасибо за такой подробный отзыв! 

Честно говоря, я немного позабросил этот проект, но вы вдохновляете меня снова вернуться к нему. Здорово, что вы сами разобрались в управлении)

Я планировал сделать что-то вроде agar.io только с механикой из игры osmos (https://www.youtube.com/watch?v=jrzhlTn1_ds). В планах были туториал, кампания и мультиплеер. А еще полноценный дизайн и таблица рекордов.

Не знаю, стоит ли доделывать эту игру. Проектов так много, а времени почти нет) Вот, последние пару месяцев сосредоточен на сервисе поиска горнолыжных инструкторов в Красной поляне: https://getcoach.ru

Ответить
0

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

Вы хотите прикрутить более сложную графику, как я понял. Я на самом деле не вот дофига эксперт, я и то ради интереса на ваш гит зашёл (и не пожалел). Вспомнил время когда учился кодить на Swift на YouTube и сделал простенькую абстрактную игрушку на spritekit. Это был 2015 год. Сегодня я вижу ваш инди-проект и я подофигел, что с шариками можно так. Я не говорю, что вам нужно все силы бросить на эту игрушку, если она в стадии доделывания, то why not. Тем более, вы до стадии доделывания прошли путь из точки А в точку Б. Если у этой штуки ещё и мультиплеер есть и продуманные сюжетные истории + scores, то так это бомба. Не могу сказать, что игра выстрелит в массах, да и первую аудиторию не всегда легко найти, но инди-игры сейчас любят, тем более на стим не у всех деньги есть. Чисто моё мнение...

А на Getcoach контент где берёте? Мониторите предложения и заносите их на проект? Вроде многие агрегаторы так делают.

Ответить

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Прямой эфир