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:
Katie Pratt 2019-11-03 17:39:08 -05:00
parent 386a0d7d12
commit 70f9ef6a5e
4 changed files with 15 additions and 16 deletions

View File

@ -409,11 +409,6 @@ Alternatively, refer to the [developer instructions](#developer-instructions) fo
webm and mkv videos) webm and mkv videos)
--embed-thumbnail Embed thumbnail in the audio as cover art --embed-thumbnail Embed thumbnail in the audio as cover art
--add-metadata Write metadata to the video file --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 / --metadata-from-title FORMAT Parse additional metadata like song title /
artist from the video title. The format artist from the video title. The format
syntax is the same as --output. Regular syntax is the same as --output. Regular

View File

@ -276,12 +276,11 @@ def _real_main(argv=None):
# source and target containers. From this point the container won't change, # source and target containers. From this point the container won't change,
# so metadata can be added here. # so metadata can be added here.
if opts.addmetadata: if opts.addmetadata:
if hasattr(opts, 'preferredinfo'): if hasattr(opts, 'preferredmetadatatoembed'):
with open(opts.preferredinfo) as read_file: preferredmetadatatoembed = json.loads(opts.preferredmetadatatoembed)
preferredinfo = json.load(read_file)
postprocessors.append({ postprocessors.append({
'key': 'FFmpegMetadata', 'key': 'FFmpegMetadata',
'preferredinfo': preferredinfo, 'preferredmetadatatoembed': preferredmetadatatoembed,
}) })
else: else:
postprocessors.append({ postprocessors.append({

View File

@ -819,9 +819,12 @@ def parseOpts(overrideArguments=None):
action='store_true', dest='addmetadata', default=False, action='store_true', dest='addmetadata', default=False,
help='Write metadata to the video file') help='Write metadata to the video file')
postproc.add_option( postproc.add_option(
'--preferred-info', '--preferred-metadata-to-embed',
dest='preferredinfo', metavar='FILE', dest='preferredmetadatatoembed', metavar='JSON', type=str,
help='Override metadata on the outputted file') help='Override metadata on the outputted file')
postproc.add_option(
'--preferred-metadata-json'
)
postproc.add_option( postproc.add_option(
'--metadata-from-title', '--metadata-from-title',
metavar='FORMAT', dest='metafromtitle', metavar='FORMAT', dest='metafromtitle',

View File

@ -431,11 +431,13 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor):
class FFmpegMetadataPP(FFmpegPostProcessor): class FFmpegMetadataPP(FFmpegPostProcessor):
def __init__(self, downloader=None, preferredinfo=None): def __init__(self, downloader=None, preferredmetadatatoembed=None):
super(FFmpegMetadataPP, self).__init__(downloader) super(FFmpegMetadataPP, self).__init__(downloader)
if not (isinstance(preferredinfo, dict) or preferredinfo == None): assert (
raise TypeError('preferredinfo must be a dictionary, if provided') (isinstance(preferredmetadatatoembed, dict) or
self._preferredinfo = preferredinfo preferredmetadatatoembed != None)
), 'preferredmetadatatoembed must be a dictionary, if provided'
self._preferredmetadatatoembed = preferredmetadatatoembed
def run(self, info): def run(self, info):
metadata = {} metadata = {}
@ -456,7 +458,7 @@ class FFmpegMetadataPP(FFmpegPostProcessor):
meta_list = (meta_list,) meta_list = (meta_list,)
if not isinstance(info_list, (list, tuple)): if not isinstance(info_list, (list, tuple)):
info_list = (info_list,) 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: if preferred_key is None:
add_info(meta_list, info_list, metadata, info) add_info(meta_list, info_list, metadata, info)