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
This commit is contained in:
parent
386a0d7d12
commit
70f9ef6a5e
@ -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
|
||||
|
@ -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({
|
||||
|
@ -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',
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user