mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 06:17:07 -05:00 
			
		
		
		
	[youtube] extract more format metadata
This commit is contained in:
		@@ -1794,6 +1794,25 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
 | 
			
		||||
                                'height': int_or_none(width_height[1]),
 | 
			
		||||
                            }
 | 
			
		||||
            q = qualities(['small', 'medium', 'hd720'])
 | 
			
		||||
            streaming_formats = try_get(player_response, lambda x: x['streamingData']['formats'], list)
 | 
			
		||||
            if streaming_formats:
 | 
			
		||||
                for fmt in streaming_formats:
 | 
			
		||||
                    itag = str_or_none(fmt.get('itag'))
 | 
			
		||||
                    if not itag:
 | 
			
		||||
                        continue
 | 
			
		||||
                    quality = fmt.get('quality')
 | 
			
		||||
                    quality_label = fmt.get('qualityLabel') or quality
 | 
			
		||||
                    formats_spec[itag] = {
 | 
			
		||||
                        'asr': int_or_none(fmt.get('audioSampleRate')),
 | 
			
		||||
                        'filesize': int_or_none(fmt.get('contentLength')),
 | 
			
		||||
                        'format_note': quality_label,
 | 
			
		||||
                        'fps': int_or_none(fmt.get('fps')),
 | 
			
		||||
                        'height': int_or_none(fmt.get('height')),
 | 
			
		||||
                        'quality': q(quality),
 | 
			
		||||
                        # bitrate for itag 43 is always 2147483647
 | 
			
		||||
                        'tbr': float_or_none(fmt.get('averageBitrate') or fmt.get('bitrate'), 1000) if itag != '43' else None,
 | 
			
		||||
                        'width': int_or_none(fmt.get('width')),
 | 
			
		||||
                    }
 | 
			
		||||
            formats = []
 | 
			
		||||
            for url_data_str in encoded_url_map.split(','):
 | 
			
		||||
                url_data = compat_parse_qs(url_data_str)
 | 
			
		||||
@@ -1876,7 +1895,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
 | 
			
		||||
                filesize = int_or_none(url_data.get(
 | 
			
		||||
                    'clen', [None])[0]) or _extract_filesize(url)
 | 
			
		||||
 | 
			
		||||
                quality = url_data.get('quality_label', [None])[0] or url_data.get('quality', [None])[0]
 | 
			
		||||
                quality = url_data.get('quality', [None])[0]
 | 
			
		||||
 | 
			
		||||
                more_fields = {
 | 
			
		||||
                    'filesize': filesize,
 | 
			
		||||
@@ -1884,7 +1903,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
 | 
			
		||||
                    'width': width,
 | 
			
		||||
                    'height': height,
 | 
			
		||||
                    'fps': int_or_none(url_data.get('fps', [None])[0]),
 | 
			
		||||
                    'format_note': quality,
 | 
			
		||||
                    'format_note': url_data.get('quality_label', [None])[0] or quality,
 | 
			
		||||
                    'quality': q(quality),
 | 
			
		||||
                }
 | 
			
		||||
                for key, value in more_fields.items():
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user