[YoutubeDL] Sanitize final URLs (Closes #8991)
authorSergey M․ <dstftw@gmail.com>
Sat, 26 Mar 2016 13:37:41 +0000 (19:37 +0600)
committerSergey M․ <dstftw@gmail.com>
Sat, 26 Mar 2016 13:37:41 +0000 (19:37 +0600)
youtube_dl/YoutubeDL.py

index 29d7a31062da5cbe033b776213c5c9c4431f3dc7..33c269f9c41481a49c98590e18ab829e517492c4 100755 (executable)
@@ -65,6 +65,7 @@ from .utils import (
     SameFileError,
     sanitize_filename,
     sanitize_path,
+    sanitize_url,
     sanitized_Request,
     std_headers,
     subtitles_filename,
@@ -1229,6 +1230,7 @@ class YoutubeDL(object):
                 t.get('preference'), t.get('width'), t.get('height'),
                 t.get('id'), t.get('url')))
             for i, t in enumerate(thumbnails):
+                t['url'] = sanitize_url(t['url'])
                 if t.get('width') and t.get('height'):
                     t['resolution'] = '%dx%d' % (t['width'], t['height'])
                 if t.get('id') is None:
@@ -1263,6 +1265,7 @@ class YoutubeDL(object):
         if subtitles:
             for _, subtitle in subtitles.items():
                 for subtitle_format in subtitle:
+                    subtitle_format['url'] = sanitize_url(subtitle_format['url'])
                     if 'ext' not in subtitle_format:
                         subtitle_format['ext'] = determine_ext(subtitle_format['url']).lower()
 
@@ -1292,6 +1295,8 @@ class YoutubeDL(object):
             if 'url' not in format:
                 raise ExtractorError('Missing "url" key in result (index %d)' % i)
 
+            format['url'] = sanitize_url(format['url'])
+
             if format.get('format_id') is None:
                 format['format_id'] = compat_str(i)
             else: