Merge pull request #8718 from remitamine/m3u8-fixup
[youtube-dl] / youtube_dl / utils.py
index 91c9d820091598d13c252b54522e2d97e4ec6d98..22a39a0ab7af191095242e6b2a3f580e59e17c37 100644 (file)
@@ -1739,6 +1739,15 @@ def urlencode_postdata(*args, **kargs):
     return compat_urllib_parse.urlencode(*args, **kargs).encode('ascii')
 
 
+def update_url_query(url, query):
+    parsed_url = compat_urlparse.urlparse(url)
+    qs = compat_parse_qs(parsed_url.query)
+    qs.update(query)
+    qs = encode_dict(qs)
+    return compat_urlparse.urlunparse(parsed_url._replace(
+        query=compat_urllib_parse.urlencode(qs, True)))
+
+
 def encode_dict(d, encoding='utf-8'):
     def encode(v):
         return v.encode(encoding) if isinstance(v, compat_basestring) else v