[utils] Properly handle list values in update_url()
authordirkf <fieldhouse@gmx.net>
Sun, 3 Sep 2023 00:18:22 +0000 (01:18 +0100)
committerdirkf <fieldhouse@gmx.net>
Sun, 3 Sep 2023 00:18:22 +0000 (01:18 +0100)
An actual list value in a query update could have been treated
as a list of values because of the key:list parse_qs format.

youtube_dl/utils.py

index 81ff788079a1087baec8f8d1f44dca44c3525836..fdf41b0254f885ef25a6456f5fe89513ea56ddaa 100644 (file)
@@ -4257,7 +4257,7 @@ def update_url(url, **kwargs):
     query = kwargs.pop('query_update', None)
     if query:
         qs = compat_parse_qs(url.query)
-        qs.update(query)
+        qs.update((k, [v]) for k, v in query.items())
         kwargs['query'] = compat_urllib_parse_urlencode(qs, True)
         kwargs = compat_kwargs(kwargs)
     return compat_urllib_parse.urlunparse(url._replace(**kwargs))