Fix random album playlist
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Tue, 16 Dec 2025 08:01:39 +0000 (09:01 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Tue, 16 Dec 2025 08:01:39 +0000 (09:01 +0100)
music_assistant/providers/builtin/__init__.py

index 6e98e4cb9746e53bbb183da7ff5f929717c524cd..82f3324c33f3145339cc1a5d28cbfc0205dc1663 100644 (file)
@@ -554,19 +554,15 @@ class BuiltinProvider(MusicProvider):
 
     @use_cache(expiration=3600, category=CACHE_CATEGORY_PLAYLISTS)
     async def _get_builtin_playlist_random_album(self) -> list[Track]:
-        for in_library_only in (True, False):
-            for min_tracks_required in (10, 5, 1):
-                for random_album in await self.mass.music.albums.library_items(
-                    limit=25, order_by="random"
-                ):
-                    tracks = await self.mass.music.albums.tracks(
-                        random_album.item_id, random_album.provider, in_library_only=in_library_only
-                    )
-                    if len(tracks) < min_tracks_required:
-                        continue
-                    for idx, track in enumerate(tracks, 1):
-                        track.position = idx
-                    return tracks
+        for random_album in await self.mass.music.albums.library_items(
+            limit=1, order_by="random", extra_query="album_type != 'single'"
+        ):
+            tracks = await self.mass.music.albums.tracks(
+                random_album.item_id, random_album.provider
+            )
+            for idx, track in enumerate(tracks, 1):
+                track.position = idx
+            return tracks
         return []
 
     @use_cache(expiration=3600, category=CACHE_CATEGORY_PLAYLISTS)