From 7364aac00caebc59e4c0400d60e1a4af8f471bba Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Thu, 16 Oct 2025 08:01:37 -0700 Subject: [PATCH] [BUGFIX] Embedded null byte ffmpeg fix (#1363) Closes https://github.com/jmbannon/ytdl-sub/issues/710 Fixes the notorious embedded null byte error seen during FFMPEG metadata writes when handling special characters. --- src/ytdl_sub/utils/ffmpeg.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ytdl_sub/utils/ffmpeg.py b/src/ytdl_sub/utils/ffmpeg.py index 6d16814d..52374464 100644 --- a/src/ytdl_sub/utils/ffmpeg.py +++ b/src/ytdl_sub/utils/ffmpeg.py @@ -201,7 +201,11 @@ def add_ffmpeg_metadata_key_values(file_path: str, key_values: Dict[str, str]) - "-dn", # ignore data streams ] for key, value in key_values.items(): - ffmpeg_args.extend(["-metadata", f"{key}={value}"]) + # Some special characters (utf-16 maybe?) have null-byte + # which results in ffmpeg error, remove them outright + value_null_byte_removed = value.replace("\0", "") + ffmpeg_args.extend(["-metadata", f"{key}={value_null_byte_removed}"]) + ffmpeg_args.extend(["-codec", "copy", "-bitexact", tmp_file_path]) FFMPEG.run(ffmpeg_args)