我把 B 站收藏夹做成了可对话的知识库:收藏不吃灰,RAG 一键复盘
适合:访谈/演讲/课程、技术学习视频整理、公开课复盘、知识总结、会议/分享回顾、播客内容归档等。(GitHub)
很多人(包括我)在 哔哩哔哩 收藏夹里屯了大量视频:访谈、课程、公开课、技术分享……收藏时觉得“以后一定看”,结果越堆越多,想找某个观点/片段时又完全想不起来在哪个视频哪一段。
我就做了一个开源项目:把 B 站收藏夹 → 语音转写 → 向量检索 → 对话问答 串起来,让收藏夹变成“可检索、可追溯来源”的个人知识库。项目放在 GitHub 上:(GitHub)
这个项目能做什么
一句话:把你收藏的视频,变成能问问题、能追溯答案出处的 RAG 知识库。
功能点(按 README):
- ✅ B 站扫码登录,读取收藏夹
- ✅ 音频转文字(ASR),并处理“音频不可达”等情况
- ✅ 语义检索(向量检索)
- ✅ 基于 RAG 的对话问答
- ✅ 本地 SQLite + ChromaDB 存储
你可以把它理解为:把视频内容“结构化成可检索的记忆” ,以后复盘/查资料不用再拉进度条翻半天。
工作流程(从收藏到可问答)
整体流程很直:
- 选择收藏夹
- 拉取视频 → 音频转写(ASR)
- 生成向量 → 构建知识库
- 对话/检索问答
它的亮点之一是“兜底”:有些视频音频直链会 403 或过期,项目会自动走兜底流程(带 Cookie 下载音频 → ffmpeg 转码 → 上传到 DashScope 再识别)。
演示与截图
视频演示:【别让收藏夹吃灰:我把 B站收藏夹变成“可问可搜”的 AI 知识库-哔哩哔哩】 b23.tv/bGXyhjU
3 步快速开始(真·能跑起来那种)
按 README 的“3 步”来(我把关键点强调一下)。
0)先装 ffmpeg(必须)
- macOS:
brew install ffmpeg - Linux:
apt/yum/pacman安装ffmpeg - Windows:安装后把
bin加到 PATH([GitHub]
1)安装依赖
项目用 Python 依赖(requirements.txt):
# 建议你自己建个环境
conda create -n bilibili-rag python=3.10 -y
conda activate bilibili-rag
pip install -r requirements.txt
2)配置环境变量
cp .env.example .env
# 编辑 .env,填写 DashScope API Key 等配置
这里的 DashScope 属于 阿里云 的模型服务(你也可以后续改成别家的 LLM/Embedding/ASR)。
3)启动后端 + 前端
后端(FastAPI):
python -m uvicorn app.main:app --reload
后端文档:
http://localhost:8000/docs
前端(Next.js):
cd frontend
npm install
npm run dev
前端页面:
http://localhost:3000
你大概率会遇到的 2 个坑(我提前写在这)
1)音频直链 403 / 失效
这不是你代码的问题,B 站音频直链本来就有鉴权/过期/区域限制。项目的兜底策略是:
- 本地下载音频(带 Cookie)
- ffmpeg 转成 16k 单声道
- 上传到 DashScope 再识别
所以:ffmpeg 一定要装好,Cookie/登录也要能成功。
2)成本(别一上来就跑几百个视频)
README 里写得很清楚:成本主要来自三块——LLM 对话、Embedding、ASR(按时长)。建议你先用10 分钟左右短视频跑通流程,确认效果和费用,再批量处理。
技术栈一览(给想抄作业的同学)
- 后端:FastAPI
- LLM:LangChain + DashScope
- 向量库:ChromaDB
- 前端:Next.js + Tailwind
- 数据库:SQLite (这个组合的好处是:本地就能落地,不会一上来就被各种“企业级组件”劝退。)
项目里我专门做了“测试与诊断脚本”
debug_asr_single.py:测试单个视频能否正确获取音频diagnose_rag.py:测试向量检索召回是否准确sync_cache_vectors.py:同步数据库缓存数据到向量库([GitHub]
Roadmap(下一步做什么)
- 会话管理/对话存储/检索历史对话
- 支持 B 站分 P 视频
- 适配更多 LLM 与向量模型 如果你也在做“视频知识库 / 学习资料整理 / RAG 应用”,欢迎一起讨论方向。
最后:
如果它对你有用,点个 star 就是对我最大的鼓励;也非常欢迎提 Issue / PR,一起把它打磨成更顺手的“视频知识库工具”。