From 9b4c4cfe7d2daeb6018338c2bddb24c246b5bd40 Mon Sep 17 00:00:00 2001 From: Rob Sonke Date: Thu, 27 Mar 2025 12:40:23 +0100 Subject: [PATCH] Soundcloud: Fallback to the track details for missing entries in playlists (#2063) --- music_assistant/providers/soundcloud/__init__.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/music_assistant/providers/soundcloud/__init__.py b/music_assistant/providers/soundcloud/__init__.py index e0363ed9..c3dfaedc 100644 --- a/music_assistant/providers/soundcloud/__init__.py +++ b/music_assistant/providers/soundcloud/__init__.py @@ -264,11 +264,15 @@ class SoundcloudMusicProvider(MusicProvider): for index, item in enumerate(playlist_obj["tracks"], 1): try: # Skip some ugly "tracks" entries, example: - # {'id': 123, 'kind': 'track', 'monetization_model': 'NOT_APPLICABLE', - # 'policy': 'ALLOW'} + # {'id': 123, 'kind': 'track', 'monetization_model': 'NOT_APPLICABLE'} if "title" in item: if track := await self._parse_track(item, index): result.append(track) + # But also try to get the track details if the track is not in the playlist + else: + track_details = await self._soundcloud.get_track_details(item["id"]) + if track := await self._parse_track(track_details[0], index): + result.append(track) except (KeyError, TypeError, InvalidDataError, IndexError) as error: self.logger.debug("Parse track failed: %s", item, exc_info=error) continue -- 2.34.1