diff options
Diffstat (limited to 'youtube/yt_data_extract')
-rw-r--r-- | youtube/yt_data_extract/watch_extraction.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/youtube/yt_data_extract/watch_extraction.py b/youtube/yt_data_extract/watch_extraction.py index ca2da10..340a367 100644 --- a/youtube/yt_data_extract/watch_extraction.py +++ b/youtube/yt_data_extract/watch_extraction.py @@ -348,12 +348,14 @@ def _extract_formats(info, player_response): streaming_data.get('dash_manifest_url')) for yt_fmt in yt_formats: + itag = yt_fmt.get('itag') + fmt = {} + fmt['itag'] = itag fmt['ext'] = None fmt['audio_bitrate'] = None fmt['acodec'] = None fmt['vcodec'] = None - fmt['itag'] = yt_fmt.get('itag') fmt['width'] = yt_fmt.get('width') fmt['height'] = yt_fmt.get('height') fmt['file_size'] = yt_fmt.get('contentLength') @@ -368,7 +370,12 @@ def _extract_formats(info, player_response): fmt['url'] = yt_fmt.get('url') fmt['s'] = cipher.get('s') fmt['sp'] = cipher.get('sp') - fmt.update(_formats.get(str(yt_fmt.get('itag')), {})) + + # update with information from big table + hardcoded_itag_info = _formats.get(str(itag), {}) + for key, value in hardcoded_itag_info.items(): + conservative_update(fmt, key, value) # prefer info from Youtube + fmt['quality'] = hardcoded_itag_info.get('height') info['formats'].append(fmt) |