mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 03:07:07 -05:00 
			
		
		
		
	[yahoo] Use centralized sorting, and add tbr field
This commit is contained in:
		@@ -1018,6 +1018,8 @@ class YoutubeDL(object):
 | 
			
		||||
                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']
 | 
			
		||||
 
 | 
			
		||||
@@ -57,6 +57,7 @@ class InfoExtractor(object):
 | 
			
		||||
                    * width      Width of the video, if known
 | 
			
		||||
                    * height     Height of the video, if known
 | 
			
		||||
                    * resolution Textual description of width and height
 | 
			
		||||
                    * tbr        Average bitrate of audio and video in KBit/s
 | 
			
		||||
                    * abr        Average audio bitrate in KBit/s
 | 
			
		||||
                    * acodec     Name of the audio codec in use
 | 
			
		||||
                    * vbr        Average video bitrate in KBit/s
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,8 @@ from .common import InfoExtractor, SearchInfoExtractor
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    compat_urllib_parse,
 | 
			
		||||
    compat_urlparse,
 | 
			
		||||
    determine_ext,
 | 
			
		||||
    clean_html,
 | 
			
		||||
    int_or_none,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -68,9 +68,9 @@ class YahooIE(InfoExtractor):
 | 
			
		||||
        formats = []
 | 
			
		||||
        for s in info['streams']:
 | 
			
		||||
            format_info = {
 | 
			
		||||
                'width': s.get('width'),
 | 
			
		||||
                'height': s.get('height'),
 | 
			
		||||
                'bitrate': s.get('bitrate'),
 | 
			
		||||
                'width': int_or_none(s.get('width')),
 | 
			
		||||
                'height': int_or_none(s.get('height')),
 | 
			
		||||
                'tbr': int_or_none(s.get('bitrate')),
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            host = s['host']
 | 
			
		||||
@@ -84,10 +84,10 @@ class YahooIE(InfoExtractor):
 | 
			
		||||
            else:
 | 
			
		||||
                format_url = compat_urlparse.urljoin(host, path)
 | 
			
		||||
                format_info['url'] = format_url
 | 
			
		||||
                format_info['ext'] = determine_ext(format_url)
 | 
			
		||||
                
 | 
			
		||||
            formats.append(format_info)
 | 
			
		||||
        formats = sorted(formats, key=lambda f:(f['height'], f['width']))
 | 
			
		||||
 | 
			
		||||
        self._sort_formats(formats)
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            'id': video_id,
 | 
			
		||||
 
 | 
			
		||||
@@ -1098,3 +1098,7 @@ def url_basename(url):
 | 
			
		||||
class HEADRequest(compat_urllib_request.Request):
 | 
			
		||||
    def get_method(self):
 | 
			
		||||
        return "HEAD"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def int_or_none(v):
 | 
			
		||||
    return v if v is None else int(v)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user