fix: subtitle embedding and MKV title not applied
Docker / docker (push) Successful in 1m36s

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:
dev
2026-05-15 17:19:14 +02:00
parent 5701a7d60a
commit 32f2d412ed
+7 -4
View File
@@ -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: