from typing import Optional def format_image_url_with_size(url_mask: str, image_size: int) -> Optional[str]: """Format image url mask of track/playlist with particular size.""" return url_mask and url_mask.format(w=image_size, h=image_size) def get_image_url(data: dict, image_size: int = None) -> Optional[str]: """Get image url from track/playlist data for particular size if specified. :param data: track/playlist data dictionary :param image_size: desirable image size :return: image url mask to substitute particular size or common. """ url_mask = data.get("attributes", {}).get("artwork", {}).get("url") if image_size: return format_image_url_with_size(url_mask, image_size) return url_mask def get_isrc(data: dict) -> str: """Get isrc from apple playlist/track data.""" return data.get("attributes", {}).get("isrc")