From ad0b56002cbf11d3efd07bbf9374684ec8a8968e Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Tue, 28 Feb 2023 13:22:36 -0800 Subject: [PATCH] fix chapters --- src/ytdl_sub/utils/ffmpeg.py | 38 ++++++++++++++++-------------- src/ytdl_sub/utils/file_handler.py | 2 +- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/ytdl_sub/utils/ffmpeg.py b/src/ytdl_sub/utils/ffmpeg.py index 605fb80a..bbb4a8a4 100644 --- a/src/ytdl_sub/utils/ffmpeg.py +++ b/src/ytdl_sub/utils/ffmpeg.py @@ -1,3 +1,4 @@ +import os import subprocess import sys import tempfile @@ -135,27 +136,28 @@ def set_ffmpeg_metadata_chapters( lines += _create_metadata_chapters(chapters=chapters, file_duration_sec=file_duration_sec) tmp_file_path = FFMPEG.tmp_file_path(relative_file_path=file_path) - with tempfile.NamedTemporaryFile(mode="w", suffix=".txt", encoding="utf-8") as metadata_file: + with tempfile.NamedTemporaryFile(mode="w", suffix=".txt", encoding="utf-8", delete=False) as metadata_file: metadata_file.write("\n".join(lines)) metadata_file.flush() - FFMPEG.run( - [ - "-i", - file_path, - "-i", - metadata_file.name, - "-map", - "0", - "-map_chapters", - "1", - "-bitexact", # for reproducibility - "-codec", - "copy", - tmp_file_path, - ] - ) - FileHandler.move(tmp_file_path, file_path) + FFMPEG.run( + [ + "-i", + file_path, + "-i", + metadata_file.name, + "-map", + "0", + "-map_chapters", + "1", + "-bitexact", # for reproducibility + "-codec", + "copy", + tmp_file_path, + ] + ) + FileHandler.move(tmp_file_path, file_path) + os.remove(metadata_file.name) def add_ffmpeg_metadata_key_values(file_path: str, key_values: Dict[str, str]) -> None: diff --git a/src/ytdl_sub/utils/file_handler.py b/src/ytdl_sub/utils/file_handler.py index d7ec9388..3f4d7c67 100644 --- a/src/ytdl_sub/utils/file_handler.py +++ b/src/ytdl_sub/utils/file_handler.py @@ -320,7 +320,7 @@ class FileHandlerTransactionLog: ) if self.is_empty: - lines.append(f"No new, modified, or removed files in '{output_directory}'") + lines.append(f"No new, modified, or removed files in '{self.format_path_str(output_directory)}'") return "\n".join(lines)