from urllib.parse import parse_qs, urlparse import requests from django.conf import settings def parse_musik(raw): if "youtube.com" in raw: return parse_qs(urlparse(raw).query).get("v", [None])[0] elif "youtu.be" in raw: return urlparse(raw).path[1:] return raw def get_yt_title(yt_id): if not yt_id: return None req = requests.get( "https://www.googleapis.com/youtube/v3/videos", params={ "part": "snippet", "id": yt_id, "key": settings.YOUTUBE_API_KEY, }, ) if req.status_code != 200: raise Exception(f"Error fetching YouTube video: {req.status_code} {req.text}") data = req.json() if not data.get("items"): return None return data["items"][0]["snippet"]["title"]