diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2013-12-24 11:56:02 +0100 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2013-12-24 11:56:02 +0100 | 
| commit | f49d89ee04897b3ec64af74bb9fd94957c42331c (patch) | |
| tree | 44062358d7ac6cda159e9d36d604e762257ac13d | |
| parent | dabc127362ddfe88996e72b7e0d5cd2e4f239c98 (diff) | |
Add a resolution field and improve general --list-formats output
| -rw-r--r-- | youtube_dl/YoutubeDL.py | 16 | ||||
| -rw-r--r-- | youtube_dl/extractor/common.py | 13 | 
2 files changed, 19 insertions, 10 deletions
| diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 41a9114ad..d0cb52a51 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -1007,13 +1007,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 @@ -1025,11 +1027,11 @@ class YoutubeDL(object):                  res += fdict['format_note'] + u' '              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 +1066,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))) diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 0dd504444..123af43c6 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -37,10 +37,12 @@ class InfoExtractor(object):      id:             Video identifier.      title:          Video title, unescaped. -    Additionally, it must contain either a formats entry or url and ext: +    Additionally, it must contain either a formats entry or a url one: -    formats:        A list of dictionaries for each format available, it must -                    be ordered from worst to best quality. Potential fields: +    formats:        A list of dictionaries for each format available, ordered +                    from worst to best quality. + +                    Potential fields:                      * url        Mandatory. The URL of the video file                      * ext        Will be calculated from url if missing                      * format     A human-readable description of the format @@ -53,12 +55,17 @@ class InfoExtractor(object):                                   ("3D" or "DASH video")                      * width      Width of the video, if known                      * height     Height of the video, if known +                    * resolution Textual description of width and height                      * abr        Average audio bitrate in KBit/s                      * acodec     Name of the audio codec in use                      * vbr        Average video bitrate in KBit/s                      * vcodec     Name of the video codec in use                      * filesize   The number of bytes, if known in advance                      * player_url SWF Player URL (used for rtmpdump). +                    * preference Order number of this format. If this field is +                                 present, the formats get sorted by this field. +                                 -1 for default (order by other properties), +                                 -2 or smaller for less than default.      url:            Final video URL.      ext:            Video filename extension.      format:         The video format, defaults to ext (used for --get-format) | 
