from functools import reduce def add_to_arr(arr: list[str], items: list[str]) -> list[str]: for item in items: arr.append(item) # does not include copy transcode_levels = {} transcode_levels["mp3"] = [] # mp3 v0 -> v9 add_to_arr(transcode_levels["mp3"], [ f"mp3-v{quality}" for quality in range(0, 10) ]) # mp3 bitrates mp3_bitrates = [8, 16, 24, 32, 40, 48, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320] add_to_arr(transcode_levels["mp3"], [ f"mp3-{bitrate}k" for bitrate in mp3_bitrates ]) transcode_levels["opus"] = [] opus_bitrates = ["16", "24", "32", "64", "96", "128", "256"] add_to_arr(transcode_levels["opus"], [ f"opus-{bitrate}k" for bitrate in opus_bitrates ]) transcode_levels["vorbis"] = [] add_to_arr(transcode_levels["vorbis"], [ f"vorbis-q{quality}" for quality in range(-2, 11) ]) transcode_levels["speex"] = [] add_to_arr(transcode_levels["speex"], [ f"speex-q{quality}" for quality in range(0, 11) ]) transcode_levels["g726"] = [] g726_bitrates = ["16", "24", "32", "40"] add_to_arr(transcode_levels["g726"], [ f"g726-{bitrate}k" for bitrate in g726_bitrates ]) # Extra Default Mappings preset_transcode_levels = {} mp3_presets = { "mp3-low": "mp3-v4", "mp3-medium": "mp3-v2", "mp3-high": "mp3-v0", } preset_transcode_levels = preset_transcode_levels | mp3_presets add_to_arr(transcode_levels["opus"], mp3_presets.keys()) opus_presets = { "opus-low": "opus-32k", "opus-medium": "opus-64k", "opus-high": "opus-96k", "opus-higher": "opus-128k", "opus-extreme": "opus-256k" } preset_transcode_levels = preset_transcode_levels | opus_presets add_to_arr(transcode_levels["opus"], opus_presets.keys()) transcode_levels["mp3"].sort() transcode_levels["opus"].sort() transcode_levels["vorbis"].sort() transcode_levels["speex"].sort() transcode_levels["g726"].sort() def print_transcode_levels(): for category in transcode_levels.keys(): print(f"Category {category}:") for level in transcode_levels[category]: print(f"- {level}") transcode_levels_list = reduce(lambda a, b: a+b, transcode_levels.values())