mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 08:57:08 -05:00 
			
		
		
		
	Add a resolution field and improve general --list-formats output
This commit is contained in:
		@@ -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)))
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user