Управление Яндекс Станцией (отправка команд из кода)


10.01.2020 — Разное


Если раньше я просто себе хотел Яндекс Станцию, то сейчас появился повод.

Сегодня (вчера) поступило предложение интегрировать функционал управления станцией в мою библиотеку. В целом, человек уже большую часть сделал, отверёрсил, реализовал, задокал и даж работает, но, как он говорит сам, возможно времени на поддержку этого добра у него не будет.

Кода не много, вебсокеты, идея интересная. Плюс тут ведь не только станция, но ещё мини и яндекс модуль.

Более того тут zeroconf, mDNS. Было бы классно изучить что это и поработать с этим ✨

Ну Яндекс почему-то всячески противится управлению Станцией чем-то, кроме голоса, а там оказывается вебсокеты наружу торчат, через которые приложение на Андроиде отправляет треки на неё.

Расковырял apk, нашёл ещё пачку неиспользованных методов докучи типа перемотки, плей/паузы, отправки голосовых команд текстом (@anVlad11).

Вообще человек хотел себе Spotify Connect прикрутить, но чёт выкатилось всё в либу.

Вот библиотека Владислава: @anVlad11/dd-alicization

Вот дока по запросам, которые можно слать на станцию: documenter.getpostman.com (плей, пауза, громкость, статус, отправить команду текстом).

Кека всего два:

1. Его либа на Go (ну такой се кек, разберусь, перепишу).

2. У меня нет станции, станции мини и яндекс модуля чтобы всё это дело тестировать.

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

Ну и вообще, уметь управлять станцией это же имба для умного дома, РАЗВЕ НЕТ?! Включение какого-нить трека при возвращении с работы, ставить на паузу при звонке в домофонную дверь. Включать музыку, если в дом зашли не вы (отпугнёт грабителей). Куча идей!

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

Схоронил Habr - Что такое Zeroconf и с чем его едят

~25 дней спустя

В общем дело сделано за меня. Переписано на Python, у чела есть большая я.станция для тестирования)

https://github.com/AlexxIT/YandexStation

Компонент для управления Яндекс.Станцией по локальной сети.

На конец января 2020 поддерживается:

Яндекс.Станция (большая)

Не поддерживается:

Яндекс.Станция Мини

Irbis

Dexp

Будет классно, если список пополнится ✨

Недавние посты


© marshal.by 2020

Исходный код

Сайт работает на Gatsby + prismic и опубликован на GitHub.