diff options
author | bashonly <bashonly@bashonly.com> | 2023-06-27 16:50:02 -0500 |
---|---|---|
committer | bashonly <bashonly@bashonly.com> | 2023-06-27 16:50:02 -0500 |
commit | a2be9781fbf4d7e4db245c277ca2ecc41cf3a7b2 (patch) | |
tree | 2c1a770a88c356d08f46aff707b46f04f9291038 | |
parent | 8f05fbae2a79ce0713077ccc68b354e63216bf20 (diff) | |
download | hypervideo-pre-a2be9781fbf4d7e4db245c277ca2ecc41cf3a7b2.tar.lz hypervideo-pre-a2be9781fbf4d7e4db245c277ca2ecc41cf3a7b2.tar.xz hypervideo-pre-a2be9781fbf4d7e4db245c277ca2ecc41cf3a7b2.zip |
[extractor/Douyin] Fix extraction from webpage
Closes #7431
Authored by: bashonly
-rw-r--r-- | yt_dlp/extractor/tiktok.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/yt_dlp/extractor/tiktok.py b/yt_dlp/extractor/tiktok.py index 9c6d74007..2f491c317 100644 --- a/yt_dlp/extractor/tiktok.py +++ b/yt_dlp/extractor/tiktok.py @@ -1015,18 +1015,16 @@ class DouyinIE(TikTokBaseIE): self.to_screen(f'{e}; trying with webpage') webpage = self._download_webpage(url, video_id) - render_data_json = self._search_regex( - r'<script [^>]*\bid=[\'"]RENDER_DATA[\'"][^>]*>(%7B.+%7D)</script>', - webpage, 'render data', default=None) - if not render_data_json: + render_data = self._search_json( + r'<script [^>]*\bid=[\'"]RENDER_DATA[\'"][^>]*>', webpage, 'render data', video_id, + contains_pattern=r'%7B(?s:.+)%7D', fatal=False, transform_source=compat_urllib_parse_unquote) + if not render_data: # TODO: Run verification challenge code to generate signature cookies cookies = self._get_cookies(self._WEBPAGE_HOST) expected = not cookies.get('s_v_web_id') or not cookies.get('ttwid') raise ExtractorError( 'Fresh cookies (not necessarily logged in) are needed', expected=expected) - render_data = self._parse_json( - render_data_json, video_id, transform_source=compat_urllib_parse_unquote) return self._parse_aweme_video_web(get_first(render_data, ('aweme', 'detail')), url, video_id) |