import asyncio from apollo_utils.core.constants.dsp import DSP from typing import Any, Dict, List from server.client import services from server.utils.common import prefix_str async def get_playlist_amazon_meta(playlist_id_list: List[str]) -> List[Dict[str, Any]]: """Get amazon playlists meta Args: playlist_id_list: List of amazon playlist_id(s) playlist_id format example -> "454_us" (int_id + market) Returns: List of amazon playlists meta """ result = [] tasks = [ services.dsp.get_track_positions_playlists( dsp=DSP.AMAZON.value, playlist_id=playlist_id, limit=1, include="playlists" ) for playlist_id in playlist_id_list ] playlists = await asyncio.gather(*tasks) for item in playlists: if not item: continue item = item[0] item["id"] = item["playlist"]["amazon_playlist_id"], item["playlist"]["playlist_id"].replace("amazon_", "") result.append(item) return result