Escape URLs in sanitized_Request
, not sanitize_url
d2558234cf5dd12d6896eed5427b7dcdb3ab7b5a added escaping of URLs while sanitizing. However, sanitize_url
may not always receive an actual URL. Eg: When using youtube-dl "search query" --default-search ytsearch
, search query
gets escaped to search%20query
before being prefixed with ytsearch:
which is not the intended behavior. So the escaping is moved to sanitized_Request
instead.
This commit is contained in:
parent
6067451e43
commit
1d3751c3fe
3 changed files with 22 additions and 2 deletions
|
@ -250,6 +250,7 @@ class TestUtil(unittest.TestCase):
|
||||||
self.assertEqual(sanitize_url('httpss://foo.bar'), 'https://foo.bar')
|
self.assertEqual(sanitize_url('httpss://foo.bar'), 'https://foo.bar')
|
||||||
self.assertEqual(sanitize_url('rmtps://foo.bar'), 'rtmps://foo.bar')
|
self.assertEqual(sanitize_url('rmtps://foo.bar'), 'rtmps://foo.bar')
|
||||||
self.assertEqual(sanitize_url('https://foo.bar'), 'https://foo.bar')
|
self.assertEqual(sanitize_url('https://foo.bar'), 'https://foo.bar')
|
||||||
|
self.assertEqual(sanitize_url('foo bar'), 'foo bar')
|
||||||
|
|
||||||
def test_expand_path(self):
|
def test_expand_path(self):
|
||||||
def env(var):
|
def env(var):
|
||||||
|
|
|
@ -2320,6 +2320,25 @@ class GenericIE(InfoExtractor):
|
||||||
'height': 720,
|
'height': 720,
|
||||||
'age_limit': 18,
|
'age_limit': 18,
|
||||||
},
|
},
|
||||||
|
}, {
|
||||||
|
# would like to use the yt-dl test video but searching for
|
||||||
|
# '"\'/\\ä↭𝕐' fails, so using an old vid from YouTube Korea
|
||||||
|
'note': 'Test default search',
|
||||||
|
'url': 'Shorts로 허락 필요없이 놀자! (BTS편)',
|
||||||
|
'info_dict': {
|
||||||
|
'id': 'usDGO4Zb-dc',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': 'YouTube Shorts로 허락 필요없이 놀자! (BTS편)',
|
||||||
|
'description': 'md5:96e31607eba81ab441567b5e289f4716',
|
||||||
|
'upload_date': '20211107',
|
||||||
|
'uploader': 'YouTube Korea',
|
||||||
|
'location': '대한민국',
|
||||||
|
},
|
||||||
|
'params': {
|
||||||
|
'default_search': 'ytsearch',
|
||||||
|
'skip_download': True,
|
||||||
|
},
|
||||||
|
'expected_warnings': ['uploader id'],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -2176,11 +2176,11 @@ def sanitize_url(url):
|
||||||
for mistake, fixup in COMMON_TYPOS:
|
for mistake, fixup in COMMON_TYPOS:
|
||||||
if re.match(mistake, url):
|
if re.match(mistake, url):
|
||||||
return re.sub(mistake, fixup, url)
|
return re.sub(mistake, fixup, url)
|
||||||
return escape_url(url)
|
return url
|
||||||
|
|
||||||
|
|
||||||
def sanitized_Request(url, *args, **kwargs):
|
def sanitized_Request(url, *args, **kwargs):
|
||||||
return compat_urllib_request.Request(sanitize_url(url), *args, **kwargs)
|
return compat_urllib_request.Request(escape_url(sanitize_url(url)), *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
def expand_path(s):
|
def expand_path(s):
|
||||||
|
|
Loading…
Reference in a new issue