AI 视频笔记生成工具 让 AI 为你的视频做笔记
不想折腾部署?访问 www.bilinote.app 即开即用 —— 免安装、免配置环境、免下模型,注册即可把视频转成笔记。
本地部署遇到的依赖、代理、模型下载这些坑,云端版统统不用管。
BiliNote 是一个开源的 AI 视频笔记助手,支持通过哔哩哔哩、YouTube、抖音等视频链接,自动提取内容并生成结构清晰、重点明确的 Markdown 格式笔记。支持插入截图、原片跳转、AI 问答等功能。
💡 想直接用、不想本地部署? —— BiliNote Pro 在线版 www.bilinote.app 已上线,云端托管、开箱即用,省去依赖安装 / 代理配置 / 模型下载的全部麻烦。
直接访问 www.bilinote.app 即可使用 BiliNote Pro 在线版,无需本地部署。
详细文档可以查看这里
本项目提供了 Windows 和 macOS 桌面客户端,可在 Releases 页面下载最新版本。
Windows 用户请注意:一定要在没有中文路径的环境下运行。
提供 BiliNote AI笔记系统一对一搭建服务:专人一对一远程协助,从环境部署、模型配置到上手使用全程陪跑,帮你快速跑通整套系统。扫码添加微信,备注「搭建服务」即可咨询:
BiliNote AI笔记系统一对一搭建服务 |
HTTP_PROXY 环境变量兜底model.bin 截断时自动删除重下;空 API Key / 新模型 temperature 不兼容给出清晰提示BASE_REGISTRY 可换国内镜像源、restart 策略修正、.env.example 端口与默认模型修正、新增部署 FAQ/deploy_status 在没装 torch 的部署 500UniversalGPT 的 message builder 按是否带图切换 string / 多模态数组形态BilibiliSubtitleFetcher:非插件场景下走 player API 拿字幕,作为 yt-dlp 兜底

