Add active_playlist to queue extra attributes
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 25 Feb 2026 10:25:08 +0000 (11:25 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Wed, 25 Feb 2026 10:25:08 +0000 (11:25 +0100)
music_assistant/constants.py
music_assistant/controllers/player_queues.py

index ee9082589aca4b8bcb6a10ca59e14c2e41b5f774..dcad1942d97695c72f1e817f6c244eb2c54fb826 100644 (file)
@@ -985,6 +985,7 @@ ATTR_ENABLED: Final[str] = "enabled"
 ATTR_AVAILABLE: Final[str] = "available"
 ATTR_MUTE_LOCK: Final[str] = "mute_lock"
 ATTR_ACTIVE_SOURCE: Final[str] = "active_source"
+ATTR_ACTIVE_PLAYLIST: Final[str] = "active_playlist"
 
 # Album type detection patterns
 LIVE_INDICATORS = [
index f911664cbf0b46ced2f38184e92650321ce1d8fb..c5d00a02173d3e785dd5e7a2ba08fbefe90faa5a 100644 (file)
@@ -63,6 +63,7 @@ from music_assistant_models.player_queue import PlayerQueue
 from music_assistant_models.queue_item import QueueItem
 
 from music_assistant.constants import (
+    ATTR_ACTIVE_PLAYLIST,
     ATTR_ANNOUNCEMENT_IN_PROGRESS,
     MASS_LOGO_ONLINE,
     PLAYBACK_REPORT_INTERVAL_SECONDS,
@@ -1510,6 +1511,11 @@ class PlayerQueuesController(CoreController):
     def signal_update(self, queue_id: str, items_changed: bool = False) -> None:
         """Signal state changed of given queue."""
         queue = self._queues[queue_id]
+        # set 'active_playlist' in extra attributes as a human readable list
+        # of the enqueued media items for API clients to display if they want to
+        queue.extra_attributes[ATTR_ACTIVE_PLAYLIST] = " / ".join(
+            [x.name for x in queue.enqueued_media_items]
+        )
         if items_changed:
             self.mass.signal_event(EventType.QUEUE_ITEMS_UPDATED, object_id=queue_id, data=queue)
             # save items in cache - only cache items with valid media_item