ProviderFeature.PLAYLIST_TRACKS_EDIT,
ProviderFeature.PLAYLIST_CREATE,
ProviderFeature.RECOMMENDATIONS,
+ ProviderFeature.SIMILAR_TRACKS,
)
playlist = await self.client.get_playlist(playlist_id)
return self.parse_playlist(playlist=playlist)
+ async def get_similar_tracks(self, prov_track_id, limit=25) -> list[Track]:
+ """Retrieve a dynamic list of tracks based on the provided item."""
+ endpoint = "song.getSearchTrackMix"
+ tracks = (await self.gw_client._gw_api_call(endpoint, args={"SNG_ID": prov_track_id}))[
+ "results"
+ ]["data"][:limit]
+ return [await self.get_track(track["SNG_ID"]) for track in tracks]
+
async def get_stream_details(self, item_id: str) -> StreamDetails | None:
"""Return the content details for the given track when it will be streamed."""
url_details, song_data = await self.gw_client.get_deezer_track_urls(item_id)