musik/game/utils.py

35 lines
815 B
Python

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"]