[ie/tiktok] Detect and raise when login is required (#10124)

Authored by: bashonly
This commit is contained in:
bashonly 2024-06-13 18:16:43 -05:00 committed by GitHub
parent b8e2a5e0e1
commit ea88129784
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -213,8 +213,19 @@ class TikTokBaseIE(InfoExtractor):
return self._parse_aweme_video_app(aweme_detail) return self._parse_aweme_video_app(aweme_detail)
def _extract_web_data_and_status(self, url, video_id, fatal=True): def _extract_web_data_and_status(self, url, video_id, fatal=True):
webpage = self._download_webpage(url, video_id, headers={'User-Agent': 'Mozilla/5.0'}, fatal=fatal) or '' video_data, status = {}, -1
video_data, status = {}, None
res = self._download_webpage_handle(url, video_id, fatal=fatal, headers={'User-Agent': 'Mozilla/5.0'})
if res is False:
return video_data, status
webpage, urlh = res
if urllib.parse.urlparse(urlh.url).path == '/login':
message = 'TikTok is requiring login for access to this content'
if fatal:
self.raise_login_required(message)
self.report_warning(f'{message}. {self._login_hint()}')
return video_data, status
if universal_data := self._get_universal_data(webpage, video_id): if universal_data := self._get_universal_data(webpage, video_id):
self.write_debug('Found universal data for rehydration') self.write_debug('Found universal data for rehydration')