youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 5a4d9ddb218e761fe7ab15d197690e0cb132a536
parent 671302b5c0ff8cefa5f26e599423ef7799b19631
Author: Sergey M․ <dstftw@gmail.com>
Date:   Fri,  7 Aug 2015 01:26:40 +0600

[utils] Percent-encode redirect URL of Location header (Closes #6457)

Diffstat:
Myoutube_dl/utils.py | 11+++++++++++
1 file changed, 11 insertions(+), 0 deletions(-)

diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py @@ -715,6 +715,17 @@ class YoutubeDLHandler(compat_urllib_request.HTTPHandler): gz = io.BytesIO(self.deflate(resp.read())) resp = self.addinfourl_wrapper(gz, old_resp.headers, old_resp.url, old_resp.code) resp.msg = old_resp.msg + # Percent-encode redirect URL of Location HTTP header to satisfy RFC 3986 + if 300 <= resp.code < 400: + location = resp.headers.get('Location') + if location: + # As of RFC 2616 default charset is iso-8859-1 that is respected by python 3 + if sys.version_info >= (3, 0): + location = location.encode('iso-8859-1').decode('utf-8') + location_escaped = escape_url(location) + if location != location_escaped: + del resp.headers['Location'] + resp.headers['Location'] = location_escaped return resp https_request = http_request