"""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',!@#№$;:%^&?*(){}[]\/<>+=~`\' '
