Как открыть яндекс станцию
Перейти к содержимому

Как открыть яндекс станцию

  • автор:

Дорабатываем Яндекс.Станцию для просмотра YouTube

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 < "items":[ < "icon":"https://avatars.mds.yandex.net/get-yandex-station/1540981/yandexstationicon/orig", "id":"************", "name":"Яндекс Станция", "online":true, "platform":"yandexstation", "screen_capable":true, "screen_present":true >], "status":"ok" >

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

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

Запрос на yandex.ru/video/station отправляется методом POST. Повторим его из консоли, получив команду следующим образом:

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

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

Собираем

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

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

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

def sendToScreen(video_url): # Auth and getting Session_id auth_data = < 'login': config.login, 'passwd': config.password >s = requests.Session() s.get("https://passport.yandex.ru/") s.post("https://passport.yandex.ru/passport?mode=auth&retpath=https://yandex.ru", data=auth_data) Session_id = s.cookies["Session_id"] # Getting x-csrf-token token = s.get('https://frontend.vh.yandex.ru/csrf_token').text # Getting devices info TODO: device selection here devices_online_stats = s.get("https://quasar.yandex.ru/devices_online_stats").text devices = json.loads(devices_online_stats)["items"] # Preparing request headers = < "x-csrf-token": token, >data = < "msg": < "provider_item_id": video_url >, "device": devices[0]["id"] > if "https://www.youtube" in video_url: data["msg"]["player_id"] = "youtube" # Sending command with video to device res = s.post("https://yandex.ru/video/station", data=json.dumps(data), headers=headers) return res.text

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

Что в итоге?

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

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

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

Заключение

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

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

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

  • реверс-инжиниринг
  • яндекс.станция
  • яндекс.модуль
  • Кинопоиск
  • телеграм-бот
  • Программирование
  • Яндекс API
  • Реверс-инжиниринг

Умная колонка Яндекс.Станция Мини Новая Black [YNDX-00021K]

Тип умная колонка Беспроводые подключения Bluetooth, Wi-Fi Голосовой помощник Яндекс Алиса Дополнительная информация 3 сенсорные кнопки, разъём питания (DC jack) 4 мм Тип питания от сети Количество микрофонов 4 Свечение черный оникс Разъемы и интерфейсы выход аудио Протокол связи Wi-Fi, Bluetooth Работает в системе «умный дом» есть

Как снять кожух с Яндекс Станции: подробная инструкция

Если у вас по каким-то причинам возник вопрос, как снять кожух с Яндекс Станции – вперед! Расскажем, что необходимо делать. Но убедительно просим вас действовать строго по инструкции, чтобы не повредить устройство. Иначе можно столкнуться с неприятными последствиями, а они нам точно не нужны.

Разбираем колонку

Некоторые пользователи считают, что Яндекс Станция без кожуха лучше звучит: звук становится более чистым, более объемным. Так ли это – решать только вам, мы не будем давать подобных советов. Другие же хотят снять часть корпуса, чтобы почистить ее от внешних загрязнений.

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

Первое, что необходимо сделать:

  • Отсоедините провод питания от разъема на корпусе устройства;
  • Если у вас подключен кабель HDMI, отключите его тоже.

Теперь вы готовы к тому, чтобы снять кожух на Яндекс Станции Макс или на обычной колонке. Действуйте аккуратно, не торопитесь, тогда все получится.

  • Убедитесь, что устройство стоит на твердой ровной поверхности;
  • Аккуратно сожмите колонку с двух сторон ладонями (не давите) и немного потяните вниз.

Ощутили движение? Если возникли трудности, найдите на верхней крышке резиновые уплотнители. Аккуратно подденьте их – но не сломайте! После этого вновь потяните ладонями вниз (с двух сторон).

Если все получилось – продолжаем:

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

Не торопитесь, продвигайтесь постепенно – и уже через несколько секунд вы сможете снять защитную крышку. Готово, теперь можете перевернуть девайс в исходное положение, с ног на голову.

Помните, что под кожухом для Яндекс Станции находятся динамики – вы увидите их на передней части корпуса устройство. С ними необходимо обращаться крайне осторожно, любое неловкое и неосторожное движение может привести к поломке оборудования. Гарантия производителя в таких случаях действовать не будет!

