diff options
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index 54ec76db5..e01c27438 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -70,6 +70,11 @@ class YoutubeBaseInfoExtractor(InfoExtractor):      _PLAYLIST_ID_RE = r'(?:PL|LL|EC|UU|FL|RD|UL|TL|PU|OLAK5uy_)[0-9A-Za-z-_]{10,}' +    _YOUTUBE_CLIENT_HEADERS = { +        'x-youtube-client-name': '1', +        'x-youtube-client-version': '1.20200609.04.02', +    } +      def _set_language(self):          self._set_cookie(              '.youtube.com', 'PREF', 'f1=50000000&hl=en', @@ -301,7 +306,8 @@ class YoutubeEntryListBaseInfoExtractor(YoutubeBaseInfoExtractor):                          'https://youtube.com/%s' % mobj.group('more'), playlist_id,                          'Downloading page #%s%s'                          % (page_num, ' (retry #%d)' % count if count else ''), -                        transform_source=uppercase_escape) +                        transform_source=uppercase_escape, +                        headers=self._YOUTUBE_CLIENT_HEADERS)                      break                  except ExtractorError as e:                      if isinstance(e.cause, compat_HTTPError) and e.cause.code in (500, 503): @@ -3250,7 +3256,8 @@ class YoutubeFeedsInfoExtractor(YoutubeBaseInfoExtractor):              more = self._download_json(                  'https://youtube.com/%s' % mobj.group('more'), self._PLAYLIST_TITLE,                  'Downloading page #%s' % page_num, -                transform_source=uppercase_escape) +                transform_source=uppercase_escape, +                headers=self._YOUTUBE_CLIENT_HEADERS)              content_html = more['content_html']              more_widget_html = more['load_more_widget_html'] | 
