From c1bbebe00536d77d00f7b8518e51763a16448432 Mon Sep 17 00:00:00 2001 From: Rafael Moraes <50295204+glomatico@users.noreply.github.com> Date: Wed, 25 Feb 2026 21:04:27 -0300 Subject: [PATCH] Attach playlist metadata and tags to media --- votify/interface/interface.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/votify/interface/interface.py b/votify/interface/interface.py index 808439c..fbad0a0 100644 --- a/votify/interface/interface.py +++ b/votify/interface/interface.py @@ -181,23 +181,26 @@ class SpotifyInterface: playlist_response["data"]["playlistV2"]["content"]["items"] ) - for item in playlist_items: + for index, item in enumerate(playlist_items): track_data = item["itemV2"]["data"] track_id = track_data["uri"].split(":")[-1] if track_data["__typename"] == "Track": - yield await self._get_track_media( + media = await self._get_track_media( track_id=track_id, track_data=track_data, ) elif track_data["__typename"] == "Episode": - yield await self._get_episode_media( + media = await self._get_episode_media( episode_id=track_id, episode_data=track_data, ) else: raise VotifyMediaNotFoundException(track_id, track_data) + media.playlist_metadata = playlist_data + media.playlist_tags = self.base.get_playlist_tags(playlist_data, index) + async def get_media_by_url(self, url: str) -> AsyncGenerator[SpotifyMedia, None]: url_info = self.base.parse_url_info(url)