"""Global constants and default values.""" # Mapping from user‑friendly format names to FFmpeg format identifiers, # file extensions, and whether the container is audio‑only. FORMAT_INFO = { 'mp3': {'ffmpeg': 'mp3', 'ext': '.mp3', 'audio_only': True}, 'm4a': {'ffmpeg': 'mp4', 'ext': '.m4a', 'audio_only': True}, 'mp4': {'ffmpeg': 'mp4', 'ext': '.mp4', 'audio_only': False}, 'mkv': {'ffmpeg': 'matroska', 'ext': '.mkv', 'audio_only': False}, 'matroska': {'ffmpeg': 'matroska', 'ext': '.mkv', 'audio_only': False}, 'ogg': {'ffmpeg': 'ogg', 'ext': '.ogg', 'audio_only': True}, 'opus': {'ffmpeg': 'ogg', 'ext': '.opus', 'audio_only': True}, 'flac': {'ffmpeg': 'flac', 'ext': '.flac', 'audio_only': True}, 'wav': {'ffmpeg': 'wav', 'ext': '.wav', 'audio_only': True}, 'aac': {'ffmpeg': 'adts', 'ext': '.aac', 'audio_only': True}, } # Default characters to replace when --replace-bad-chars is enabled. # Includes common punctuation, single quote, and a trailing space. DEFAULT_BAD_CHARS = r',!@#№$;:%^&?*(){}[]\/<>+=~`\' '