]> git.bitcoin.ninja Git - youtube-dl/blobdiff - youtube_dl/utils.py
[utils] Add a function to sanitize consecutive slashes in URLs
[youtube-dl] / youtube_dl / utils.py
index 7426e2a1ffcdafb79ca026b7b0d5256c6b99739a..ef14f9a367197164ad15fc0ab6d15f47ef2c9b59 100644 (file)
@@ -1789,3 +1789,18 @@ class PerRequestProxyHandler(compat_urllib_request.ProxyHandler):
             return None  # No Proxy
         return compat_urllib_request.ProxyHandler.proxy_open(
             self, req, proxy, type)
+
+
+def url_sanitize_consecutive_slashes(url):
+    """Sanitize URLs with consecutive slashes
+
+    For example, transform both
+        http://hostname/foo//bar/filename.html
+    and
+        http://hostname//foo/bar/filename.html
+    into
+        http://hostname/foo/bar/filename.html
+    """
+    parsed_url = list(compat_urlparse.urlparse(url))
+    parsed_url[2] = re.sub(r'/{2,}', '/', parsed_url[2])
+    return compat_urlparse.urlunparse(parsed_url)