受影响的工作区
后端 (backend/)
版本
v2.1.0
部署方式
源码运行
复现步骤
Bug 报告:合集分P视频字幕拉取时 p= 参数丢失
严重程度: 🔴 致命 — 合集视频的笔记内容永远是错的
复现步骤:
- 粘贴一个合集/分P视频链接,例如:
https://www.bilibili.com/video/BV1JmB8BjEnT?...&p=4
- 等待下载和笔记生成完成
- 观察生成的笔记内容
实际结果:
笔记内容是第1集的,不是第4集的。
根因:
BiliNote 内部两个模块对 p= 参数处理不一致:
模块 行为 结果
───────────────────────────── ─────────────── ─────────────────────────────────────────────
视频/音频下载(yt-dlp) ✅ 正确识别 p=4 文件名为 BVxxx_p4.mp3
字幕下载(bilibili_subtitle) ❌ 只取裸 BV ID 日志:B站直拉字幕成功: BV1JmB8BjEnT(无 _p4)
B 站合集视频不传 p 参数时默认返回第1集字幕。所以:
· 音频下对了(第4集 ✅)
· 字幕拉错了(第1集 ❌)
· 笔记用了错的字幕内容
日志证据:
2026-06-10 10:34:57 [INFO] app.downloaders.bilibili_subtitle - B站直拉字幕成功: BV1JmB8BjEnT lan=ai-zh 共 286 段
2026-06-10 10:35:17 [INFO] app.db.video_task_dao - Video task inserted. video_id: BV1JmB8BjEnT_p4
第一行拉字幕只用了 BV1JmB8BjEnT (无分P信息)
第二行视频任务正确带了 BV1JmB8BjEnT_p4
建议修复:
bilibili_subtitle 模块在拉取字幕时,应从链接中提取 p= 参数并传给 B 站 API,或者使用对应的 cid (每个分P有独立的
cid)。音频下载部分引用的 cid=34916861345 是正确的(对应 p4),字幕模块复用这个 cid 即可。
期望行为
建议修复:
bilibili_subtitle 模块在拉取字幕时,应从链接中提取 p= 参数并传给 B 站 API,或者使用对应的 cid (每个分P有独立的
cid)。音频下载部分引用的 cid=34916861345 是正确的(对应 p4),字幕模块复用这个 cid 即可。
实际行为
我试过很多次了,B站合集类型的视频无法正确生成对应的笔记,永远是我第一次给出的第三集内容
运行环境
操作系统 Windows 10.0.26200.8457(预览版)
Python 3.13(Microsoft Store)
pip 26.0.1
Node.js v24.14.0
yt-dlp 2026.06.09
FFmpeg 8.1.1-full_build
BiliNote app.exe 15.9 MiB(2026-06-06)
BiliNoteBackend.exe 27.5 MiB(2026-06-06)
浏览器 Chrome(用于获取 cookie)
日志 / 堆栈
日志证据:
2026-06-10 10:34:57 [INFO] app.downloaders.bilibili_subtitle - B站直拉字幕成功: BV1JmB8BjEnT lan=ai-zh 共 286 段
2026-06-10 10:35:17 [INFO] app.db.video_task_dao - Video task inserted. video_id: BV1JmB8BjEnT_p4, platform: bilibili,
task_id: 41828536
第一行拉字幕只用了 BV1JmB8BjEnT (无分P信息)
第二行视频任务正确带了 BV1JmB8BjEnT_p4
音频文件信息确认下载正确:
json
{
"title": "黑马程序员2026最新版...p04 第1章-004-TikTok跨境店铺与本土店铺的区别",
"file_path": "D:\\BiliNote\\data\\BV1JmB8BjEnT_p4.mp3",
"video_id": "BV1JmB8BjEnT_p4"
}
原因
B 站合集视频不传 p 参数时,默认返回第1集字幕。所以:
· ✅ 音频下对了(第4集)
· ❌ 字幕拉错了(第1集)
· ❌ 笔记用了错的字幕内容
· ❌ 每次都复现,不是偶发
提交前自查
受影响的工作区
后端 (backend/)
版本
v2.1.0
部署方式
源码运行
复现步骤
Bug 报告:合集分P视频字幕拉取时 p= 参数丢失
严重程度: 🔴 致命 — 合集视频的笔记内容永远是错的
复现步骤:
https://www.bilibili.com/video/BV1JmB8BjEnT?...&p=4
实际结果:
笔记内容是第1集的,不是第4集的。
根因:
BiliNote 内部两个模块对 p= 参数处理不一致:
模块 行为 结果
───────────────────────────── ─────────────── ─────────────────────────────────────────────
视频/音频下载(yt-dlp) ✅ 正确识别 p=4 文件名为 BVxxx_p4.mp3
字幕下载(bilibili_subtitle) ❌ 只取裸 BV ID 日志:B站直拉字幕成功: BV1JmB8BjEnT(无 _p4)
B 站合集视频不传 p 参数时默认返回第1集字幕。所以:
· 音频下对了(第4集 ✅)
· 字幕拉错了(第1集 ❌)
· 笔记用了错的字幕内容
日志证据:
2026-06-10 10:34:57 [INFO] app.downloaders.bilibili_subtitle - B站直拉字幕成功: BV1JmB8BjEnT lan=ai-zh 共 286 段
2026-06-10 10:35:17 [INFO] app.db.video_task_dao - Video task inserted. video_id: BV1JmB8BjEnT_p4
第一行拉字幕只用了 BV1JmB8BjEnT (无分P信息)
第二行视频任务正确带了 BV1JmB8BjEnT_p4
建议修复:
bilibili_subtitle 模块在拉取字幕时,应从链接中提取 p= 参数并传给 B 站 API,或者使用对应的 cid (每个分P有独立的
cid)。音频下载部分引用的 cid=34916861345 是正确的(对应 p4),字幕模块复用这个 cid 即可。
期望行为
建议修复:
bilibili_subtitle 模块在拉取字幕时,应从链接中提取 p= 参数并传给 B 站 API,或者使用对应的 cid (每个分P有独立的
cid)。音频下载部分引用的 cid=34916861345 是正确的(对应 p4),字幕模块复用这个 cid 即可。
实际行为
我试过很多次了,B站合集类型的视频无法正确生成对应的笔记,永远是我第一次给出的第三集内容
运行环境
操作系统 Windows 10.0.26200.8457(预览版)
Python 3.13(Microsoft Store)
pip 26.0.1
Node.js v24.14.0
yt-dlp 2026.06.09
FFmpeg 8.1.1-full_build
BiliNote app.exe 15.9 MiB(2026-06-06)
BiliNoteBackend.exe 27.5 MiB(2026-06-06)
浏览器 Chrome(用于获取 cookie)
日志 / 堆栈
提交前自查