import secrets import string from urllib.parse import urlparse _ID_CHARS = string.ascii_letters + string.digits # base-62 def generate_id(prefix: str, length: int = 21) -> str: random_part = "".join(secrets.choice(_ID_CHARS) for _ in range(length)) return f"{prefix}_{random_part}" _VIDEO_EXTENSIONS = {".mp4", ".avi", ".mov", ".mkv", ".webm", ".flv", ".wmv", ".m4v"} def is_video_url(url: str) -> bool: path = urlparse(url).path.lower() return any(path.endswith(ext) for ext in _VIDEO_EXTENSIONS)