postprocessor_args keys must be lowercase — cli_configuration_args does key.lower() for lookup but the dict is case-sensitive, so "ffmpeg_o" and "EmbedSubtitle+ffmpeg_o" never matched. Use "merger+ffmpeg_o" for title during merge, "embedsubtitle+ffmpeg_o" for title+disposition during embed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+7
-4
@@ -253,13 +253,14 @@ class DownloadManager:
|
||||
finished_once[0] = True
|
||||
self._set(dl_id, state="processing", progress=100)
|
||||
|
||||
ffmpeg_out = ["-metadata", f"title={mkv_title}"]
|
||||
title_meta = ["-metadata", f"title={mkv_title}"]
|
||||
|
||||
ydl_opts = {
|
||||
"outtmpl": f"{out_dir}/%(title)s.%(ext)s",
|
||||
"format": "bestvideo[vcodec^=avc1]+bestaudio/bestvideo+bestaudio/best",
|
||||
"merge_output_format": "mkv",
|
||||
"postprocessor_args": {"ffmpeg_o": ffmpeg_out},
|
||||
# "merger+ffmpeg_o" sets title during video+audio merge
|
||||
"postprocessor_args": {"merger+ffmpeg_o": title_meta},
|
||||
"progress_hooks": [hook],
|
||||
"quiet": True,
|
||||
"no_warnings": True,
|
||||
@@ -270,8 +271,10 @@ class DownloadManager:
|
||||
"subtitleslangs": ["fr"],
|
||||
"embedsubtitles": True,
|
||||
})
|
||||
# Append disposition after title metadata
|
||||
ffmpeg_out += ["-disposition:s:0", "default"]
|
||||
# "embedsubtitle+ffmpeg_o" sets title + default disposition during subtitle embed
|
||||
ydl_opts["postprocessor_args"]["embedsubtitle+ffmpeg_o"] = (
|
||||
title_meta + ["-disposition:s:0", "default"]
|
||||
)
|
||||
|
||||
try:
|
||||
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
||||
|
||||
Reference in New Issue
Block a user