music-assistant-server
Branch:dev-lidarr-plugin
Commit Details
fix(yandex_music): fix playlist loading and missing album cover art (#3099)
* fix(yandex_music): fix playlist tracks not loading in UI - Return empty list for page > 0 since Yandex Music API returns all tracks in a single call; without this the controller pagination loop never terminates - Add fetch_tracks_async() fallback when API returns playlist metadata without tracks - Raise ResourceTemporarilyUnavailable instead of returning empty list when tracks are expected but unavailable, preventing cache of empty results - Fetch full track details in batches of 50 to reduce timeout risk - Retry get_tracks once on NetworkError in api_client - Raise ResourceTemporarilyUnavailable on NetworkError in get_playlist to prevent caching None as empty result - Suppress yandex_music library DEBUG logs to avoid huge API dumps Co-authored-by: Cursor <[email protected]> * chore: apply ruff fixes and update snapshot - Remove unused noqa comment (RUF100) in provider.py - Update test_parsers snapshot for upstream model changes (year/style fields) Co-authored-by: Cursor <[email protected]> * fix(yandex_music): fix missing album cover art in library - In parse_track(), use parse_album() instead of ItemMapping for the track's album reference so albums are created with full metadata (including cover_uri) when tracks are synced to the library - In get_liked_albums(), fetch full album details via client.albums() in batches of 50, since the users_likes_albums endpoint returns minimal data without cover_uri Co-authored-by: Cursor <[email protected]> * chore(yandex_music): regenerate parser snapshots after models bump Co-authored-by: Cursor <[email protected]> * Update music_assistant/providers/yandex_music/api_client.py Co-authored-by: Copilot <[email protected]> * Update music_assistant/providers/yandex_music/provider.py Co-authored-by: Copilot <[email protected]> * Add tests for api_client batching/retry and playlist edge cases Cover the 3 unresolved Copilot review comments from PR #3099: - get_liked_albums() batch fetching and NetworkError fallback - get_tracks() retry-on-NetworkError logic - get_playlist_tracks() page>0, fetch_tracks_async fallback, empty batch error Co-Authored-By: Claude Opus 4.6 <[email protected]> --------- Co-authored-by: Михаил Невский <[email protected]> Co-authored-by: Cursor <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]>
Author
Mikhail Nevskiy<[email protected]>
February 9, 2026 at 08:42 AM UTC
Committer
GitHub<[email protected]>
February 9, 2026 at 08:42 AM UTC
125additions
4deletions
6files changed
Parent commits
Changes
6 files
+125-4
Changed Files (6)
music_assistant/providers/yandex_music/
tests/providers/yandex_music/__snapshots__/
tests/providers/yandex_music/
music_assistant/providers/yandex_music/api_client.py
+43-4
music_assistant/providers/yandex_music/parsers.py
music_assistant/providers/yandex_music/provider.py
+9
tests/providers/yandex_music/__snapshots__/test_parsers.ambr
tests/providers/yandex_music/test_api_client.py
tests/providers/yandex_music/test_integration.py
+73