Создание yastation — консольного клиента для управления Яндекс станцией

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Однажды сидя за работой и параллельно слушая музыку на своей Яндекс станции, я обнаружил для себя интересную вещь - я не могу просто взять и переключить трек. Вы спросите: "Как так могло получится?", а я отвечу - вчера я сорвал голос в ожесточенной политической баталии, а телефон, как назло, лежал дальше, чем я мог бы дотянутся. В итоге такая неудачная ситуация побудила меня к созданию очередного велосипеда.

Взаимодействие со станцией

Первым делом я, как думаю и любой другой на моем месте, пошел гуглить. Я искал информацию как по уже существующим решениям, так и по всевозможным документациям и описаниям API. В итоге поиски привели меня лишь к модулю для Home Assistant, которым я, к своему сожалению, не пользуюсь. Однако данная реализация в значительной степени помогла понять как управлять станцией из кода. Во первых, есть два способа взаимодействия:

  1. Не самый удобный (ИМХО) websocket API

  2. Закрытый и почти не задокументированный HTTP API

По итогу размышлений мною был выбран HTTP API, поскольку он проще в реализации и может работать из любой сети.

Собственно реализация

Дальше не было ничего особенно сложного, как и с любым другим закрытым API пришлось сделать вход через логин и пароль, с последующим вытаскиванием cookie из сессии. После входа доставался список устройств и для выбранной колонки создавалась пачка сценариев для дальнейшего взаимодействия. В итоге на данный момент возможен вызов нескольких базовых действий:

  1. Старт (запуск избранной музыки)

  2. Стоп

  3. Следующий трек

  4. Предыдущий трек

  5. Тише

  6. Громче

  7. Включи песню (включает песню после ввода названия)

В планах добавление некоторого функционала, на который не способна даже сама станция - например очередь воспроизведения. Исходный код вы можете найти на github

Источник: https://habr.com/ru/post/657657/


Интересные статьи

Интересные статьи

Есть такой анекдот:— Давай пропишем это в договоре?— Да ладно, потом разберёмся.Разбираются 5 лет в суде. Хочется его дополнить тонким юридическим юморком: если разбираются.  «Почему-то...
Задача по миграции из одного облака в другое, на самом деле, довольно распространенная в нашей практике. Происходит это по разным причинам: ценовая политика облачного про...
В интернет-магазинах, в том числе сделанных на готовых решениях 1C-Битрикс, часто неправильно реализован функционал быстрого заказа «Купить в 1 клик».
На написание этой заметки меня сподвигла Хабро-статья: SEO в 2019 году не работает? И если до этого момента у меня проскакивали какие-то нехорошие подозрения про SEO оптимизацию в Яндекс, но ...
Хороший сервис для заказа такси должен быть безопасным, надёжным и быстрым. Пользователь не станет вдаваться в детали: ему важно, чтобы он нажал кнопку «Заказать» и как можно быстрее получил ...