[ie/bilibili] URL Redirect (yt-dlp#13924)

pull/14038/head
Junyi Lou 1 day ago
parent 6ae3543d5a
commit 830fcde8d5

@ -644,7 +644,19 @@ class BiliBiliIE(BilibiliBaseIE):
headers['Referer'] = url
initial_state = self._search_json(r'window\.__INITIAL_STATE__\s*=', webpage, 'initial state', video_id)
initial_state = self._search_json(r'window\.__INITIAL_STATE__\s*=', webpage, 'initial state', video_id, default=None)
if not initial_state:
query = {}
if groups := re.search(r"[bB][vV](?P<id>[^/?#&]+)", url):
query["bvid"] = f"BV{groups.group("id")}"
elif groups := re.search(r"[aA][vV](?P<id>[^/?#&]+)", url):
query["aid"] = groups.group("id")
if query:
ep_url = traverse_obj(
self._download_json('https://api.bilibili.com/x/web-interface/wbi/view/detail', 'vid',
query=self._sign_wbi(query, 'vid'), headers=headers), ('data', 'View', 'redirect_url'))
if ep_url and BiliBiliBangumiIE._match_valid_url(ep_url):
return BiliBiliBangumiIE(self._downloader).extract(ep_url)
if traverse_obj(initial_state, ('error', 'trueCode')) == -403:
self.raise_login_required()

Loading…
Cancel
Save