diff options
| -rw-r--r-- | youtube_dl/YoutubeDL.py | 25 | 
1 files changed, 15 insertions, 10 deletions
| diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 060678e9b..260cd2809 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -759,6 +759,8 @@ class YoutubeDL(object):      @staticmethod      def format_resolution(format, default='unknown'): +        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']) @@ -769,19 +771,22 @@ class YoutubeDL(object):          return res      def list_formats(self, info_dict): -        formats_s = [] -        for format in info_dict.get('formats', [info_dict]): -            formats_s.append(u'%-15s%-7s     %-15s%s' % ( +        def line(format): +            return (u'%-15s%-10s%-12s%s' % (                  format['format_id'],                  format['ext'], -                format.get('format_note', ''),                  self.format_resolution(format), +                format.get('format_note', ''),                  )              ) + +        formats_s = list(map(line, info_dict.get('formats', [info_dict])))          if len(formats_s) != 1: -            formats_s[0] += ' (worst)' -            formats_s[-1] += ' (best)' -        formats_s = "\n".join(formats_s) -        self.to_screen(u'[info] Available formats for %s:\n' -            u'format code    extension   note           resolution\n%s' % ( -                info_dict['id'], formats_s)) +            formats_s[0] += (' ' if formats_s[0] else '') + '(worst)' +            formats_s[-1] += (' ' if formats_s[-1] else '') + '(best)' + +        header_line = line({ +            'format_id': u'format code', 'ext': u'extension', +            '_resolution': u'resolution', 'format_note': u'note'}) +        self.to_screen(u'[info] Available formats for %s:\n%s\n%s' % +                       (info_dict['id'], header_line, u"\n".join(formats_s))) | 
