把你在 B 站收藏的访谈/演讲/课程,变成可检索、可追溯来源的个人知识库。
适合:访谈/演讲/课程、技术视频与学习视频整理、公开课复盘、知识总结、会议/分享回顾、播客内容归档等。
亮点:自动拉取内容 → 语音转写 → 向量检索 → 对话问答

一键部署,前后端不分离,所有功能统一入口:
# 1. 配置环境变量
cp .env.example .env
# 编辑 .env,填写 DASHSCOPE_API_KEY
# 2. 构建并启动
docker-compose -f docker-compose.image.yml up -d
访问:
说明:前端已打包为静态文件,由 FastAPI 统一提供服务,无需单独启动前端服务。
详细 Docker 部署文档:DOCKER_README.md
brew install ffmpegbin 目录加入 PATHapt/yum/pacman 安装 ffmpegpip install -r requirements.txt
cd frontend
npm install
npm run build
cd ..
cp .env.example .env
# 编辑 .env,填写 DashScope API Key 等配置
python -m uvicorn app.main:app --reload
访问:
开发模式:修改前端代码后需要重新运行 cd frontend && npm run build
本仓库已提供一个可直接使用的 Skill:skills/bilibili-rag-local/SKILL.md。
作用:把本地运行的 bilibili-rag 服务接入 OpenClaw,让 OpenClaw 直接调用你的收藏夹知识库进行检索和问答。
http://127.0.0.1:8000/docs。skills/bilibili-rag-local 放到 OpenClaw 的 Skills 目录(例如 ~/.openclaw/skills/)。POST /chat/ask(问答)POST /chat/search(检索片段)GET /knowledge/folders/status(入库状态)你可以在 skills/ 目录继续开发更多 Skill,把收藏夹真正变成可持续运营的知识系统。
例如结合 OpenClaw 的定时能力(Cron)做自动化:
注意:
test/目录下的脚本需要 移动到项目根目录 再运行(依赖相对路径与配置)。
debug_asr_single.py:测试单个视频是否能正确获取音频diagnose_rag.py:测试向量检索召回是否准确sync_cache_vectors.py:同步数据库缓存数据到向量库部分 B 站音频 URL 可能返回 403(直链不可拉取),系统会自动执行兜底流程:
请确保本机已安装
ffmpeg并加入 PATH。
模型相关费用包括:
建议:
bilibili-rag/ ├── app/ # 后端逻辑 ├── frontend/ # 前端静态资源 ├── data/ # 数据库与向量库 ├── skills/ # OpenClaw Skills(含 bilibili-rag-local) ├── test/ # 测试脚本(需移动到根目录再运行) ├── Dockerfile # Docker 镜像构建文件 ├── docker-compose.yml # Docker Compose 配置 ├── Makefile # 快捷命令管理 └── README.md
Q:为什么有些音频 URL 可达、有些不可达?
A:B 站音频直链存在鉴权/过期/区域限制,只有公网可直接拉取的 URL 才可达。
免责声明:本项目仅供个人学习与技术研究,使用者需自行遵守相关平台协议与法律法规,禁止用于未授权的商业或违规用途。
MIT