File size: 329 Bytes
c7ef355 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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") |