Напоследок несколько слов о том, как снять кожух с Яндекс Станции Мини или Лайт. Если в больших моделях колонок предусмотрена возможность снятия крышки, то маленькие устройства – неразборные! Без последствий сдвинуть часть корпуса попросту нельзя. Если вы будете предпринимать подобные шаги, то исключительно на ваш страх и риск.

Умная колонка Яндекс Станция Макс

Умная колонка Яндекс Станция Макс

Оформленный, но не подтвержденный менеджерами заказ не является заключенным договором. Доставка по Москве 400 руб. Стоимость доставки в другие города рассчитывается после указания адреса при оформлении заказа.

Мы работаем только по безналичному расчету с партнерами. Доступные варианты оплаты: Оплата по счету.

Заказ по телефону 8 800 550-72-64

Умная колонка Яндекс Станция Макс

Умная колонка Яндекс Станция Макс

Умная колонка Яндекс Станция Макс

Умная колонка Яндекс Станция Макс

Умная колонка Яндекс Станция Макс

Умная колонка Яндекс Станция Макс

Умная колонка Яндекс Станция Макс

Умная колонка Яндекс Станция Макс

Умная колонка Яндекс Станция Макс

Умная колонка Яндекс Станция Макс

Покупатели, которые приобрели Умная колонка Яндекс Станция Макс, также купили

Звук, который уносит

Яндекс Станция Макс — это мощная колонка, которая распространяет качественный стереозвук на всё окружающее пространство. Она играет значительно громче и чище обычной Яндекс Станции и, тем более, Станции Мини. Пять абсолютно новых динамиков общей мощностью 65 Ватт генерируют прозрачное и громкое звучание, которое раскроет любую композицию, оживит фильм или зажжёт вечеринку.

Музыка везде

Вы можете установить несколько колонок в разных частях дома и с помощью голосовой команды запустить синхронное воспроизведение любимых треков. Любое пространство в мгновение наполнится вашим настроением. Даже к одной колонке можно подключить дополнительные динамики или целую систему, используя стандартный разъём 3,5 мм.

Кино в 4К

Подключите Яндекс Станцию Макс к телевизору и скажите: «Алиса, включи фильм». Голосовой помощник посоветует кино на вечер и покажет его в высоком разрешении 4К с объемным звуком Dolby Audio. При покупке Станции Макс вы получаете в подарок год подписки Плюс Мульти и полгода доступа к библиотеке Амедиатека. Смотрите любимые фильмы и самые крутые сериалы HBO в любой момент.

Алиса на связи

Умный голосовой помощник Алиса от Яндекс всегда живет в Станции Макс. Её можно попросить рассказать последние новости, вывести прогноз погоды, включить свет или выключить телевизор. Он легко управляет умным домом, быстро ищет информацию в интернете и всегда готова просто поболтать. В том числе с детьми. Благодаря 7 чувствительным микрофонам Алиса всегда услышит вас даже из другой комнаты, а также во время проигрывания музыки или фильмов.

Говорит и показывает

Яндекс Станция Макс оборудована уникальным диодным дисплеем, который показывает дополнительную информацию ко всем действиям: выводит время, эквалайзер, демонстрирует уровень громкости и многое другое. А ещё с его помощью видно настроение Алисы! Управлять станцией стало удобнее не только благодаря экрану. Теперь в комплекте с колонкой идёт удобный пульт, который помогает быстро перемещаться по меню, особенно если вы используете Станцию с телевизором.

Алло?!

Теперь на Яндекс Станцию можно звонить из приложения Яндекса со смартфона или с другой Станции. Общайтесь с родственниками на расстоянии без лишних настроек или используйте умные колонки как интерком!

Основные характеристики Яндекс.Станция Макс

Диапазон частот 42 — 20000 Гц
Чувствительность 108
Максимальная мощность, Вт 65 Вт
Корпус
Цвет Red, Grey, Black, Blue
Разъемы AUX 3,5 мм, HDMI
Наличие микрофона Да
Высота 231 мм
Ширина 141 мм
Глубина 141 мм
Вес 2.7 кг

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

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