mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[utils] Don't use Content-length with encoding (#6176)
Authored by: felixonmars Closes #3772, #6178
This commit is contained in:
		| @@ -211,7 +211,12 @@ class HttpFD(FileDownloader): | |||||||
|                 ctx.stream = None |                 ctx.stream = None | ||||||
| 
 | 
 | ||||||
|         def download(): |         def download(): | ||||||
|             data_len = ctx.data.info().get('Content-length', None) |             data_len = ctx.data.info().get('Content-length') | ||||||
|  | 
 | ||||||
|  |             if ctx.data.info().get('Content-encoding'): | ||||||
|  |                 # Content-encoding is present, Content-length is not reliable anymore as we are | ||||||
|  |                 # doing auto decompression. (See: https://github.com/yt-dlp/yt-dlp/pull/6176) | ||||||
|  |                 data_len = None | ||||||
| 
 | 
 | ||||||
|             # Range HTTP header may be ignored/unsupported by a webserver |             # Range HTTP header may be ignored/unsupported by a webserver | ||||||
|             # (e.g. extractor/scivee.py, extractor/bambuser.py). |             # (e.g. extractor/scivee.py, extractor/bambuser.py). | ||||||
|   | |||||||
| @@ -1438,19 +1438,16 @@ class YoutubeDLHandler(urllib.request.HTTPHandler): | |||||||
|                     raise original_ioerror |                     raise original_ioerror | ||||||
|             resp = urllib.request.addinfourl(uncompressed, old_resp.headers, old_resp.url, old_resp.code) |             resp = urllib.request.addinfourl(uncompressed, old_resp.headers, old_resp.url, old_resp.code) | ||||||
|             resp.msg = old_resp.msg |             resp.msg = old_resp.msg | ||||||
|             del resp.headers['Content-encoding'] |  | ||||||
|         # deflate |         # deflate | ||||||
|         if resp.headers.get('Content-encoding', '') == 'deflate': |         if resp.headers.get('Content-encoding', '') == 'deflate': | ||||||
|             gz = io.BytesIO(self.deflate(resp.read())) |             gz = io.BytesIO(self.deflate(resp.read())) | ||||||
|             resp = urllib.request.addinfourl(gz, old_resp.headers, old_resp.url, old_resp.code) |             resp = urllib.request.addinfourl(gz, old_resp.headers, old_resp.url, old_resp.code) | ||||||
|             resp.msg = old_resp.msg |             resp.msg = old_resp.msg | ||||||
|             del resp.headers['Content-encoding'] |  | ||||||
|         # brotli |         # brotli | ||||||
|         if resp.headers.get('Content-encoding', '') == 'br': |         if resp.headers.get('Content-encoding', '') == 'br': | ||||||
|             resp = urllib.request.addinfourl( |             resp = urllib.request.addinfourl( | ||||||
|                 io.BytesIO(self.brotli(resp.read())), old_resp.headers, old_resp.url, old_resp.code) |                 io.BytesIO(self.brotli(resp.read())), old_resp.headers, old_resp.url, old_resp.code) | ||||||
|             resp.msg = old_resp.msg |             resp.msg = old_resp.msg | ||||||
|             del resp.headers['Content-encoding'] |  | ||||||
|         # Percent-encode redirect URL of Location HTTP header to satisfy RFC 3986 (see |         # Percent-encode redirect URL of Location HTTP header to satisfy RFC 3986 (see | ||||||
|         # https://github.com/ytdl-org/youtube-dl/issues/6457). |         # https://github.com/ytdl-org/youtube-dl/issues/6457). | ||||||
|         if 300 <= resp.code < 400: |         if 300 <= resp.code < 400: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Yan
					Felix Yan