From 3ba6ef6ffbd165497666c6f1614d4b9b8e7b966e Mon Sep 17 00:00:00 2001 From: Avi Peretz Date: Fri, 21 Jun 2019 00:19:24 +0300 Subject: [PATCH] save guest token. --- youtube_dl/extractor/common.py | 2 +- youtube_dl/extractor/twitter.py | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 9c3e9eec6..b411882e0 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -2816,7 +2816,7 @@ class InfoExtractor(object): """ Return a compat_cookies.SimpleCookie with the cookies for the url """ req = sanitized_Request(url) self._downloader.cookiejar.add_cookie_header(req) - return compat_cookies.SimpleCookie(req.get_header('Cookie')) + return compat_cookies.SimpleCookie(str(req.get_header('Cookie'))) def _apply_first_set_cookie_header(self, url_handle, cookie): """ diff --git a/youtube_dl/extractor/twitter.py b/youtube_dl/extractor/twitter.py index 852589b65..fe9860b3c 100644 --- a/youtube_dl/extractor/twitter.py +++ b/youtube_dl/extractor/twitter.py @@ -241,12 +241,18 @@ class TwitterCardIE(TwitterBaseIE): ct0 = self._get_cookies(url).get('ct0') if ct0: headers['csrf_token'] = ct0.value - guest_token = self._download_json( - '%s/guest/activate.json' % self._API_BASE, video_id, - 'Downloading guest token', data=b'', - headers=headers)['guest_token'] + guest_token_c = self._get_cookies('http://api.twitter.com/').get('gt') + if not guest_token_c: + guest_token = self._download_json( + '%s/guest/activate.json' % self._API_BASE, video_id, + 'Downloading guest token', data=b'', + headers=headers)['guest_token'] + self._set_cookie('api.twitter.com', 'gt', guest_token) + else: + guest_token = guest_token_c.value + headers['x-guest-token'] = guest_token - self._set_cookie('api.twitter.com', 'gt', guest_token) + config = self._download_json( '%s/videos/tweet/config/%s.json' % (self._API_BASE, video_id), video_id, headers=headers)