Files
BiliNote/BillNote_extension
huangjianwu 406789f834 feat(extension+backend): 插件直接在浏览器里抓 B 站字幕,跳过后端 download_subtitles
之前 B 站字幕优先逻辑放在后端的 BilibiliSubtitleFetcher,需要后端通过 CookieConfigManager
管理 SESSDATA cookie 才能拿 AI 字幕。这次改为:插件在用户浏览器里直接抓字幕,
天然带着用户当前登录态的 cookie;后端只负责把传过来的字幕当作转写缓存。

extension:
- 新增 logic/bilibili-subtitle.ts,调 /x/web-interface/view → /x/player/wbi/v2 → 字幕 URL JSON
  · service worker fetch 走 credentials:'include',借 manifest host_permissions:'*://*/*'
    自动带 .bilibili.com 域 cookie,并绕过 CORS
  · 优先级:人工中文 > AI 中文 > 任意非空
- popup start() 与 background startTask() 在 platform === 'bilibili' 时先调一次抓取,
  结果作为 prefetched_transcript 字段塞到 /api/generate_note payload
- types.ts GenerateRequest 增加 prefetched_transcript 字段

backend:
- VideoRequest 增加可选 prefetched_transcript: dict
- generate_note endpoint 收到时调 _persist_prefetched_transcript() 写到
  NOTE_OUTPUT_DIR/<task_id>_transcript.json;NoteGenerator 的 cache-hit 逻辑天然命中,
  跳过 downloader.download_subtitles 和音频转写,直接走 GPT 总结
- 字幕清洗:去掉空 segment、必要时合成 full_text、language 默认 'zh'

效果:B 站登录用户的视频,从用户点击到 GPT 拿到全文,省掉一次后端 → B 站 API 的来回,
也彻底告别了 backend 那侧的 cookie 配置心智负担。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:23:16 +08:00
..
2026-05-07 11:40:15 +08:00

BiliNote 浏览器插件

把 BiliNote 的"视频链接 → Markdown 笔记"能力下沉到浏览器插件。当前为 P1 MVP仅工具栏 popup

当前状态P1 MVP

  • 工具栏图标 popup自动读当前 tab URL识别支持平台触发笔记生成
  • 设置页:后端地址、供应商/模型、画质、截图/跳转/风格默认值
  • 任务进度可视化、Markdown 渲染、复制 / 下载 .md
  • chrome.storage.local 持久化设置和最近 30 个任务
  • P2视频页悬浮按钮 + 右键菜单 + 浏览器 cookie 直通
  • P3side panel + 思维导图markmap
  • P4RAG 问答

开发

依赖node 20+ / pnpm 9+

cd BillNote_extension
pnpm install
pnpm dev      # watch 模式,产物输出到 ./extension/

加载到 Chrome

  1. chrome://extensions/ → 打开右上"开发者模式"
  2. 点"加载已解压的扩展程序",选 BillNote_extension/extension/ 目录
  3. 启动后端:cd backend && python main.py(默认 8483
  4. 浏览器开任意支持的视频页B 站 / YouTube / 抖音 / 快手),点工具栏 BiliNote 图标
  5. 首次使用先打开"设置",填后端地址 → 选供应商 + 模型

后端要求

后端 backend/main.py 的 CORS 白名单已通过 regex 兼容 chrome-extension://moz-extension:// 与本地 web。无需新增任何 backend endpoint。

构建发布

pnpm build         # 产物 → ./extension/
pnpm pack:zip      # 打包 → ./extension.zip (上传 Chrome Web Store
pnpm pack:crx      # 打包 → ./extension.crx
pnpm pack:xpi      # 打包 → ./extension.xpi Firefox

与桌面端的关系

桌面 web 端(BillNote_frontend/)继续负责:供应商/模型管理、转写器配置、笔记历史。 插件复刻这些管理界面,仅消费已配置好的供应商。

致谢

骨架基于 vitesse-webextAntfu