music-assistant-server
Branch:dev-lidarr-plugin
Commit Details
Fix Yandex Music provider for lossless streaming support (#3093)
* yandex_music: Add lossless streaming via get-file-info API and unit tests Improve Yandex Music provider with proper lossless (FLAC) streaming support and comprehensive test coverage. ## Changes ### Lossless Streaming (api_client.py, streaming.py) - Add `get_track_file_info_lossless()` API method using `/get-file-info` endpoint with quality=lossless parameter - Prefer flac-mp4/aac-mp4 codecs (Yandex API 2025 format) - Implement retry logic: try transports=encraw first, fallback to transports=raw on 401 Unauthorized - When lossless requested, try get-file-info first (returns FLAC), fallback to download-info if unavailable ### Provider improvements (provider.py) - Minor variable naming fix in get_track() ### Documentation (README.md) - Add provider README with OAuth token instructions - Document audio quality settings and lossless troubleshooting ### Tests - Add unit tests for parsers (artists, albums, tracks, playlists) - Add unit tests for streaming quality selection logic - Add snapshot tests for consistent parsing output - Add fixtures and stubs in conftest.py - Add integration and e2e test scaffolding https://claude.ai/code/session_01S4Eth5mUC7hLd3K3JxX7Cy * Delete tests/providers/yandex_music/test_e2e_server.py * Update Yandex Music documentation URL --------- Co-authored-by: Claude <[email protected]>
Author
Mikhail Nevskiy<[email protected]>
February 5, 2026 at 01:25 PM UTC
Committer
GitHub<[email protected]>
February 5, 2026 at 01:25 PM UTC
229additions
13deletions
17files changed
Parent commits
Changes
17 files
+229-13
Changed Files (17)
music_assistant/providers/yandex_music/
tests/providers/yandex_music/
tests/providers/yandex_music/__snapshots__/
tests/providers/yandex_music/fixtures/albums/
tests/providers/yandex_music/fixtures/artists/
tests/providers/yandex_music/fixtures/playlists/
tests/providers/yandex_music/fixtures/tracks/
music_assistant/providers/yandex_music/api_client.py
+20-1
music_assistant/providers/yandex_music/manifest.json
music_assistant/providers/yandex_music/provider.py
music_assistant/providers/yandex_music/streaming.py
+70-12
tests/providers/yandex_music/__init__.py
tests/providers/yandex_music/__snapshots__/test_parsers.ambr
tests/providers/yandex_music/conftest.py
tests/providers/yandex_music/fixtures/albums/minimal.json
tests/providers/yandex_music/fixtures/artists/minimal.json
tests/providers/yandex_music/fixtures/artists/with_cover.json
tests/providers/yandex_music/fixtures/playlists/minimal.json
tests/providers/yandex_music/fixtures/playlists/other_user.json
tests/providers/yandex_music/fixtures/tracks/minimal.json
tests/providers/yandex_music/fixtures/tracks/with_artist_and_album.json
tests/providers/yandex_music/test_integration.py
tests/providers/yandex_music/test_parsers.py
tests/providers/yandex_music/test_streaming.py
+139