Compare commits

..

No commits in common. "a06ebc9bf7876a09aaf31a147511b0a787fa334e" and "ae38877cd9a740e3270e168a5d478ff068ff2379" have entirely different histories.

View File

@ -114,14 +114,11 @@ class BilibiliBaseIE(InfoExtractor):
}] }]
} }
subtitle_info = traverse_obj(self._download_json( video_info_json = self._download_json(
'https://api.bilibili.com/x/player/v2', video_id, 'https://api.bilibili.com/x/player/v2', video_id,
query={'aid': aid, 'cid': cid} if aid else {'bvid': video_id, 'cid': cid}, query={'aid': aid, 'cid': cid} if aid else {'bvid': video_id, 'cid': cid},
note=f'Extracting subtitle info {cid}'), ('data', 'subtitle')) note=f'Extracting subtitle info {cid}')
if not traverse_obj(subtitle_info, 'subtitles') and traverse_obj(subtitle_info, 'allow_submit'): for s in traverse_obj(video_info_json, ('data', 'subtitle', 'subtitles', ...)):
if not self._get_cookies('https://api.bilibili.com').get('SESSDATA'): # no login session cookie
self.report_warning(f'CC subtitles (if exist) are only visible when logged in. {self._login_hint()}')
for s in traverse_obj(subtitle_info, ('subtitles', ...)):
subtitles.setdefault(s['lan'], []).append({ subtitles.setdefault(s['lan'], []).append({
'ext': 'srt', 'ext': 'srt',
'data': self.json2srt(self._download_json(s['subtitle_url'], video_id)) 'data': self.json2srt(self._download_json(s['subtitle_url'], video_id))
@ -902,7 +899,7 @@ class BilibiliCheeseSeasonIE(BilibiliCheeseIE):
'view_count': int, 'view_count': int,
} }
}], }],
'params': {'playlist_items': '1'}, 'skip': 'paid video in list',
}, { }, {
'url': 'https://www.bilibili.com/cheese/play/ss5918', 'url': 'https://www.bilibili.com/cheese/play/ss5918',
'info_dict': { 'info_dict': {
@ -911,16 +908,11 @@ class BilibiliCheeseSeasonIE(BilibiliCheeseIE):
'description': '帮普通人建立世界模型,降低人与人的沟通门槛', 'description': '帮普通人建立世界模型,降低人与人的沟通门槛',
}, },
'playlist_mincount': 5, 'playlist_mincount': 5,
'skip': 'paid video in list',
}] }]
def _get_cheese_entries(self, season_info): def _get_cheese_entries(self, season_info):
for ep_id in traverse_obj(season_info, ('episodes', lambda _, v: v['episode_can_view'], 'id')): for ep_id in traverse_obj(season_info, ('episodes', lambda _, v: v['episode_can_view'], 'id')):
yield { yield self.url_result(f'https://www.bilibili.com/cheese/play/ep{ep_id}', BilibiliCheeseIE, str(ep_id))
**self._extract_episode(season_info, ep_id, self._HEADERS),
'extractor_key': BilibiliCheeseIE.ie_key(),
'extractor': 'BilibiliCheese',
}
def _real_extract(self, url): def _real_extract(self, url):
season_id = self._match_id(url) season_id = self._match_id(url)