app.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
from urllib.parse import urlparse, parse_qs def extract_youtube_video_id(url): # Parse the URL parsed_url = urlparse(url) # Handle standard YouTube URL if parsed_url.hostname in ["www.youtube.com", "youtube.com"]: query = parse_qs(parsed_url.query) return query.get("v", [None])[0] # Handle youtu.be short URL if parsed_url.hostname == "youtu.be": return parsed_url.path.lstrip("/") # Handle embed URLs if parsed_url.path.startswith("/embed/"): return parsed_url.path.split("/embed/")[1] return None # Example usage urls = [ "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://youtu.be/dQw4w9WgXcQ", "https://www.youtube.com/embed/dQw4w9WgXcQ", "https://youtube.com/watch?v=dQw4w9WgXcQ&t=42s" ] for url in urls: print(f"{url} => Video ID: {extract_youtube_video_id(url)}") |