[ytdl} fix dfe4f00c for legacy yt-dlp

This commit is contained in:
Mike Fährmann
2023-01-04 21:42:22 +01:00
parent f29ba089ff
commit fa144f38ed
2 changed files with 32 additions and 17 deletions

View File

@@ -199,18 +199,27 @@ def parse_command_line(module, argv):
action += args
yield action
if opts.metafromtitle is not None:
if "pre_process" not in opts.parse_metadata:
opts.parse_metadata["pre_process"] = []
opts.parse_metadata["pre_process"].append(
"title:%s" % opts.metafromtitle)
opts.metafromtitle = None
parse_metadata = getattr(opts, "parse_metadata", None)
if isinstance(parse_metadata, dict):
if opts.metafromtitle is not None:
if "pre_process" not in parse_metadata:
parse_metadata["pre_process"] = []
parse_metadata["pre_process"].append(
"title:%s" % opts.metafromtitle)
opts.parse_metadata = {
k: list(itertools.chain.from_iterable(map(
metadataparser_actions, v)))
for k, v in parse_metadata.items()
}
else:
if parse_metadata is None:
parse_metadata = []
if opts.metafromtitle is not None:
parse_metadata.append("title:%s" % opts.metafromtitle)
opts.parse_metadata = list(itertools.chain.from_iterable(map(
metadataparser_actions, parse_metadata)))
opts.parse_metadata = {
k: list(itertools.chain.from_iterable(map(
metadataparser_actions, v)))
for k, v in opts.parse_metadata.items()
}
opts.metafromtitle = None
else:
opts.parse_metadata = ()