mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-08-10 10:49:45 +00:00
Update to ytdl-commit-2dd6c6e
[YouTube] Avoid crash if uploader_id extraction fails
2dd6c6edd8
Except:
* 295736c9cba714fb5de7d1c3dd31d86e50091cf8 [jsinterp] Improve parsing
* 384f632e8a9b61e864a26678d85b2b39933b9bae [ITV] Overhaul ITV extractor
* 33db85c571304bbd6863e3407ad8d08764c9e53b [feat]: Add support to external downloader aria2p
This commit is contained in:
@@ -3149,14 +3149,28 @@ def urlencode_postdata(*args, **kargs):
|
||||
return urllib.parse.urlencode(*args, **kargs).encode('ascii')
|
||||
|
||||
|
||||
def update_url(url, *, query_update=None, **kwargs):
|
||||
"""Replace URL components specified by kwargs
|
||||
@param url str or parse url tuple
|
||||
@param query_update update query
|
||||
@returns str
|
||||
"""
|
||||
if isinstance(url, str):
|
||||
if not kwargs and not query_update:
|
||||
return url
|
||||
else:
|
||||
url = urllib.parse.urlparse(url)
|
||||
if query_update:
|
||||
assert 'query' not in kwargs, 'query_update and query cannot be specified at the same time'
|
||||
kwargs['query'] = urllib.parse.urlencode({
|
||||
**urllib.parse.parse_qs(url.query),
|
||||
**query_update
|
||||
}, True)
|
||||
return urllib.parse.urlunparse(url._replace(**kwargs))
|
||||
|
||||
|
||||
def update_url_query(url, query):
|
||||
if not query:
|
||||
return url
|
||||
parsed_url = urllib.parse.urlparse(url)
|
||||
qs = urllib.parse.parse_qs(parsed_url.query)
|
||||
qs.update(query)
|
||||
return urllib.parse.urlunparse(parsed_url._replace(
|
||||
query=urllib.parse.urlencode(qs, True)))
|
||||
return update_url(url, query_update=query)
|
||||
|
||||
|
||||
def update_Request(req, url=None, data=None, headers=None, query=None):
|
||||
|
Reference in New Issue
Block a user