File size: 731 Bytes
86d308d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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","")}