[youtube] Make get_video_info processing more robust (closes #29333)

This commit is contained in:
Sergey M․ 2021-06-21 01:35:21 +07:00
parent 03ab02730f
commit 47f2f2fbe9
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
1 changed files with 19 additions and 16 deletions

View File

@ -1504,22 +1504,25 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
playability_status = player_response.get('playabilityStatus') or {} playability_status = player_response.get('playabilityStatus') or {}
if playability_status.get('reason') == 'Sign in to confirm your age': if playability_status.get('reason') == 'Sign in to confirm your age':
pr = self._parse_json(try_get(compat_parse_qs( video_info = self._download_webpage(
self._download_webpage( base_url + 'get_video_info', video_id,
base_url + 'get_video_info', video_id, 'Refetching age-gated info webpage',
'Refetching age-gated info webpage', 'unable to download video info webpage', query={
'unable to download video info webpage', query={ 'video_id': video_id,
'video_id': video_id, 'eurl': 'https://youtube.googleapis.com/v/' + video_id,
'eurl': 'https://youtube.googleapis.com/v/' + video_id, 'html5': 1,
'html5': 1, # See https://github.com/ytdl-org/youtube-dl/issues/29333#issuecomment-864049544
# See https://github.com/ytdl-org/youtube-dl/issues/29333#issuecomment-864049544 'c': 'TVHTML5',
'c': 'TVHTML5', 'cver': '6.20180913',
'cver': '6.20180913', }, fatal=False)
}, fatal=False)), if video_info:
lambda x: x['player_response'][0], pr = self._parse_json(
compat_str) or '{}', video_id) try_get(
if pr: compat_parse_qs(video_info),
player_response = pr lambda x: x['player_response'][0], compat_str) or '{}',
video_id, fatal=False)
if pr and isinstance(pr, dict):
player_response = pr
trailer_video_id = try_get( trailer_video_id = try_get(
playability_status, playability_status,