|
@ -663,6 +663,15 @@ def _create_http_connection(ydl_handler, http_class, is_https, *args, **kwargs): |
|
|
return hc |
|
|
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): |
|
|
class YoutubeDLHandler(compat_urllib_request.HTTPHandler): |
|
|
"""Handler for HTTP requests and responses. |
|
|
"""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 |
|
|
# The dict keys are capitalized because of this bug by urllib |
|
|
if h.capitalize() not in req.headers: |
|
|
if h.capitalize() not in req.headers: |
|
|
req.add_header(h, v) |
|
|
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(): |
|
|
if sys.version_info < (2, 7) and '#' in req.get_full_url(): |
|
|
# Python 2.6 is brain-dead when it comes to fragments |
|
|
# Python 2.6 is brain-dead when it comes to fragments |
|
|