FocusTube / youtube_scraper.py
naveenus's picture
Create youtube_scraper.py
86d308d verified
raw
history blame
731 Bytes
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","")}