import os, requests from urllib.parse import urlparse, parse_qs API_KEY = os.getenv("YOUTUBE_API_KEY") def extract_video_id(url: str) -> str: qs = parse_qs(urlparse(url).query) return qs.get("v", [urlparse(url).path.split("/")[-1]])[0] def get_youtube_info(url: str): vid = extract_video_id(url) resp = requests.get( "https://www.googleapis.com/youtube/v3/videos", params={"part":"snippet", "id":vid, "key":API_KEY} ) resp.raise_for_status() items = resp.json().get("items", []) if not items: return {"videoId":vid,"title":"N/A","description":"N/A"} sn = items[0]["snippet"] return {"videoId":vid,"title":sn.get("title",""),"description":sn.get("description","")}