diff --git a/yt_dlp/extractor/bilibili.py b/yt_dlp/extractor/bilibili.py index 02ea67707f..7de609a6ce 100644 --- a/yt_dlp/extractor/bilibili.py +++ b/yt_dlp/extractor/bilibili.py @@ -644,7 +644,8 @@ class BiliBiliIE(BilibiliBaseIE): video_data = initial_state['videoInfo'] else: play_info_obj = self._search_json( - r'window\.__playinfo__\s*=', webpage, 'play info', video_id, fatal=False) + r'window\.__playinfo__\s*=', webpage, 'play info', video_id, default=None) + play_info = None if not play_info_obj: if traverse_obj(initial_state, ('error', 'trueCode')) == -403: self.raise_login_required() @@ -652,7 +653,9 @@ class BiliBiliIE(BilibiliBaseIE): raise ExtractorError( 'This video may be deleted or geo-restricted. ' 'You might want to try a VPN or a proxy server (with --proxy)', expected=True) - play_info = traverse_obj(play_info_obj, ('data', {dict})) + play_info = self._download_playinfo(video_id, initial_state['cid'], headers=headers) + else: + play_info = traverse_obj(play_info_obj, ('data', {dict})) if not play_info: if traverse_obj(play_info_obj, 'code') == 87007: toast = get_element_by_class('tips-toast', webpage) or ''