import re def extract_video_id(url: str) -> str: patterns = [ r"v=([a-zA-Z0-9_-]{11})", r"youtu\.be/([a-zA-Z0-9_-]{11})", r"shorts/([a-zA-Z0-9_-]{11})" ] for p in patterns: m = re.search(p, url) if m: return m.group(1) raise ValueError("Invalid YouTube URL")