diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2015-01-10 01:59:14 +0100 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2015-01-10 01:59:14 +0100 | 
| commit | 45598f15788568a8432da19544e5bdc390032aca (patch) | |
| tree | e0c41e910eb267c6ef254f8d47cc36f32d5663ac | |
| parent | 130239460370870c33f259ed1549878388996d3f (diff) | |
| parent | d02115f83727ae0d4f394073235dc97086c64266 (diff) | |
Merge remote-tracking branch 'aft90/merge-output-format'
Conflicts:
	youtube_dl/YoutubeDL.py
| -rwxr-xr-x | youtube_dl/YoutubeDL.py | 6 | ||||
| -rw-r--r-- | youtube_dl/__init__.py | 4 | ||||
| -rw-r--r-- | youtube_dl/options.py | 6 | 
3 files changed, 16 insertions, 0 deletions
diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index e34b36016..61675d8ec 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -203,6 +203,7 @@ class YoutubeDL(object):                         Progress hooks are guaranteed to be called at least once                         (with status "finished") if the download is successful. +    merge_output_format: Extension to use when merging formats.      The following parameters are not used by YoutubeDL itself, they are used by @@ -909,6 +910,10 @@ class YoutubeDL(object):                                                    'contain the video, try using '                                                    '"-f %s+%s"' % (format_2, format_1))                                  return +                            output_ext = ( +                                formats_info[0]['ext'] +                                if self.params.get('merge_output_format') is None +                                else self.params['merge_output_format'])                              selected_format = {                                  'requested_formats': formats_info,                                  'format': rf, @@ -921,6 +926,7 @@ class YoutubeDL(object):                                  'vbr': formats_info[0].get('vbr'),                                  'acodec': formats_info[1].get('acodec'),                                  'abr': formats_info[1].get('abr'), +                                'ext': output_ext,                              }                          else:                              selected_format = None diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 844992d8e..b4ae35a2b 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -166,6 +166,9 @@ def _real_main(argv=None):      if opts.recodevideo is not None:          if opts.recodevideo not in ['mp4', 'flv', 'webm', 'ogg', 'mkv']:              parser.error('invalid video recode format specified') +    if opts.merge_output_format is not None and not '+' in opts.format: #if merge format output is used on videos that don't require merging, ignore +        opts.merge_output_format = None +              if opts.date is not None:          date = DateRange.day(opts.date)      else: @@ -323,6 +326,7 @@ def _real_main(argv=None):          'encoding': opts.encoding,          'exec_cmd': opts.exec_cmd,          'extract_flat': opts.extract_flat, +        'merge_output_format': opts.merge_output_format,          'postprocessors': postprocessors,      } diff --git a/youtube_dl/options.py b/youtube_dl/options.py index feaca03a3..0ed5e3db4 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -302,6 +302,12 @@ def parseOpts(overrideArguments=None):          '--youtube-skip-dash-manifest',          action='store_false', dest='youtube_include_dash_manifest',          help='Do not download the DASH manifest on YouTube videos') +    video_format.add_option( +    	'--merge-output-format', +        action='store', dest='merge_output_format', metavar='FORMAT' ,default=None, +        help=( +            'If a merge is required (e.g. bestvideo+bestaudio), output to given container format (e.g. mkv, mp4, ogg, webm, flv) ' +            'Ignored if no merge is required'))      subtitles = optparse.OptionGroup(parser, 'Subtitle Options')      subtitles.add_option(  | 
