diff options
Diffstat (limited to 'youtube_dl/YoutubeDL.py')
| -rw-r--r-- | youtube_dl/YoutubeDL.py | 33 | 
1 files changed, 15 insertions, 18 deletions
| diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 41a9114ad..a9a3639d7 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -676,17 +676,8 @@ class YoutubeDL(object):              formats = list(takewhile_inclusive(                  lambda f: f['format_id'] != format_limit, formats              )) -        if self.params.get('prefer_free_formats'): -            def _free_formats_key(f): -                try: -                    ext_ord = [u'flv', u'mp4', u'webm'].index(f['ext']) -                except ValueError: -                    ext_ord = -1 -                # We only compare the extension if they have the same height and width -                return (f.get('height') if f.get('height') is not None else -1, -                        f.get('width') if f.get('width') is not None else -1, -                        ext_ord) -            formats = sorted(formats, key=_free_formats_key) + +        # TODO Central sorting goes here          if formats[0] is not info_dict:               # only set the 'formats' fields if the original info_dict list them @@ -1007,13 +998,15 @@ class YoutubeDL(object):      def format_resolution(format, default='unknown'):          if format.get('vcodec') == 'none':              return 'audio only' -        if format.get('_resolution') is not None: -            return format['_resolution'] +        if format.get('resolution') is not None: +            return format['resolution']          if format.get('height') is not None:              if format.get('width') is not None:                  res = u'%sx%s' % (format['width'], format['height'])              else:                  res = u'%sp' % format['height'] +        elif format.get('width') is not None: +            res = u'?x%d' % format['width']          else:              res = default          return res @@ -1021,15 +1014,19 @@ class YoutubeDL(object):      def list_formats(self, info_dict):          def format_note(fdict):              res = u'' +            if f.get('ext') in ['f4f', 'f4m']: +                res += u'(unsupported) '              if fdict.get('format_note') is not None:                  res += fdict['format_note'] + u' ' +            if fdict.get('tbr') is not None: +                res += u'%4dk ' % fdict['tbr']              if (fdict.get('vcodec') is not None and                      fdict.get('vcodec') != 'none'): -                res += u'%-5s' % fdict['vcodec'] -            elif fdict.get('vbr') is not None: -                res += u'video' +                res += u'%-5s@' % fdict['vcodec'] +            elif fdict.get('vbr') is not None and fdict.get('abr') is not None: +                res += u'video@'              if fdict.get('vbr') is not None: -                res += u'@%4dk' % fdict['vbr'] +                res += u'%4dk' % fdict['vbr']              if fdict.get('acodec') is not None:                  if res:                      res += u', ' @@ -1064,7 +1061,7 @@ class YoutubeDL(object):          header_line = line({              'format_id': u'format code', 'ext': u'extension', -            '_resolution': u'resolution', 'format_note': u'note'}, idlen=idlen) +            'resolution': u'resolution', 'format_note': u'note'}, idlen=idlen)          self.to_screen(u'[info] Available formats for %s:\n%s\n%s' %                         (info_dict['id'], header_line, u"\n".join(formats_s))) | 
