diff options
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 67eceb5c4..1bc2c27ad 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -1652,7 +1652,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):                          view_count = extract_view_count(get_video_info)                      if not video_info:                          video_info = get_video_info -                    if 'token' in get_video_info: +                    get_token = get_video_info.get('token') or get_video_info.get('account_playback_token') +                    if get_token:                          # Different get_video_info requests may report different results, e.g.                          # some may report video unavailability, but some may serve it without                          # any complaint (see https://github.com/ytdl-org/youtube-dl/issues/7362, @@ -1662,7 +1663,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):                          # due to YouTube measures against IP ranges of hosting providers.                          # Working around by preferring the first succeeded video_info containing                          # the token if no such video_info yet was found. -                        if 'token' not in video_info: +                        token = video_info.get('token') or video_info.get('account_playback_token') +                        if not token:                              video_info = get_video_info                          break @@ -1678,7 +1680,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):              raise ExtractorError(                  'YouTube said: %s' % unavailable_message, expected=True, video_id=video_id) -        if 'token' not in video_info: +        token = video_info.get('token') or video_info.get('account_playback_token') +        if not token:              if 'reason' in video_info:                  if 'The uploader has not made this video available in your country.' in video_info['reason']:                      regions_allowed = self._html_search_meta( | 
