From: Marvin Schenkel Date: Thu, 11 Jul 2024 18:38:49 +0000 (+0200) Subject: Apple Music: (Hopefully) fix time out issues + fix handling of missing artist details... X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=75361d0f2fdcb5f13162a7b90fde47a11396de92;p=music-assistant-server.git Apple Music: (Hopefully) fix time out issues + fix handling of missing artist details (#1489) * Fix timeout issues and added itemmapping in case an Artist cannot be found * Remove debug statement for solved issue. --- diff --git a/music_assistant/server/providers/apple_music/__init__.py b/music_assistant/server/providers/apple_music/__init__.py index 481ae9b6..46d27481 100644 --- a/music_assistant/server/providers/apple_music/__init__.py +++ b/music_assistant/server/providers/apple_music/__init__.py @@ -209,8 +209,8 @@ class AppleMusicProvider(MusicProvider): ) continue song_catalog_ids.append(catalog_id) - # Obtain catalog info per 300 songs - max_limit = 300 + # Obtain catalog info per 200 songs, the documented limit of 300 results in a 504 timeout + max_limit = 200 for i in range(0, len(song_catalog_ids), max_limit): catalog_ids = song_catalog_ids[i : i + max_limit] catalog_endpoint = f"catalog/{self._storefront}/songs" @@ -238,8 +238,6 @@ class AppleMusicProvider(MusicProvider): async def get_album(self, prov_album_id) -> Album: """Get full album details by id.""" - # Debug issue https://github.com/music-assistant/hass-music-assistant/issues/2431 - self.logger.debug("Get album %s", prov_album_id) endpoint = f"catalog/{self._storefront}/albums/{prov_album_id}" response = await self._get_data(endpoint, include="artists") return self._parse_album(response["data"][0]) @@ -384,7 +382,14 @@ class AppleMusicProvider(MusicProvider): attributes = artist_obj["attributes"] else: artist_id = artist_obj["id"] - attributes = {} + self.logger.debug("No attributes found for artist %s", artist_obj) + # No more details available other than the id, return an ItemMapping + return ItemMapping( + media_type=MediaType.ARTIST, + provider=self.instance_id, + item_id=artist_id, + name=artist_id, + ) artist = Artist( item_id=artist_id, name=attributes.get("name"),