aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorN/Ame <173015200+grqz@users.noreply.github.com>2024-12-05 12:11:55 +1300
committerGitHub <noreply@github.com>2024-12-04 23:11:55 +0000
commitfca3eb5f8be08d5fab2e18b45b7281a12e566725 (patch)
tree25147ccd026f7e6a132735dcef2cdf54ff8af901
parent2e49c789d3eebc39af8910705d65a98bca0e4c4f (diff)
[ie/bilibili] Fix HD formats extraction (#11734)
Fixes dc1687648077c5bf64863b307ecc5ab7e029bd8d Closes #10554 Authored by: grqz
-rw-r--r--yt_dlp/extractor/bilibili.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/yt_dlp/extractor/bilibili.py b/yt_dlp/extractor/bilibili.py
index 91619d9d5..2db951a60 100644
--- a/yt_dlp/extractor/bilibili.py
+++ b/yt_dlp/extractor/bilibili.py
@@ -681,12 +681,6 @@ class BiliBiliIE(BilibiliBaseIE):
old_video_id = format_field(aid, None, f'%s_part{part_id or 1}')
cid = traverse_obj(video_data, ('pages', part_id - 1, 'cid')) if part_id else video_data.get('cid')
- play_info = (
- traverse_obj(
- self._search_json(r'window\.__playinfo__\s*=', webpage, 'play info', video_id, default=None),
- ('data', {dict}))
- or self._download_playinfo(video_id, cid, headers=headers, query={'try_look': 1}))
-
festival_info = {}
if is_festival:
festival_info = traverse_obj(initial_state, {
@@ -724,6 +718,13 @@ class BiliBiliIE(BilibiliBaseIE):
duration=traverse_obj(initial_state, ('videoData', 'duration', {int_or_none})),
__post_extractor=self.extract_comments(aid))
+ play_info = None
+ if self.is_logged_in:
+ play_info = traverse_obj(
+ self._search_json(r'window\.__playinfo__\s*=', webpage, 'play info', video_id, default=None),
+ ('data', {dict}))
+ if not play_info:
+ play_info = self._download_playinfo(video_id, cid, headers=headers, query={'try_look': 1})
formats = self.extract_formats(play_info)
if video_data.get('is_upower_exclusive'):