From 94b0e62f0235a4e1070eb148ca6f4be1b97b4fbf Mon Sep 17 00:00:00 2001 From: Leonardo Cavaletti Date: Sat, 18 Dec 2021 19:15:26 +0000 Subject: [PATCH 1/2] Fixed cover art being dropped on file split --- album_splitter/split_file.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/album_splitter/split_file.py b/album_splitter/split_file.py index 582349f..85f6f9a 100644 --- a/album_splitter/split_file.py +++ b/album_splitter/split_file.py @@ -16,18 +16,15 @@ def split_file(input_file: Path, tracks: List[Track], destination: Path, output_ for i, track in enumerate(tracks): start_timestamp = track.start_timestamp end_timestamp = file_duration if i == len(tracks) - 1 else tracks[i + 1].start_timestamp - outputs[ - destination / (f"{track.title}.{output_format}") - ] = f"-vn -c copy -ss {start_timestamp} -to {end_timestamp}" - split_command = ffmpy.FFmpeg( - inputs={ - str(input_file): "-y -hide_banner -loglevel error -stats"}, - outputs={ str(path): v for path, v in outputs.items() - } - ) - try: - split_command.run() - except: - raise Exception("Something went wrong with the splitting procedure. See the error above.") from None + output_file = destination / (f"{track.title}.{output_format}") + + split_command = ffmpy.FFmpeg( + inputs={str(input_file): f"-y -hide_banner -loglevel error -stats -ss {start_timestamp} -t {end_timestamp}"}, + outputs={ str(output_file): "-c copy" } + ) + try: + split_command.run() + except: + raise Exception("Something went wrong with the splitting procedure. See the error above.") from None return list(outputs.keys()) From c8a1bc5b4e65e1908da2dd90a63ba266bf6d214d Mon Sep 17 00:00:00 2001 From: Leonardo Cavaletti Date: Sat, 18 Dec 2021 22:46:47 +0000 Subject: [PATCH 2/2] Fixed outputs list not being returned from file split function --- album_splitter/split_file.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/album_splitter/split_file.py b/album_splitter/split_file.py index 85f6f9a..e71c6d8 100644 --- a/album_splitter/split_file.py +++ b/album_splitter/split_file.py @@ -12,11 +12,12 @@ def split_file(input_file: Path, tracks: List[Track], destination: Path, output_ ) stdout, _ = duration_command.run(stdout=subprocess.PIPE) file_duration = float(stdout.decode().strip()) - outputs: Dict[Path, str] = {} + outputs: List[str] = [] for i, track in enumerate(tracks): start_timestamp = track.start_timestamp end_timestamp = file_duration if i == len(tracks) - 1 else tracks[i + 1].start_timestamp output_file = destination / (f"{track.title}.{output_format}") + outputs.append(output_file) split_command = ffmpy.FFmpeg( inputs={str(input_file): f"-y -hide_banner -loglevel error -stats -ss {start_timestamp} -t {end_timestamp}"}, @@ -27,4 +28,4 @@ def split_file(input_file: Path, tracks: List[Track], destination: Path, output_ except: raise Exception("Something went wrong with the splitting procedure. See the error above.") from None - return list(outputs.keys()) + return outputs