Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alryaz/hass-yandex-music-browser
Yandex Media Browser
https://github.com/alryaz/hass-yandex-music-browser
custom-components homeassistant yandex yandex-music
Last synced: 11 days ago
JSON representation
Yandex Media Browser
- Host: GitHub
- URL: https://github.com/alryaz/hass-yandex-music-browser
- Owner: alryaz
- Created: 2021-06-19T20:06:18.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-14T19:46:19.000Z (over 1 year ago)
- Last Synced: 2024-11-24T19:18:40.349Z (2 months ago)
- Topics: custom-components, homeassistant, yandex, yandex-music
- Language: Python
- Homepage:
- Size: 1.29 MB
- Stars: 64
- Watchers: 7
- Forks: 9
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
Браузер медиа для плагина Yandex Station
========================================
> Включайте музыку, плейлисты и радио на Яндекс.Станции из Home Assistant!
>
> [![hacs_badge](https://img.shields.io/badge/HACS-Custom-orange.svg)](https://github.com/custom-components/hacs)
> [![Лицензия](https://img.shields.io/badge/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
> [![Поддержка](https://img.shields.io/badge/%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F%3F-%D0%B4%D0%B0-green.svg)](https://github.com/alryaz/hass-lkcomu-interrao/graphs/commit-activity)
>
> [![Пожертвование Yandex](https://img.shields.io/badge/%D0%9F%D0%BE%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-Yandex-red.svg)](https://money.yandex.ru/to/410012369233217)
> [![Пожертвование PayPal](https://img.shields.io/badge/%D0%9F%D0%BE%D0%B6%D0%B5%D1%80%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-Paypal-blueviolet.svg)](https://www.paypal.me/alryaz)## Скриншот
Корневой раздел: Библиотека
Раздел: Жанры
Раздел: Новые релизы
Работа компонента с плеером сторонней интеграции
- Медиацентр Kodi:
## Введение
Проект вырос из Pull-request-а: https://github.com/AlexxIT/YandexStation/pull/133.
## Установка
> ⚠️ Для полноценной работы компонента сперва потребуется установить: [AlexxIT/YandexStation](https://github.com/AlexxIT/YandexStation)
> и настроить авторизацию. Информация по установке и конфигурации доступна по ссылке.### Установка посредством HACS
> 👍 ️Рекомендованный способ1. Откройте HACS (через `Extensions` в боковой панели)
1. Добавьте новый произвольный репозиторий:
1. Выберите `Integration` (`Интеграция`) в качестве типа репозитория
1. Введите ссылку на репозиторий: `https://github.com/alryaz/hass-yandex-music-browser`
1. Нажмите кнопку `Add` (`Добавить`)
1. Дождитесь добавления репозитория (занимает до 10 секунд)
1. Теперь вы должны видеть доступную интеграцию `Yandex Music Browser` (`Браузер Яндекс Музыки`) в списке новых интеграций.
1. Нажмите кнопку `Install` чтобы увидеть доступные версии
1. Установите последнюю версию нажатием кнопки `Install`
1. Перезапустите HomeAssistant### Вручную
> ⚠️ Не рекомендуетсяКлонируйте репозиторий во временный каталог, затем создайте каталог `custom_components` внутри папки конфигурации
вашего HomeAssistant (если она еще не существует). Затем переместите папку `yandex_music_browser` из папки `custom_components`
репозитория в папку `custom_components` внутри папки конфигурации HomeAssistant.
Пример (при условии, что конфигурация HomeAssistant доступна по адресу `/mnt/homeassistant/config`) для Unix-систем:
```
git clone https://github.com/alryaz/hass-yandex-music-browser.git hass-yandex-music-browser
mkdir -p /mnt/homeassistant/config/custom_components
mv hass-yandex-music-browser/custom_components/yandex_music_browser /mnt/homeassistant/config/custom_components/
```## Конфигурация
### Из меню _Интеграции_
1. Найдите интеграцию `Yandex Music Browser` (`Браузер Яндекс Музыки`) в списке интеграций
1. Нажмите на найденную интеграцию
1. Следуйте инструкциям на экране для завершения настройки### Используя `configuration.yaml`
1. Добавьте `yandex_music_browser:` куда-нибудь в Ваш файл `configuration.yaml` (двоеточие на конце обязательно!)
1. Перезапустите Home Assistant#### Возможная конфигурация
```yaml
# Конфигурация интеграции
yandex_music_browser:
# Язык для отображения
# Поддерживаемые языки:
# - en: Английский (поддерживается интеграцией)
# - ru: Русский (поддерживается интеграцией)
# - uk: Украинский (поддерживается интеграцией)
# - az: Азербайджанский
# - be: Белорусский
# - he: Иврит
# - hy: Армянский
# - ka: Грузинский
# - kk: Казахский
# - tr: Турецкий
# - uz: Узбекский
#
# Языки, не поддерживаемые интеграцией, будут отображать контент на выбранном языке,
# но элементы управления будут на английском.
language: ru
# Опции для меню браузера
menu_options:
# Предустановка: Новые релизы
- new_releases
# Создание папки в корне:
- title: "Юзвери"
image: "http://www.pngall.com/wp-content/uploads/2016/06/Nyan-Cat-Free-Download-PNG.png"
items:
- user(abcd.ef) # Добавление по имени пользователя: [email protected]
- user(#12345) # Добавление по ID
# Иерархия многоуровневая и многотипная.
- title: "И их любимые альбомы"
class: "albums"
items:
# На одном уровне может находиться сколько угодно объектов каких-либо типов.
- album(10413482) # Carpenter Brut - Blood Machines
- album(448629) # The Karaoke Machine Presents - Gwen Stefani
- track(24945454) # Five Finger Death Punch - Wrong Side of Heaven
```##### Скиншоты результирующей иерархии
Корневой раздел
Папка "Юзвери"
Папка "И их любимые альбомы"
#### Перечень доступных предустановок
| Код | Аргумент | Вид аргумента | Пример вызова |
| --- | -------- | ------------- | --- |
| `album` | `r'\d+'` | Согласно REGEX-шаблону | `album(r'\d+')` |
| `artist` | `r'\d+'` | Согласно REGEX-шаблону | `artist(r'\d+')` |
| `genre` | `r'.+'` | Согласно REGEX-шаблону | `genre(r'.+')` |
| `genres` | `None` | Обязательно без значения | `genres` |
| `mix_tag` | `` | _Необязательный параметр_ | `mix_tag()`,
`mix_tag` |
| `new_playlists` | `None` | Обязательно без значения | `new_playlists` |
| `new_releases` | `None` | Обязательно без значения | `new_releases` |
| `personal_mixes` | `None` | Обязательно без значения | `personal_mixes` |
| `playlist` | `r'(\d+:)?\d+'` | Согласно REGEX-шаблону | `playlist(r'(\d+:)?\d+')` |
| `radio` | `` | _Необязательный параметр_ | `radio()`,
`radio` |
| `track` | `r'\d+'` | Согласно REGEX-шаблону | `track(r'\d+')` |
| `user` | ``,
`#` | Имя пользователя / UID | `user(abcd.ef)`,
`user(#12345)` |
| `user_liked_albums` | ``,
`#` | Имя пользователя / UID | `user_liked_albums(abcd.ef)`,
`user_liked_albums(#12345)` |
| `user_liked_artists` | ``,
`#` | Имя пользователя / UID | `user_liked_artists(abcd.ef)`,
`user_liked_artists(#12345)` |
| `user_liked_playlists` | ``,
`#` | Имя пользователя / UID | `user_liked_playlists(abcd.ef)`,
`user_liked_playlists(#12345)` |
| `user_liked_tracks` | ``,
`#` | Имя пользователя / UID | `user_liked_tracks(abcd.ef)`,
`user_liked_tracks(#12345)` |
| `user_likes` | ``,
`#` | Имя пользователя / UID | `user_likes(abcd.ef)`,
`user_likes(#12345)` |
| `user_playlists` | ``,
`#` | Имя пользователя / UID | `user_playlists(abcd.ef)`,
`user_playlists(#12345)` |
| `yandex_mixes` | `None` | Обязательно без значения | `yandex_mixes` |_Примечание:_ Вызовы к функции `library` (при фактической доступности таковой) невозможны. Это
обусловлено внутренней обработкой иерархии. Вызовы `library` с числовым аргументом выполняют роль
навигации по иерархии.## Что поддерживается
Проект поддерживает проигрывание почти всех типов медиа, которые получаемы библиотекой `yandex-music`.
### Яндекс станции (_Мини_, колонки, и т.д.)
#### В локальном режиме
- Треки (любые)
- Альбомы (любые)
- Плейлисты (любые)
- Исполнители (любые)
- Радио (некоторые не воспроизводятся / не отображаются)#### В облачном режиме
В облачном режиме есть множество огрехов относительно воспроизведения. При этом, доступны:
- Треки (некоторые; если трек не поддерживается, включится Skrillex...)
- Альбомы (некоторые)
- Плейлисты (только пользователя, авторизованного под станцией)
- Исполнители (некоторые)
- Радио (как повезёт!)### Другие плееры
Плееры, принимающие на вход ссылку в службу `media_player.play_media`, смогут воспроизводить треки.
Протестировано на следующих интеграциях:
- `kodi` - открытие по ссылке **работает**
- `onkyo` - открытие по ссылке **работает**Также плееры могут перехватывать `media_type == yandex`. В качестве `media_id` будет использоваться
тип и идентификатор объекта, к примеру: `track:12345`. Компонент попробует разобраться, что к чему.