music-assistant-server
Branch:dev-lidarr-plugin
Commit Details
Add Yandex Music provider (#3002)
* Add Yandex Music provider Implement a new music provider for Yandex Music streaming service using the unofficial yandex-music-api library. Features include: - Library sync (artists, albums, tracks, playlists) - Library editing (add/remove tracks, albums, artists) - Search across all media types - Artist albums and top tracks - HTTP streaming with quality selection (320kbps MP3 / FLAC) - Token-based authentication Co-Authored-By: Claude Opus 4.5 <[email protected]> * Fix Yandex Music provider config entries Remove duplicate token field that was causing the Save button to remain disabled during provider setup. Co-Authored-By: Claude Opus 4.5 <[email protected]> * Fix Yandex Music provider based on PR review feedback - Move SUPPORTED_FEATURES to __init__.py and pass to setup() - Remove code duplication in get_config_entries - Remove label_instructions (use documentation instead) - Replace RuntimeError with ProviderUnavailableError - Replace generic Exception catches with InvalidDataError - Remove non-existent AlbumType.PODCAST - Fix audio_format to respect quality config setting (MP3/FLAC) Co-Authored-By: Claude Opus 4.5 <[email protected]> * Add yandex-music to requirements_all.txt Co-Authored-By: Claude Opus 4.5 <[email protected]> * Update manifest.json * Improve Yandex Music provider based on PR review - Use ContentType.UNKNOWN for unknown codecs instead of assuming MP3 - Add PLAYLIST_ID_SPLITTER constant and remove unused cache TTL constants - Optimize search to use specific type when only one media type requested - Remove unused imports Co-Authored-By: Claude Opus 4.5 <[email protected]> * Fix mypy type errors in Yandex Music provider - Add cast for users_playlists_list return type in api_client.py - Add type annotations for _select_best_quality method in streaming.py - Convert quality config value to str | None before passing to method - Remove non-existent MediaItemMetadata attributes (track_count, has_lyrics) - Use spread operator instead of append for Sequence types in search results Co-Authored-By: Claude Opus 4.5 <[email protected]> * Enable CI workflow for feature branches Allow test workflow to run on feature/* branches to validate changes before pushing to upstream PR. Co-Authored-By: Claude Opus 4.5 <[email protected]> * Fix ruff TC006 error - use list() instead of cast() Co-Authored-By: Claude Opus 4.5 <[email protected]> * Remove CI workflow changes unrelated to Yandex Music provider Reverts changes to .github/workflows/test.yml as requested in PR review. Co-Authored-By: Claude Opus 4.5 <[email protected]> * Add Yandex Music provider icons Co-Authored-By: Claude Opus 4.5 <[email protected]> * Update music_assistant/providers/yandex_music/manifest.json Co-authored-by: OzGav <[email protected]> --------- Co-authored-by: Михаил Невский <[email protected]> Co-authored-by: Claude Opus 4.5 <[email protected]> Co-authored-by: Marvin Schenkel <[email protected]> Co-authored-by: OzGav <[email protected]>
Author
Mikhail Nevskiy<[email protected]>
January 28, 2026 at 12:30 PM UTC
Committer
GitHub<[email protected]>
January 28, 2026 at 12:30 PM UTC
1additions
0deletions
10files changed
Parent commits
Changes
10 files
+1-0
Changed Files (10)
music_assistant/providers/yandex_music/
music_assistant/providers/yandex_music/__init__.py
music_assistant/providers/yandex_music/api_client.py
music_assistant/providers/yandex_music/constants.py
music_assistant/providers/yandex_music/icon.svg
music_assistant/providers/yandex_music/icon_monochrome.svg
music_assistant/providers/yandex_music/manifest.json
music_assistant/providers/yandex_music/parsers.py
music_assistant/providers/yandex_music/provider.py
music_assistant/providers/yandex_music/streaming.py
requirements_all.txt
+1