From ab4ee78529578a63bbb12b19bb0574f116ac280f Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Wed, 21 Aug 2019 21:25:17 -0400 Subject: [PATCH 01/13] adding the preferredinfo attribute to override metadata --- youtube_dl/postprocessor/ffmpeg.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 70416c25e..dbfd553a3 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -431,9 +431,23 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): class FFmpegMetadataPP(FFmpegPostProcessor): + + def __init__(self, downloader=None, preferredinfo=None): + super(FFmpegMetadataPP, self).__init__(downloader) + self._preferredinfo = preferredinfo if isinstance(preferredinfo, dict) else None + def run(self, info): metadata = {} + def add_info(meta_list, info_list, metadata, info_obj): + if info_obj is not None: + for info_f in info_list: + if info_obj.get(info_f) is not None: + for meta_f in meta_list: + metadata[meta_f] = info_obj[info_f] + return True + return False + def add(meta_list, info_list=None): if not info_list: info_list = meta_list @@ -441,11 +455,8 @@ class FFmpegMetadataPP(FFmpegPostProcessor): meta_list = (meta_list,) if not isinstance(info_list, (list, tuple)): info_list = (info_list,) - for info_f in info_list: - if info.get(info_f) is not None: - for meta_f in meta_list: - metadata[meta_f] = info[info_f] - break + if not add_info(meta_list, info_list, metadata, self._preferredinfo): + add_info(meta_list, info_list, metadata, info) add('title', ('track', 'title')) add('date', 'upload_date') From 82024c2db461d7ab3ffbf716fe46f1c1e6c382f3 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Wed, 21 Aug 2019 22:35:46 -0400 Subject: [PATCH 02/13] updating info object to reflect preferredinfo, since it is being returned by the function --- youtube_dl/postprocessor/ffmpeg.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index dbfd553a3..f9af8254a 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -445,8 +445,8 @@ class FFmpegMetadataPP(FFmpegPostProcessor): if info_obj.get(info_f) is not None: for meta_f in meta_list: metadata[meta_f] = info_obj[info_f] - return True - return False + return info_f + return None def add(meta_list, info_list=None): if not info_list: @@ -455,8 +455,12 @@ class FFmpegMetadataPP(FFmpegPostProcessor): meta_list = (meta_list,) if not isinstance(info_list, (list, tuple)): info_list = (info_list,) - if not add_info(meta_list, info_list, metadata, self._preferredinfo): + preferred_key = add_info(meta_list, info_list, metadata, self._preferredinfo) + if preferred_key is None: add_info(meta_list, info_list, metadata, info) + else: + for info_f in info_list: + info[info_f] = self._preferredinfo[preferred_key] add('title', ('track', 'title')) add('date', 'upload_date') From 67183021b6d3e1c7b497cc4a9e2189a89521f380 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Sun, 6 Oct 2019 18:02:23 -0400 Subject: [PATCH 03/13] removing line 434 in response to comment --- youtube_dl/postprocessor/ffmpeg.py | 1 - 1 file changed, 1 deletion(-) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index f9af8254a..b21dafba9 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -431,7 +431,6 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): class FFmpegMetadataPP(FFmpegPostProcessor): - def __init__(self, downloader=None, preferredinfo=None): super(FFmpegMetadataPP, self).__init__(downloader) self._preferredinfo = preferredinfo if isinstance(preferredinfo, dict) else None From b71e15e5b6cf696994282afa1079473bd84d901f Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Sun, 6 Oct 2019 18:13:39 -0400 Subject: [PATCH 04/13] asserting input type and raising TypeError if not valid --- youtube_dl/postprocessor/ffmpeg.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index b21dafba9..c7ebd664f 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -433,7 +433,9 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): class FFmpegMetadataPP(FFmpegPostProcessor): def __init__(self, downloader=None, preferredinfo=None): super(FFmpegMetadataPP, self).__init__(downloader) - self._preferredinfo = preferredinfo if isinstance(preferredinfo, dict) else None + if not (isinstance(preferredinfo, dict) or preferredinfo == None): + raise TypeError('preferredinfo must be a dictionary, if provided') + self._preferredinfo = preferredinfo def run(self, info): metadata = {} From e3a7cd05fb9f3cd93cfdb646ca62c6b65ea1e546 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Sun, 6 Oct 2019 18:16:41 -0400 Subject: [PATCH 05/13] removing info override as it is a dict copy --- youtube_dl/postprocessor/ffmpeg.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index c7ebd664f..e2722c8ef 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -459,9 +459,6 @@ class FFmpegMetadataPP(FFmpegPostProcessor): preferred_key = add_info(meta_list, info_list, metadata, self._preferredinfo) if preferred_key is None: add_info(meta_list, info_list, metadata, info) - else: - for info_f in info_list: - info[info_f] = self._preferredinfo[preferred_key] add('title', ('track', 'title')) add('date', 'upload_date') From bc21c48aecb33648341f9ab0c89dce5afa7402c0 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Sun, 6 Oct 2019 18:48:39 -0400 Subject: [PATCH 06/13] adding support for cli --- youtube_dl/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 9a659fc65..1251688b4 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -10,6 +10,7 @@ import io import os import random import sys +import json from .options import ( @@ -275,7 +276,11 @@ def _real_main(argv=None): # source and target containers. From this point the container won't change, # so metadata can be added here. if opts.addmetadata: - postprocessors.append({'key': 'FFmpegMetadata'}) + postprocessors.append({ + 'key': 'FFmpegMetadata', + 'preferredinfo': json.load(opts.preferredinfo), + }) + if opts.convertsubtitles: postprocessors.append({ 'key': 'FFmpegSubtitlesConvertor', From b6884fbd2f0187e090563bddfdccb53f2b4d93b0 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Tue, 8 Oct 2019 23:26:49 -0400 Subject: [PATCH 07/13] updating to support cli functionality --- youtube_dl/__init__.py | 14 +++++++++++--- youtube_dl/options.py | 4 ++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 1251688b4..03066181a 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -276,10 +276,18 @@ def _real_main(argv=None): # source and target containers. From this point the container won't change, # so metadata can be added here. if opts.addmetadata: - postprocessors.append({ - 'key': 'FFmpegMetadata', - 'preferredinfo': json.load(opts.preferredinfo), + if hasattr(opts, 'preferredinfo'): + with open(opts.preferredinfo) as read_file: + preferredinfo = json.load(read_file) + postprocessors.append({ + 'key': 'FFmpegMetadata', + 'preferredinfo': preferredinfo, + }) + else: + postprocessors.append({ + 'key': 'FFmpegMetadata' }) + if opts.convertsubtitles: postprocessors.append({ diff --git a/youtube_dl/options.py b/youtube_dl/options.py index 1ffabc62b..f3335c564 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -818,6 +818,10 @@ def parseOpts(overrideArguments=None): '--add-metadata', action='store_true', dest='addmetadata', default=False, help='Write metadata to the video file') + postproc.add_option( + '--preferred-info', + dest='preferredinfo', metavar='FILE', + help='Override metadata on the outputted file') postproc.add_option( '--metadata-from-title', metavar='FORMAT', dest='metafromtitle', From 6e35267eeb5490af2ba9c710af57d56ffc601696 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Tue, 8 Oct 2019 23:30:23 -0400 Subject: [PATCH 08/13] updating the readme to reflect the additional argument that is accepted with add-metadata --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index c39b13616..3701150d4 100644 --- a/README.md +++ b/README.md @@ -409,6 +409,10 @@ Alternatively, refer to the [developer instructions](#developer-instructions) fo webm and mkv videos) --embed-thumbnail Embed thumbnail in the audio as cover art --add-metadata Write metadata to the video file + --preferred-info References a JSON file that contains the + metadata that will be used preferentially + over the extracted metadata and upated onto + the output file --metadata-from-title FORMAT Parse additional metadata like song title / artist from the video title. The format syntax is the same as --output. Regular From 386a0d7d126237642bc443b4a5c37947699d0b18 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Tue, 8 Oct 2019 23:30:56 -0400 Subject: [PATCH 09/13] updating the readme to reflect the additional argument that is accepted with add-metadata --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3701150d4..5c9d1cbb9 100644 --- a/README.md +++ b/README.md @@ -412,7 +412,8 @@ Alternatively, refer to the [developer instructions](#developer-instructions) fo --preferred-info References a JSON file that contains the metadata that will be used preferentially over the extracted metadata and upated onto - the output file + the output file. This argument will only be + utilized when add-metadata is used --metadata-from-title FORMAT Parse additional metadata like song title / artist from the video title. The format syntax is the same as --output. Regular From 70f9ef6a5edfaa14699eb1d4cd4e0a9d512ee6f8 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Sun, 3 Nov 2019 17:39:08 -0500 Subject: [PATCH 10/13] reverting README, updating name of input to reflect functionality, removing Exception and replacing with assert, updating the CLI to accept a JSON string as an argument instead of file --- README.md | 5 ----- youtube_dl/__init__.py | 7 +++---- youtube_dl/options.py | 7 +++++-- youtube_dl/postprocessor/ffmpeg.py | 12 +++++++----- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 5c9d1cbb9..c39b13616 100644 --- a/README.md +++ b/README.md @@ -409,11 +409,6 @@ Alternatively, refer to the [developer instructions](#developer-instructions) fo webm and mkv videos) --embed-thumbnail Embed thumbnail in the audio as cover art --add-metadata Write metadata to the video file - --preferred-info References a JSON file that contains the - metadata that will be used preferentially - over the extracted metadata and upated onto - the output file. This argument will only be - utilized when add-metadata is used --metadata-from-title FORMAT Parse additional metadata like song title / artist from the video title. The format syntax is the same as --output. Regular diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 03066181a..94d19f51b 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -276,12 +276,11 @@ def _real_main(argv=None): # source and target containers. From this point the container won't change, # so metadata can be added here. if opts.addmetadata: - if hasattr(opts, 'preferredinfo'): - with open(opts.preferredinfo) as read_file: - preferredinfo = json.load(read_file) + if hasattr(opts, 'preferredmetadatatoembed'): + preferredmetadatatoembed = json.loads(opts.preferredmetadatatoembed) postprocessors.append({ 'key': 'FFmpegMetadata', - 'preferredinfo': preferredinfo, + 'preferredmetadatatoembed': preferredmetadatatoembed, }) else: postprocessors.append({ diff --git a/youtube_dl/options.py b/youtube_dl/options.py index f3335c564..83b96d548 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -819,9 +819,12 @@ def parseOpts(overrideArguments=None): action='store_true', dest='addmetadata', default=False, help='Write metadata to the video file') postproc.add_option( - '--preferred-info', - dest='preferredinfo', metavar='FILE', + '--preferred-metadata-to-embed', + dest='preferredmetadatatoembed', metavar='JSON', type=str, help='Override metadata on the outputted file') + postproc.add_option( + '--preferred-metadata-json' + ) postproc.add_option( '--metadata-from-title', metavar='FORMAT', dest='metafromtitle', diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index e2722c8ef..39e6b6cde 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -431,11 +431,13 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): class FFmpegMetadataPP(FFmpegPostProcessor): - def __init__(self, downloader=None, preferredinfo=None): + def __init__(self, downloader=None, preferredmetadatatoembed=None): super(FFmpegMetadataPP, self).__init__(downloader) - if not (isinstance(preferredinfo, dict) or preferredinfo == None): - raise TypeError('preferredinfo must be a dictionary, if provided') - self._preferredinfo = preferredinfo + assert ( + (isinstance(preferredmetadatatoembed, dict) or + preferredmetadatatoembed != None) + ), 'preferredmetadatatoembed must be a dictionary, if provided' + self._preferredmetadatatoembed = preferredmetadatatoembed def run(self, info): metadata = {} @@ -456,7 +458,7 @@ class FFmpegMetadataPP(FFmpegPostProcessor): meta_list = (meta_list,) if not isinstance(info_list, (list, tuple)): info_list = (info_list,) - preferred_key = add_info(meta_list, info_list, metadata, self._preferredinfo) + preferred_key = add_info(meta_list, info_list, metadata, self._preferredmetadatatoembed) if preferred_key is None: add_info(meta_list, info_list, metadata, info) From 809927da6498dd7411ba6e1f6f51c1d4a37e3ce6 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Sun, 3 Nov 2019 19:38:26 -0500 Subject: [PATCH 11/13] adding dynamic auto-generating doc based on metadata elements --- youtube_dl/options.py | 12 +++++++- youtube_dl/postprocessor/ffmpeg.py | 49 +++++++++++++++++++----------- 2 files changed, 43 insertions(+), 18 deletions(-) diff --git a/youtube_dl/options.py b/youtube_dl/options.py index 83b96d548..9b77b49df 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -13,6 +13,9 @@ from .compat import ( compat_kwargs, compat_shlex_split, ) +from .postprocessor.ffmpeg import ( + get_metadata_override_elements +) from .utils import ( preferredencoding, write_string, @@ -821,7 +824,14 @@ def parseOpts(overrideArguments=None): postproc.add_option( '--preferred-metadata-to-embed', dest='preferredmetadatatoembed', metavar='JSON', type=str, - help='Override metadata on the outputted file') + help='Override metadata on the outputted file. Pass in a JSON string ' + 'with one element from the info_list in order to override all ' + 'elements from the meta_list. Note, if multiple values are ' + 'inputted from the info_list, only one will be used. Fields ' + 'curently supported for metadata override are ' + '((info_list) => (meta_list)):\n {}'.format(',\n'.join( + ['({}) => ({})'.format(*[', '.join(a) for a in reversed(x)]) for x in get_metadata_override_elements()] + ))) postproc.add_option( '--preferred-metadata-json' ) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 39e6b6cde..8270990a5 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -47,6 +47,35 @@ ACODECS = { } +METADATA_TO_INFO_LIST_ELEMENTS = [ + ['title', ('track','title')] + , ['date', 'upload_date'] + , [('description','comment'), 'description'] + , ['purl','webpage_url'] + , ['track','track_number'] + , ['artist', ('artist', 'creator', 'uploader', 'uploader_id')] + , ['genre'] + , ['album'] + , ['album_artists'] + , ['disc', 'disc_number'] +] + +def get_meta_and_info_lists(meta_to_info_list): + convert_to_tuple = lambda x: tuple(x) if isinstance(x, (list, tuple)) else tuple([x]) + if any(isinstance(x, (list, tuple)) for x in meta_to_info_list): + meta_list = convert_to_tuple(meta_to_info_list[0]) + info_list = convert_to_tuple(meta_to_info_list[1]) + else: + meta_list = tuple((meta_to_info_list)) + info_list = meta_list + return (meta_list, info_list) + +def get_metadata_override_elements(): + elements = [] + for metadata_to_info_lists in METADATA_TO_INFO_LIST_ELEMENTS: + elements.append(get_meta_and_info_lists(metadata_to_info_lists)) + return elements + class FFmpegPostProcessorError(PostProcessingError): pass @@ -451,27 +480,13 @@ class FFmpegMetadataPP(FFmpegPostProcessor): return info_f return None - def add(meta_list, info_list=None): - if not info_list: - info_list = meta_list - if not isinstance(meta_list, (list, tuple)): - meta_list = (meta_list,) - if not isinstance(info_list, (list, tuple)): - info_list = (info_list,) + def add(meta_list, info_list): preferred_key = add_info(meta_list, info_list, metadata, self._preferredmetadatatoembed) if preferred_key is None: add_info(meta_list, info_list, metadata, info) - add('title', ('track', 'title')) - add('date', 'upload_date') - add(('description', 'comment'), 'description') - add('purl', 'webpage_url') - add('track', 'track_number') - add('artist', ('artist', 'creator', 'uploader', 'uploader_id')) - add('genre') - add('album') - add('album_artist') - add('disc', 'disc_number') + for meta_info_lists in METADATA_TO_INFO_LIST_ELEMENTS: + add(*get_meta_and_info_lists(meta_info_lists)) if not metadata: self._downloader.to_screen('[ffmpeg] There isn\'t any metadata to add') From ff57b2997102f0bf59941794f31ec4ba2f2adc64 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Sun, 3 Nov 2019 20:09:04 -0500 Subject: [PATCH 12/13] correcting for flake8 errors --- youtube_dl/__init__.py | 5 +---- youtube_dl/options.py | 3 +-- youtube_dl/postprocessor/ffmpeg.py | 29 ++++++++++++++++------------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 94d19f51b..2819bf002 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -12,7 +12,6 @@ import random import sys import json - from .options import ( parseOpts, ) @@ -281,13 +280,11 @@ def _real_main(argv=None): postprocessors.append({ 'key': 'FFmpegMetadata', 'preferredmetadatatoembed': preferredmetadatatoembed, - }) + }) else: postprocessors.append({ 'key': 'FFmpegMetadata' }) - - if opts.convertsubtitles: postprocessors.append({ 'key': 'FFmpegSubtitlesConvertor', diff --git a/youtube_dl/options.py b/youtube_dl/options.py index 9b77b49df..1812267ab 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -830,8 +830,7 @@ def parseOpts(overrideArguments=None): 'inputted from the info_list, only one will be used. Fields ' 'curently supported for metadata override are ' '((info_list) => (meta_list)):\n {}'.format(',\n'.join( - ['({}) => ({})'.format(*[', '.join(a) for a in reversed(x)]) for x in get_metadata_override_elements()] - ))) + ['({}) => ({})'.format(*[', '.join(a) for a in reversed(x)]) for x in get_metadata_override_elements()]))) postproc.add_option( '--preferred-metadata-json' ) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 8270990a5..c4fa9bb63 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -48,18 +48,19 @@ ACODECS = { METADATA_TO_INFO_LIST_ELEMENTS = [ - ['title', ('track','title')] - , ['date', 'upload_date'] - , [('description','comment'), 'description'] - , ['purl','webpage_url'] - , ['track','track_number'] - , ['artist', ('artist', 'creator', 'uploader', 'uploader_id')] - , ['genre'] - , ['album'] - , ['album_artists'] - , ['disc', 'disc_number'] + ['title', ('track', 'title')], + ['date', 'upload_date'], + [('description', 'comment'), 'description'], + ['purl', 'webpage_url'], + ['track', 'track_number'], + ['artist', ('artist', 'creator', 'uploader', 'uploader_id')], + ['genre'], + ['album'], + ['album_artists'], + ['disc', 'disc_number'] ] + def get_meta_and_info_lists(meta_to_info_list): convert_to_tuple = lambda x: tuple(x) if isinstance(x, (list, tuple)) else tuple([x]) if any(isinstance(x, (list, tuple)) for x in meta_to_info_list): @@ -70,12 +71,14 @@ def get_meta_and_info_lists(meta_to_info_list): info_list = meta_list return (meta_list, info_list) + def get_metadata_override_elements(): elements = [] for metadata_to_info_lists in METADATA_TO_INFO_LIST_ELEMENTS: elements.append(get_meta_and_info_lists(metadata_to_info_lists)) return elements + class FFmpegPostProcessorError(PostProcessingError): pass @@ -463,9 +466,9 @@ class FFmpegMetadataPP(FFmpegPostProcessor): def __init__(self, downloader=None, preferredmetadatatoembed=None): super(FFmpegMetadataPP, self).__init__(downloader) assert ( - (isinstance(preferredmetadatatoembed, dict) or - preferredmetadatatoembed != None) - ), 'preferredmetadatatoembed must be a dictionary, if provided' + (isinstance(preferredmetadatatoembed, dict) + or preferredmetadatatoembed is not None) + ), 'preferredmetadatatoembed must be a dictionary, if provided' self._preferredmetadatatoembed = preferredmetadatatoembed def run(self, info): From b5bca03c987a511bee4b0244f72f2246764b59a3 Mon Sep 17 00:00:00 2001 From: Katie Pratt Date: Sun, 3 Nov 2019 23:20:40 -0500 Subject: [PATCH 13/13] correcting assert logic --- youtube_dl/postprocessor/ffmpeg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index c4fa9bb63..682183d5a 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -467,7 +467,7 @@ class FFmpegMetadataPP(FFmpegPostProcessor): super(FFmpegMetadataPP, self).__init__(downloader) assert ( (isinstance(preferredmetadatatoembed, dict) - or preferredmetadatatoembed is not None) + or preferredmetadatatoembed is None) ), 'preferredmetadatatoembed must be a dictionary, if provided' self._preferredmetadatatoembed = preferredmetadatatoembed