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
|
finished_once[0] = True
|
||||||
self._set(dl_id, state="processing", progress=100)
|
self._set(dl_id, state="processing", progress=100)
|
||||||
|
|
||||||
ffmpeg_out = ["-metadata", f"title={mkv_title}"]
|
title_meta = ["-metadata", f"title={mkv_title}"]
|
||||||
|
|
||||||
ydl_opts = {
|
ydl_opts = {
|
||||||
"outtmpl": f"{out_dir}/%(title)s.%(ext)s",
|
"outtmpl": f"{out_dir}/%(title)s.%(ext)s",
|
||||||
"format": "bestvideo[vcodec^=avc1]+bestaudio/bestvideo+bestaudio/best",
|
"format": "bestvideo[vcodec^=avc1]+bestaudio/bestvideo+bestaudio/best",
|
||||||
"merge_output_format": "mkv",
|
"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],
|
"progress_hooks": [hook],
|
||||||
"quiet": True,
|
"quiet": True,
|
||||||
"no_warnings": True,
|
"no_warnings": True,
|
||||||
@@ -270,8 +271,10 @@ class DownloadManager:
|
|||||||
"subtitleslangs": ["fr"],
|
"subtitleslangs": ["fr"],
|
||||||
"embedsubtitles": True,
|
"embedsubtitles": True,
|
||||||
})
|
})
|
||||||
# Append disposition after title metadata
|
# "embedsubtitle+ffmpeg_o" sets title + default disposition during subtitle embed
|
||||||
ffmpeg_out += ["-disposition:s:0", "default"]
|
ydl_opts["postprocessor_args"]["embedsubtitle+ffmpeg_o"] = (
|
||||||
|
title_meta + ["-disposition:s:0", "default"]
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
||||||
|
|||||||
Reference in New Issue
Block a user