youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 45598f15788568a8432da19544e5bdc390032aca
parent 130239460370870c33f259ed1549878388996d3f
Author: Philipp Hagemeister <phihag@phihag.de>
Date:   Sat, 10 Jan 2015 01:59:14 +0100

Merge remote-tracking branch 'aft90/merge-output-format'

Conflicts:
	youtube_dl/YoutubeDL.py

Diffstat:
Myoutube_dl/YoutubeDL.py | 6++++++
Myoutube_dl/__init__.py | 4++++
Myoutube_dl/options.py | 6++++++
3 files changed, 16 insertions(+), 0 deletions(-)

diff --git 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 @@ -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 @@ -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(