From 8b67de59a3a9d052bc2d714d2a8f37c84eb53593 Mon Sep 17 00:00:00 2001 From: Maxim Vershinin Date: Wed, 2 Sep 2026 15:41:38 +0500 Subject: [PATCH] Fix #29: validate --container against known containers Before this fix, passing an invalid container name (e.g., 'nonexistent') was passed directly to FFmpeg, which would fail with a cryptic error. Now the container name is validated against CONTAINER_NAMES before any processing begins, and a clear error message listing valid containers is shown. --- audio_splitter/main.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/audio_splitter/main.py b/audio_splitter/main.py index 38e9020..9432db9 100644 --- a/audio_splitter/main.py +++ b/audio_splitter/main.py @@ -32,6 +32,7 @@ from .defaults import ( DEFAULT_SKIP_EXISTING, DEFAULT_DELETE_ORIGINAL, ) +from .constants import CONTAINER_NAMES from .core import split_audio from .tracklist import read_tracklist, parse_format from .ffmpeg import has_cover_or_video, validate_cover_images @@ -196,6 +197,12 @@ def main(): print(f"Error: Tracklist file not found: {args.tracklist_file}") sys.exit(1) + # Validate container if provided + if args.container and args.container not in CONTAINER_NAMES: + print(f"Error: Invalid container '{args.container}'. " + f"Valid containers: {', '.join(sorted(CONTAINER_NAMES))}.") + sys.exit(1) + # Check FFmpeg try: subprocess.run(['ffmpeg', '-version'], capture_output=True, check=True)