[ytdl] update for yt-dlp changes

This commit is contained in:
Mike Fährmann
2023-01-04 13:12:24 +01:00
parent 294108c90a
commit dfe4f00ca2
2 changed files with 20 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2021-2022 Mike Fährmann # Copyright 2021-2023 Mike Fährmann
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as # it under the terms of the GNU General Public License version 2 as
@@ -199,13 +199,18 @@ def parse_command_line(module, argv):
action += args action += args
yield action yield action
if getattr(opts, "parse_metadata", None) is None:
opts.parse_metadata = []
if opts.metafromtitle is not None: if opts.metafromtitle is not None:
opts.parse_metadata.append("title:%s" % opts.metafromtitle) 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 opts.metafromtitle = None
opts.parse_metadata = list(itertools.chain.from_iterable(map(
metadataparser_actions, opts.parse_metadata))) opts.parse_metadata = {
k: list(itertools.chain.from_iterable(map(
metadataparser_actions, v)))
for k, v in opts.parse_metadata.items()
}
else: else:
opts.parse_metadata = () opts.parse_metadata = ()

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2022 Mike Fährmann # Copyright 2022-2023 Mike Fährmann
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as # it under the terms of the GNU General Public License version 2 as
@@ -263,10 +263,14 @@ class Test_CommandlineArguments_YtDlp(Test_CommandlineArguments):
def test_metadata_from_title(self): def test_metadata_from_title(self):
opts = self._(["--metadata-from-title", "%(artist)s - %(title)s"]) opts = self._(["--metadata-from-title", "%(artist)s - %(title)s"])
self.assertEqual(opts["postprocessors"][0], { self.assertEqual(opts["postprocessors"][0], {
"key": "MetadataParser", "key" : "MetadataParser",
"when": "pre_process", "when" : "pre_process",
"actions": [self.module.MetadataFromFieldPP.to_action( "actions": {
"title:%(artist)s - %(title)s")], "pre_process": [
self.module.MetadataFromFieldPP.to_action(
"title:%(artist)s - %(title)s")
],
},
}) })