diff options
Diffstat (limited to 'youtube_dl/YoutubeDL.py')
| -rwxr-xr-x | youtube_dl/YoutubeDL.py | 31 | 
1 files changed, 23 insertions, 8 deletions
| diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index f94836d06..367ae3533 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -1064,6 +1064,25 @@ class YoutubeDL(object):              return op(actual_value, comparison_value)          return _filter +    def _default_format_spec(self, info_dict, download=True): +        req_format_list = [] + +        def can_have_partial_formats(): +            if self.params.get('simulate', False): +                return True +            if not download: +                return True +            if self.params.get('outtmpl', DEFAULT_OUTTMPL) == '-': +                return False +            if info_dict.get('is_live'): +                return False +            merger = FFmpegMergerPP(self) +            return merger.available and merger.can_merge() +        if can_have_partial_formats(): +            req_format_list.append('bestvideo+bestaudio') +        req_format_list.append('best') +        return '/'.join(req_format_list) +      def build_format_selector(self, format_spec):          def syntax_error(note, start):              message = ( @@ -1534,14 +1553,10 @@ class YoutubeDL(object):          req_format = self.params.get('format')          if req_format is None: -            req_format_list = [] -            if (self.params.get('outtmpl', DEFAULT_OUTTMPL) != '-' and -                    not info_dict.get('is_live')): -                merger = FFmpegMergerPP(self) -                if merger.available and merger.can_merge(): -                    req_format_list.append('bestvideo+bestaudio') -            req_format_list.append('best') -            req_format = '/'.join(req_format_list) +            req_format = self._default_format_spec(info_dict, download=download) +            if self.params.get('verbose'): +                self.to_stdout('[debug] Default format spec: %s' % req_format) +          format_selector = self.build_format_selector(req_format)          # While in format selection we may need to have an access to the original | 
