mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 09:17:07 -05:00 
			
		
		
		
	[utils] Separate codes for handling Youtubedl-* headers
This commit is contained in:
		@@ -663,6 +663,15 @@ def _create_http_connection(ydl_handler, http_class, is_https, *args, **kwargs):
 | 
			
		||||
    return hc
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def handle_youtubedl_headers(headers):
 | 
			
		||||
    if 'Youtubedl-no-compression' in headers:
 | 
			
		||||
        filtered_headers = dict((k, v) for k, v in headers.items() if k.lower() != 'accept-encoding')
 | 
			
		||||
        del filtered_headers['Youtubedl-no-compression']
 | 
			
		||||
        return filtered_headers
 | 
			
		||||
 | 
			
		||||
    return headers
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class YoutubeDLHandler(compat_urllib_request.HTTPHandler):
 | 
			
		||||
    """Handler for HTTP requests and responses.
 | 
			
		||||
 | 
			
		||||
@@ -731,10 +740,8 @@ class YoutubeDLHandler(compat_urllib_request.HTTPHandler):
 | 
			
		||||
            # The dict keys are capitalized because of this bug by urllib
 | 
			
		||||
            if h.capitalize() not in req.headers:
 | 
			
		||||
                req.add_header(h, v)
 | 
			
		||||
        if 'Youtubedl-no-compression' in req.headers:
 | 
			
		||||
            if 'Accept-encoding' in req.headers:
 | 
			
		||||
                del req.headers['Accept-encoding']
 | 
			
		||||
            del req.headers['Youtubedl-no-compression']
 | 
			
		||||
 | 
			
		||||
        req.headers = handle_youtubedl_headers(req.headers)
 | 
			
		||||
 | 
			
		||||
        if sys.version_info < (2, 7) and '#' in req.get_full_url():
 | 
			
		||||
            # Python 2.6 is brain-dead when it comes to fragments
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user