diff --git a/album_splitter/split_file.py b/album_splitter/split_file.py index 582349f..e71c6d8 100644 --- a/album_splitter/split_file.py +++ b/album_splitter/split_file.py @@ -12,22 +12,20 @@ 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 - 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}") + 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}"}, + 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()) + return outputs