Fix global cache key and YTMusic playlist edge case. (#1540)
authorMarvin Schenkel <marvinschenkel@gmail.com>
Sat, 3 Aug 2024 13:25:10 +0000 (15:25 +0200)
committerGitHub <noreply@github.com>
Sat, 3 Aug 2024 13:25:10 +0000 (15:25 +0200)
Fix global cache key and playlist edge case.

music_assistant/server/controllers/music.py
music_assistant/server/providers/ytmusic/helpers.py

index bd47cb83c8336e0c7cf999d23fe4977ae0d51d78..d4b9c54f8df7a31c486b0cb4c21693c38d5427b1 100644 (file)
@@ -510,7 +510,7 @@ class MusicController(CoreController):
         ctrl = self.get_controller(media_type)
         is_library_item = media_item.provider == "library"
 
-        available_providers = get_global_cache_value("unique_providers")
+        available_providers = get_global_cache_value("provider_instance_ids")
         if TYPE_CHECKING:
             available_providers = cast(set[str], available_providers)
 
index 2e6e63208223c46995b5a2aa6ab642ed5eb289ef..6af6dc7d6e2001c366c801a1cf4022a0584cbc9c 100644 (file)
@@ -64,6 +64,8 @@ async def get_playlist(
         ytm = ytmusicapi.YTMusic(auth=headers, language=language)
         playlist = ytm.get_playlist(playlistId=prov_playlist_id, limit=None)
         playlist["checksum"] = get_playlist_checksum(playlist)
+        # Fix missing playlist id in some edge cases
+        playlist["id"] = prov_playlist_id if not playlist.get("id") else playlist["id"]
         return playlist
 
     return await asyncio.to_thread(_get_playlist)