mirror of
https://github.com/JefferyHcool/BiliNote.git
synced 2026-05-12 19:40:31 +08:00
之前 BilibiliDownloader.download_subtitles 走的是 yt-dlp 的 writesubtitles 路径,对 B 站签名/Cookie 的兼容性差,常常空手而归,落到音频下载 + Whisper 转写的慢路径。 新增 bilibili_subtitle.BilibiliSubtitleFetcher: - /x/web-interface/view?bvid=... → 拿 cid - /x/player/wbi/v2?bvid=...&cid=... → 拿 subtitle 列表(subtitle_url 已带 auth_key) - 优先级:人工中文 > AI 中文 > 任意中文 > 任意非空 - fetch JSON body 解析为 TranscriptResult - 通过 CookieConfigManager 自动注入 SESSDATA cookie(AI 字幕必需) bilibili_downloader.download_subtitles 顺序改为:先试新 fetcher,失败再回退到原 yt-dlp 路径。NoteGenerator 的字幕优先逻辑无需改动——它本来就调 download_subtitles。 效果: - B 站视频如果有字幕(人工或 AI),直接秒拿,跳过音频下载 + 转写 - 完全绕开 MLX Whisper 不可用 / 模型未下载 等转写器问题 - 拿不到字幕时仍可走原音频转写路径 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>