[youtube] Ensure subtitle urls are absolute (#2765)

Closes #2755

Authored by: coletdjnz
This commit is contained in:
coletdev 2022-02-13 21:36:01 +00:00 committed by GitHub
parent 88afe05695
commit 60f393e48b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2245,12 +2245,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
get_all=False, expected_type=compat_str)
if not player_url:
return
if player_url.startswith('//'):
player_url = 'https:' + player_url
elif not re.match(r'https?://', player_url):
player_url = compat_urlparse.urljoin(
'https://www.youtube.com', player_url)
return player_url
return urljoin('https://www.youtube.com', player_url)
def _download_player_url(self, video_id, fatal=False):
res = self._download_webpage(
@ -2399,11 +2394,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
"""Turn the encrypted n field into a working signature"""
if player_url is None:
raise ExtractorError('Cannot decrypt nsig without player_url')
if player_url.startswith('//'):
player_url = 'https:' + player_url
elif not re.match(r'https?://', player_url):
player_url = compat_urlparse.urljoin(
'https://www.youtube.com', player_url)
player_url = urljoin('https://www.youtube.com', player_url)
sig_id = ('nsig_value', s)
if sig_id in self._player_cache:
@ -3388,7 +3379,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
})
lang_subs.append({
'ext': fmt,
'url': update_url_query(base_url, query),
'url': urljoin('https://www.youtube.com', update_url_query(base_url, query)),
'name': sub_name,
})