|
|
|
@ -547,7 +547,7 @@ class YoutubeDL:
|
|
|
|
|
_format_fields = {
|
|
|
|
|
# NB: Keep in sync with the docstring of extractor/common.py
|
|
|
|
|
'url', 'manifest_url', 'manifest_stream_number', 'ext', 'format', 'format_id', 'format_note',
|
|
|
|
|
'width', 'height', 'resolution', 'dynamic_range', 'tbr', 'abr', 'acodec', 'asr', 'audio_channels',
|
|
|
|
|
'width', 'height', 'aspect_ratio', 'resolution', 'dynamic_range', 'tbr', 'abr', 'acodec', 'asr', 'audio_channels',
|
|
|
|
|
'vbr', 'fps', 'vcodec', 'container', 'filesize', 'filesize_approx', 'rows', 'columns',
|
|
|
|
|
'player_url', 'protocol', 'fragment_base_url', 'fragments', 'is_from_start',
|
|
|
|
|
'preference', 'language', 'language_preference', 'quality', 'source_preference',
|
|
|
|
@ -2186,6 +2186,7 @@ class YoutubeDL:
|
|
|
|
|
'vcodec': the_only_video.get('vcodec'),
|
|
|
|
|
'vbr': the_only_video.get('vbr'),
|
|
|
|
|
'stretched_ratio': the_only_video.get('stretched_ratio'),
|
|
|
|
|
'aspect_ratio': the_only_video.get('aspect_ratio'),
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
if the_only_audio:
|
|
|
|
@ -2628,6 +2629,8 @@ class YoutubeDL:
|
|
|
|
|
format['resolution'] = self.format_resolution(format, default=None)
|
|
|
|
|
if format.get('dynamic_range') is None and format.get('vcodec') != 'none':
|
|
|
|
|
format['dynamic_range'] = 'SDR'
|
|
|
|
|
if format.get('aspect_ratio') is None:
|
|
|
|
|
format['aspect_ratio'] = try_call(lambda: round(format['width'] / format['height'], 2))
|
|
|
|
|
if (info_dict.get('duration') and format.get('tbr')
|
|
|
|
|
and not format.get('filesize') and not format.get('filesize_approx')):
|
|
|
|
|
format['filesize_approx'] = int(info_dict['duration'] * format['tbr'] * (1024 / 8))
|
|
|
|
|