diff options
| -rwxr-xr-x | youtube_dl/YoutubeDL.py | 43 | ||||
| -rw-r--r-- | youtube_dl/options.py | 2 | 
2 files changed, 23 insertions, 22 deletions
| diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index eaba40bf2..a1713dc5a 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -809,28 +809,29 @@ class YoutubeDL(object):          if req_format in ('-1', 'all'):              formats_to_download = formats          else: -            # We can accept formats requested in the format: 34/5/best, we pick -            # the first that is available, starting from left -            req_formats = req_format.split('/') -            for rf in req_formats: -                if re.match(r'.+?\+.+?', rf) is not None: -                    # Two formats have been requested like '137+139' -                    format_1, format_2 = rf.split('+') -                    formats_info = (self.select_format(format_1, formats), -                        self.select_format(format_2, formats)) -                    if all(formats_info): -                        selected_format = { -                            'requested_formats': formats_info, -                            'format': rf, -                            'ext': formats_info[0]['ext'], -                        } +            for rfstr in req_format.split(','): +                # We can accept formats requested in the format: 34/5/best, we pick +                # the first that is available, starting from left +                req_formats = rfstr.split('/') +                for rf in req_formats: +                    if re.match(r'.+?\+.+?', rf) is not None: +                        # Two formats have been requested like '137+139' +                        format_1, format_2 = rf.split('+') +                        formats_info = (self.select_format(format_1, formats), +                            self.select_format(format_2, formats)) +                        if all(formats_info): +                            selected_format = { +                                'requested_formats': formats_info, +                                'format': rf, +                                'ext': formats_info[0]['ext'], +                            } +                        else: +                            selected_format = None                      else: -                        selected_format = None -                else: -                    selected_format = self.select_format(rf, formats) -                if selected_format is not None: -                    formats_to_download = [selected_format] -                    break +                        selected_format = self.select_format(rf, formats) +                    if selected_format is not None: +                        formats_to_download.append(selected_format) +                        break          if not formats_to_download:              raise ExtractorError('requested format not available',                                   expected=True) diff --git a/youtube_dl/options.py b/youtube_dl/options.py index 7df20ae61..44dcb1e34 100644 --- a/youtube_dl/options.py +++ b/youtube_dl/options.py @@ -218,7 +218,7 @@ def parseOpts(overrideArguments=None):      video_format.add_option('-f', '--format',              action='store', dest='format', metavar='FORMAT', default=None, -            help='video format code, specify the order of preference using slashes: -f 22/17/18 .  -f mp4 , -f m4a and  -f flv  are also supported. You can also use the special names "best", "bestvideo", "bestaudio", "worst", "worstvideo" and "worstaudio". By default, youtube-dl will pick the best quality.') +            help='video format code, specify the order of preference using slashes: -f 22/17/18 .  -f mp4 , -f m4a and  -f flv  are also supported. You can also use the special names "best", "bestvideo", "bestaudio", "worst", "worstvideo" and "worstaudio". By default, youtube-dl will pick the best quality. Use commas to download multiple audio formats, such as  -f  136/137/mp4/bestvideo,140/m4a/bestaudio')      video_format.add_option('--all-formats',              action='store_const', dest='format', help='download all available video formats', const='all')      video_format.add_option('--prefer-free-formats', | 
