[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