确保已安装 Docker,直接拉取预构建镜像运行:
docker pull ghcr.io/jefferyhcool/bilinote:latest
docker run -d -p 80:80 \
-v bilinote-data:/app/backend/data \
-v bilinote-config:/app/backend/config \
-v bilinote-static:/app/backend/static \
-v bilinote-models:/app/backend/models \
--name bilinote \
ghcr.io/jefferyhcool/bilinote:latest
上面四个卷分别持久化:data(SQLite 数据库 + 生成的笔记)、config(LLM 供应商配置 / Cookie / 转写设置)、static(笔记引用的视频截图)、models(Whisper 模型缓存,可选,避免每次重新下载)。这样 docker pull 升级新镜像、删旧容器重建后,配置和历史都不会丢。
⚠️ 不要用
-v 卷名:/app/backend挂整个后端目录——命名卷会用首次启动时的镜像内容固化,之后docker pull升级也会被旧代码盖住,导致「升级不生效」。只挂上面这些数据子目录即可。
访问:http://localhost
也可以使用 docker-compose 本地构建:
cp .env.example .env # 第一次部署务必先创建 .env,否则 BACKEND_PORT/APP_PORT 等变量为空会启动失败
docker-compose up --build -d
# GPU 加速部署(需要 NVIDIA GPU + NVIDIA Container Toolkit)
docker-compose -f docker-compose.gpu.yml up --build -d
社区反馈最集中的几个坑,遇到先按下面排查:
0. 国内拉不到 docker.io(build 阶段报 dial tcp ... i/o timeout)
docker-compose build 拉 python:3.11-slim / node:20-alpine / nginx:1.25-alpine 时连 auth.docker.io 超时。三种解法,按推荐顺序:
docker pull ghcr.io/jefferyhcool/bilinote:latest 路径,ghcr.io 在国内通常比 docker.io 顺。~/.docker/daemon.json(Linux 在 /etc/docker/daemon.json),加:
json
{
"registry-mirrors": ["https://docker.m.daocloud.io"]
}
然后重启 Docker Desktop / sudo systemctl restart docker。这是一劳永逸的做法。BASE_REGISTRY build-arg:
bash
BASE_REGISTRY=docker.m.daocloud.io docker-compose build
docker-compose up -d
或永久写到 .env:echo 'BASE_REGISTRY=docker.m.daocloud.io' >> .env。注意:Chinese 公共 docker 镜像源时常被关停,2025-2026 之间可用的列表会变;如果 docker.m.daocloud.io 不通,搜一下"Docker 镜像加速 可用"找最新可用源即可。
1. 容器一直 restart / unhealthy
先看后端日志:
docker logs -f bilinote-backend
后端启动会按顺序打印 [startup 1/5] ... [startup 5/5] 启动完成。若日志卡在某一步或出现 [startup FAILED],就是那一步的问题,常见:
- 卡在 [startup 3/5]:转写器配置读不到。检查 .env 里 TRANSCRIBER_TYPE 是否写错,mlx-whisper 只能在 Apple Silicon 用,Linux/Docker 请用 fast-whisper 或 groq。
- 首次跑视频时容器被 kill:whisper 模型下载触发 OOM。先把 .env 里 WHISPER_MODEL_SIZE 改成 tiny,跑通后再去前端「音频转写配置」里逐档升。
2. 改了 .env 没生效
区分两类变量:
- VITE_* 是构建时变量(前端 bundle 里硬编码),改完必须 docker-compose build frontend && docker-compose up -d。只 restart 不会重新打包。
- 其他后端变量(TRANSCRIBER_TYPE、WHISPER_MODEL_SIZE、FFMPEG_BIN_PATH 等)是运行时变量,改完 docker-compose up -d 即可。
注意:LLM API key 不要写 .env,从前端「模型供应商」页面录入,会保存到 SQLite 数据库并持久化。
3. 数据存在哪?删容器会丢吗?
docker-compose 用的是 ./backend:/app 绑挂,下面这些文件都在宿主机的 ./backend/ 目录里、删容器不会丢:
- ./backend/bili_note.db —— SQLite 库(含 LLM 供应商配置、笔记历史)
- ./backend/config/transcriber.json —— 转写器运行时配置
- ./backend/static/screenshots/ —— 视频截图
- ./backend/uploads/ —— 上传的本地视频
要彻底重置就 docker-compose down && rm backend/bili_note.db backend/config/transcriber.json。
4. 前端打开是空白页 / 报 502
通常是 nginx 起来了但 backend 还没 healthy。docker ps 看 backend 容器 STATUS 是不是 (healthy);若长期 (unhealthy),按问题 1 排查后端日志。
5. 不要用 restart: on-failure:N
如果你 fork 后改过 compose 文件、把 restart 策略改成了 on-failure:3:任何 3 次连续崩溃都会让容器永远不再启动,之后改 .env 也没用。本项目自带的 compose 已经统一用 unless-stopped。
git clone https://github.com/JefferyHcool/BiliNote.git
cd BiliNote
mv .env.example .env
cd backend
pip install -r requirements.txt
python main.py
cd BillNote_frontend
pnpm install
pnpm dev
访问:http://localhost:3015
本项目依赖 ffmpeg 用于音频处理与转码,源码部署时必须安装:
# Mac (brew)
brew install ffmpeg
# Ubuntu / Debian
sudo apt install ffmpeg
# Windows
# 请从官网下载安装:https://ffmpeg.org/download.html
⚠️ 若系统无法识别 ffmpeg,请将其加入系统环境变量 PATH
Docker 部署已内置 FFmpeg,无需额外安装。
本地 Faster Whisper 转写可用 NVIDIA GPU 加速(在线引擎 Groq / 必剪 / 快手 与 GPU 无关)。仓库已自带 GPU 镜像与编排,无需改代码、无需手动配置 device——后端会自动检测 CUDA,可用就走 GPU,否则回退 CPU。
1. 宿主机前提
nvidia-smi 能正常输出;bash
docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi
能列出显卡即 OK。2. 切换到 GPU 编排(在源码目录里)
CPU 与 GPU 两套 compose 用了相同的容器名,先停掉当前栈再起 GPU 栈:
docker-compose down # 停掉当前(CPU)栈
docker-compose -f docker-compose.gpu.yml up --build -d # 用 GPU 栈重建
backend/Dockerfile.gpu(CUDA 12.4.1 + cuDNN 基础镜像,并额外装 torch 用于 CUDA 检测),compose 已声明 deploy...devices: nvidia 自动透传 GPU。./backend 整目录绑挂进容器,数据库 / 配置 / 已下载模型都保留。3. 启用并确认
large-v3)。docker logs bilinote-backend | grep -i cuda 看到 CUDA 可用,使用 GPU;或转写时宿主机 nvidia-smi 能看到 python 进程占显存。国内镜像:GPU compose 支持 BASE_REGISTRY / APT_MIRROR / PIP_INDEX 这几个 build-arg(注意 BASE_REGISTRY 选的源必须支持 nvidia/cuda 命名空间,否则拉不到 CUDA 基础镜像)。
起来了但没走 GPU? 依次排查:① 宿主机 nvidia-smi 是否正常 → ② NVIDIA Container Toolkit 是否装好(上面 --gpus all 测试是否通过)→ ③ docker logs bilinote-backend 是否有 CUDA / cuDNN 报错(驱动 CUDA 版本需 ≥ 12.4)。
fast-whisper 本身的 GPU 依赖说明可参考:faster-whisper 项目
确保你已安装 Docker,然后直接拉取预构建镜像运行:
# 拉取最新镜像
docker pull ghcr.io/jefferyhcool/bilinote:latest
# 运行容器
docker run -d -p 80:80 \
-v bilinote-data:/app/backend/data \
-v bilinote-config:/app/backend/config \
-v bilinote-static:/app/backend/static \
-v bilinote-models:/app/backend/models \
--name bilinote \
ghcr.io/jefferyhcool/bilinote:latest
上面四个卷分别持久化:data(SQLite 数据库 + 生成的笔记)、config(LLM 供应商配置 / Cookie / 转写设置)、static(笔记引用的视频截图)、models(Whisper 模型缓存,可选,避免每次重新下载)。这样 docker pull 升级新镜像、删旧容器重建后,配置和历史都不会丢。
⚠️ 不要用
-v 卷名:/app/backend挂整个后端目录——命名卷会用首次启动时的镜像内容固化,之后docker pull升级也会被旧代码盖住,导致「升级不生效」。只挂上面这些数据子目录即可。
访问:http://localhost
也可以使用 docker-compose 本地构建:
# 标准部署
docker-compose up -d
# GPU 加速部署(需要 NVIDIA GPU + NVIDIA Container Toolkit,详见上方「CUDA / GPU 加速」)
docker-compose -f docker-compose.gpu.yml up --build -d
扫描下方公众号二维码,关注后回复 「交流群」 即可获取最新的微信交流群二维码(群码会自动更新,避免过期失效):
BiliNote 公众号 |
抖音下载功能 部分代码参考引用自:Evil0ctal/Douyin_TikTok_Download_APIMIT License
💬 你的支持与反馈是我持续优化的动力!欢迎 PR、提 issue、Star ⭐️
如果你觉得项目对你有帮助,考虑支持我一下吧
<img width='30%' src='https://common-1304618721.cos.ap-chengdu.myqcloud.com/8986c9eb29c356a0cfa3d470c23d3b6.jpg'/>
<img width='30%' src='https://common-1304618721.cos.ap-chengdu.myqcloud.com/2a049ea298b206bcd0d8b8da3219d6b.jpg'/>
$ claude mcp add BiliNote \
-- python -m otcore.mcp_server <graph>