]> jfr.im git - yt-dlp.git/commitdiff
[extractor/youtube] Bypass throttling for `-f17`
authorpukkandan <redacted>
Thu, 9 Mar 2023 16:39:23 +0000 (22:09 +0530)
committerpukkandan <redacted>
Thu, 9 Mar 2023 16:43:03 +0000 (22:13 +0530)
and related cleanup

Thanks @AudricV for the finding

yt_dlp/extractor/youtube.py

index acd4077f4e4ac06938d9714129c1d40538556b6e..6e6abd65b1c295d7518864f8a002822f486d195f 100644 (file)
@@ -3745,13 +3745,11 @@ def _extract_formats_and_subtitles(self, streaming_data, video_id, player_url, l
             if mime_mobj:
                 dct['ext'] = mimetype2ext(mime_mobj.group(1))
                 dct.update(parse_codecs(mime_mobj.group(2)))
-            no_audio = dct.get('acodec') == 'none'
-            no_video = dct.get('vcodec') == 'none'
-            if no_audio:
-                dct['vbr'] = tbr
-            if no_video:
-                dct['abr'] = tbr
-            if no_audio or no_video:
+
+            single_stream = 'none' in (dct.get('acodec'), dct.get('vcodec'))
+            if single_stream and dct.get('ext'):
+                dct['container'] = dct['ext'] + '_dash'
+            if single_stream or itag == '17':
                 CHUNK_SIZE = 10 << 20
                 dct.update({
                     'protocol': 'http_dash_segments',
@@ -3760,13 +3758,10 @@ def _extract_formats_and_subtitles(self, streaming_data, video_id, player_url, l
                             'range': f'{range_start}-{min(range_start + CHUNK_SIZE - 1, dct["filesize"])}'
                         })
                     } for range_start in range(0, dct['filesize'], CHUNK_SIZE)]
-                } if dct['filesize'] else {
-                    'downloader_options': {'http_chunk_size': CHUNK_SIZE}  # No longer useful?
+                } if itag != '17' and dct['filesize'] else {
+                    'downloader_options': {'http_chunk_size': CHUNK_SIZE}
                 })
 
-                if dct.get('ext'):
-                    dct['container'] = dct['ext'] + '_dash'
-
             if itag:
                 itags[itag].add(('https', dct.get('language')))
                 stream_ids.append(stream_id)