
🌸你好呀!我是断弦承露
🌟感谢陪伴~ 小白博主在线求友
🌿 跟着小白学/Java/软件设计/鸿蒙开发/芯片开发
📖专栏汇总:
《软件设计师》专栏 | 《Java》专栏 | 《 RISC-V 处理器实战》专栏 | 《Flutter鸿蒙实战》专栏 | 《React Native开发》专栏
——|CSDN|——
文章目录
- 🚀 BiliNote部署教程:本地+Docker双方案,小白也能轻松上手!
- 强调: Windows 想本地部署 BiliNote 真的很难!!!强烈推荐下载Windows打包版
-
- 📝 摘要
- 🧠 文章思维导图
- 🔄 部署流程图
- 一、环境准备必做,一个都不能少!🎯
-
- 1. 安装Git代码版本管理工具
- 2. 安装Python 3.10+后端运行环境
- 3. 安装Node.js 18+和pnpm前端运行环境
- 4. 安装FFmpeg音视频处理核心依赖
-
- Windows系统:
- Linux/Mac系统:
- 二、部署方式二选一,新手推荐Docker!🐳
-
- 方式一:本地运行适合想折腾代码的开发者
-
- 1️⃣ 第一大步:下载项目代码并配置
-
- ① 打开终端
- ② 下载代码
- 方案一:【小白首选!零门槛,不用git命令】
- 方案二:【换国内镜像地址,一行命令解决】
-
-
- ③ 进入项目文件夹
- ④ 复制配置文件
- 2️⃣ 第二大步:启动后端服务(FastAPI)
- ① 进入后端文件夹
- ② 安装后端需要的依赖(用国内镜像,下载更快)
- ③ 启动后端!
-
- 3️⃣ 第三大步:启动前端界面(Vite + React)
-
- ① 新开一个终端
- ② 进入前端文件夹(⚠️ 这里名字很容易敲错!注意看!)
- ③ 安装前端依赖
- ④ 启动前端!
- 🎉 最后一步:打开界面开始用!
- 按回车,你就能看到 BiliNote 的界面啦!
- ❓ 新手常见问题急救包
-
- 方式二:Docker一键部署推荐新手/[NAS用户](https://blog.csdn.net/2602_94958286/article/details/159214421?spm=1011.2415.3001.10575&sharefrom=mp_manage_link)
-
- 前提:先装Docker和Docker Compose
- 版本1:最新版从主仓库构建
- 版本2:稳定版官方预构建镜像
- 配置.env文件关键!📝
- 访问与验证
- 三、核心配置让BiliNote真正能用!⚙️
-
- 1. 配置AI模型以DeepSeek为例,免费额度够用!
- 2. 语音转写配置本地免费,不用花钱!
- 3.
- 第一步:找到安装包的 `.env` 配置文件
- 两种解决办法(按顺序试)
-
- 方法一:手动创建 `.env` 文件(最直接)
- 方法二:检查 `config` 文件夹
- 补充说明
- 第二步:修改语音转写配置(复制粘贴就行)
- 第三步:重启BiliNote(让配置生效)
- 核心提醒(安装包专属)
- 四、生成你的第一条视频笔记!📹
- 五、常见问题FAQ新手必看!❓
-
- Q1:前端启动报错,说找不到`BillNote_frontend`目录?
- Q2:启动时提示端口被占用,怎么办?
- Q3:`ffmpeg -version`提示“不是内部或外部命令”?
- Q4:测试模型连通性失败,怎么办?
- Q5:生成笔记特别慢,怎么办?
- Q6:Docker部署后,访问`http://localhost:3015`打不开?
- Q7:早就配置过 FFmpeg 环境变量但仍提示未安装
-
- 办法1:强制指定FFmpeg路径到.env(最直接,1分钟搞定)
- 办法2:验证FFmpeg是否真的配置成功(排查假配置)
- 办法3:替换安装包内置的FFmpeg(终极方案)
- 核心总结
- 六、项目资源与反馈📚
- 总结🎯
🚀 BiliNote部署教程:本地+Docker双方案,小白也能轻松上手!

强调: Windows 想本地部署 BiliNote 真的很难!!!强烈推荐下载Windows打包版
[BiliNote链接:https://pan.baidu.com/s/11HZVawBFkMj0X15cmf2t7g 提取码:BNJF] 安装包下好后就可以跳到 三、核心配置哪里进行接下来的操作了,当然,你硬要本地部署本文也有教程
📝 摘要
本文面向纯小白,手把手教你从零部署BiliNote——这款超好用的开源AI视频笔记工具!我们会覆盖环境准备(Git、Python、Node.js、FFmpeg)、本地运行和Docker一键部署双方案,还有AI模型配置、语音转写设置、抖音Cookie获取,最后教你生成第一条视频笔记。文末附FAQ解决99%新手坑,跟着走就能跑通!
🧠 文章思维导图
#mermaid-svg-oAlu766VNANGF5YQ{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-oAlu766VNANGF5YQ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-oAlu766VNANGF5YQ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-oAlu766VNANGF5YQ .error-icon{fill:#552222;}#mermaid-svg-oAlu766VNANGF5YQ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-oAlu766VNANGF5YQ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-oAlu766VNANGF5YQ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-oAlu766VNANGF5YQ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-oAlu766VNANGF5YQ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-oAlu766VNANGF5YQ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-oAlu766VNANGF5YQ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-oAlu766VNANGF5YQ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-oAlu766VNANGF5YQ .marker.cross{stroke:#333333;}#mermaid-svg-oAlu766VNANGF5YQ svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-oAlu766VNANGF5YQ p{margin:0;}#mermaid-svg-oAlu766VNANGF5YQ .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-oAlu766VNANGF5YQ .cluster-label text{fill:#333;}#mermaid-svg-oAlu766VNANGF5YQ .cluster-label span{color:#333;}#mermaid-svg-oAlu766VNANGF5YQ .cluster-label span p{background-color:transparent;}#mermaid-svg-oAlu766VNANGF5YQ .label text,#mermaid-svg-oAlu766VNANGF5YQ span{fill:#333;color:#333;}#mermaid-svg-oAlu766VNANGF5YQ .node rect,#mermaid-svg-oAlu766VNANGF5YQ .node circle,#mermaid-svg-oAlu766VNANGF5YQ .node ellipse,#mermaid-svg-oAlu766VNANGF5YQ .node polygon,#mermaid-svg-oAlu766VNANGF5YQ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-oAlu766VNANGF5YQ .rough-node .label text,#mermaid-svg-oAlu766VNANGF5YQ .node .label text,#mermaid-svg-oAlu766VNANGF5YQ .image-shape .label,#mermaid-svg-oAlu766VNANGF5YQ .icon-shape .label{text-anchor:middle;}#mermaid-svg-oAlu766VNANGF5YQ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-oAlu766VNANGF5YQ .rough-node .label,#mermaid-svg-oAlu766VNANGF5YQ .node .label,#mermaid-svg-oAlu766VNANGF5YQ .image-shape .label,#mermaid-svg-oAlu766VNANGF5YQ .icon-shape .label{text-align:center;}#mermaid-svg-oAlu766VNANGF5YQ .node.clickable{cursor:pointer;}#mermaid-svg-oAlu766VNANGF5YQ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-oAlu766VNANGF5YQ .arrowheadPath{fill:#333333;}#mermaid-svg-oAlu766VNANGF5YQ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-oAlu766VNANGF5YQ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-oAlu766VNANGF5YQ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-oAlu766VNANGF5YQ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-oAlu766VNANGF5YQ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-oAlu766VNANGF5YQ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-oAlu766VNANGF5YQ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-oAlu766VNANGF5YQ .cluster text{fill:#333;}#mermaid-svg-oAlu766VNANGF5YQ .cluster span{color:#333;}#mermaid-svg-oAlu766VNANGF5YQ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-oAlu766VNANGF5YQ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-oAlu766VNANGF5YQ rect.text{fill:none;stroke-width:0;}#mermaid-svg-oAlu766VNANGF5YQ .icon-shape,#mermaid-svg-oAlu766VNANGF5YQ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-oAlu766VNANGF5YQ .icon-shape p,#mermaid-svg-oAlu766VNANGF5YQ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-oAlu766VNANGF5YQ .icon-shape .label rect,#mermaid-svg-oAlu766VNANGF5YQ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-oAlu766VNANGF5YQ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-oAlu766VNANGF5YQ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-oAlu766VNANGF5YQ :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
BiliNote部署教程
环境准备
部署方式
核心配置
使用流程
常见问题FAQ
安装Git
安装Python 3.10+
安装Node.js 18+和pnpm
安装FFmpeg
本地运行适合开发者
Docker一键部署推荐新手
配置AI模型以DeepSeek为例
语音转写配置本地免费
抖音Cookie配置可选
输入视频链接
选择模型和风格
生成笔记
前端目录名错误
端口被占用
FFmpeg未生效
模型连通失败
生成笔记慢
🔄 部署流程图
#mermaid-svg-eV5MWfWVSx7uyHV9{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-eV5MWfWVSx7uyHV9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-eV5MWfWVSx7uyHV9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-eV5MWfWVSx7uyHV9 .error-icon{fill:#552222;}#mermaid-svg-eV5MWfWVSx7uyHV9 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-eV5MWfWVSx7uyHV9 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-eV5MWfWVSx7uyHV9 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-eV5MWfWVSx7uyHV9 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-eV5MWfWVSx7uyHV9 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-eV5MWfWVSx7uyHV9 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-eV5MWfWVSx7uyHV9 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-eV5MWfWVSx7uyHV9 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-eV5MWfWVSx7uyHV9 .marker.cross{stroke:#333333;}#mermaid-svg-eV5MWfWVSx7uyHV9 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-eV5MWfWVSx7uyHV9 p{margin:0;}#mermaid-svg-eV5MWfWVSx7uyHV9 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-eV5MWfWVSx7uyHV9 .cluster-label text{fill:#333;}#mermaid-svg-eV5MWfWVSx7uyHV9 .cluster-label span{color:#333;}#mermaid-svg-eV5MWfWVSx7uyHV9 .cluster-label span p{background-color:transparent;}#mermaid-svg-eV5MWfWVSx7uyHV9 .label text,#mermaid-svg-eV5MWfWVSx7uyHV9 span{fill:#333;color:#333;}#mermaid-svg-eV5MWfWVSx7uyHV9 .node rect,#mermaid-svg-eV5MWfWVSx7uyHV9 .node circle,#mermaid-svg-eV5MWfWVSx7uyHV9 .node ellipse,#mermaid-svg-eV5MWfWVSx7uyHV9 .node polygon,#mermaid-svg-eV5MWfWVSx7uyHV9 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-eV5MWfWVSx7uyHV9 .rough-node .label text,#mermaid-svg-eV5MWfWVSx7uyHV9 .node .label text,#mermaid-svg-eV5MWfWVSx7uyHV9 .image-shape .label,#mermaid-svg-eV5MWfWVSx7uyHV9 .icon-shape .label{text-anchor:middle;}#mermaid-svg-eV5MWfWVSx7uyHV9 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-eV5MWfWVSx7uyHV9 .rough-node .label,#mermaid-svg-eV5MWfWVSx7uyHV9 .node .label,#mermaid-svg-eV5MWfWVSx7uyHV9 .image-shape .label,#mermaid-svg-eV5MWfWVSx7uyHV9 .icon-shape .label{text-align:center;}#mermaid-svg-eV5MWfWVSx7uyHV9 .node.clickable{cursor:pointer;}#mermaid-svg-eV5MWfWVSx7uyHV9 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-eV5MWfWVSx7uyHV9 .arrowheadPath{fill:#333333;}#mermaid-svg-eV5MWfWVSx7uyHV9 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-eV5MWfWVSx7uyHV9 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-eV5MWfWVSx7uyHV9 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-eV5MWfWVSx7uyHV9 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-eV5MWfWVSx7uyHV9 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-eV5MWfWVSx7uyHV9 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-eV5MWfWVSx7uyHV9 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-eV5MWfWVSx7uyHV9 .cluster text{fill:#333;}#mermaid-svg-eV5MWfWVSx7uyHV9 .cluster span{color:#333;}#mermaid-svg-eV5MWfWVSx7uyHV9 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-eV5MWfWVSx7uyHV9 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-eV5MWfWVSx7uyHV9 rect.text{fill:none;stroke-width:0;}#mermaid-svg-eV5MWfWVSx7uyHV9 .icon-shape,#mermaid-svg-eV5MWfWVSx7uyHV9 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-eV5MWfWVSx7uyHV9 .icon-shape p,#mermaid-svg-eV5MWfWVSx7uyHV9 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-eV5MWfWVSx7uyHV9 .icon-shape .label rect,#mermaid-svg-eV5MWfWVSx7uyHV9 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-eV5MWfWVSx7uyHV9 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-eV5MWfWVSx7uyHV9 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-eV5MWfWVSx7uyHV9 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
本地运行
Docker部署
开始
环境准备Git/Python/Node.js/FFmpeg
选择部署方式
克隆仓库
启动后端
启动前端
克隆部署仓库
配置.env文件
启动容器
配置AI模型和语音转写
输入视频链接生成笔记
完成
一、环境准备必做,一个都不能少!🎯
1. 安装Git代码版本管理工具
Git是用来下载项目代码的,必须装!
Git超详细教程:全流程安装使用指南https://blog.csdn.net/2602_94958286/article/details/159214713?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
- 去Git官网下载对应系统的安装包(Windows选.exe,Mac选.dmg)。
- 安装时全选默认选项,一直点“下一步”就行。
- 验证安装:打开终端(Windows用PowerShell或CMD,Mac用终端),输入:git –version
显示版本号(比如git version 2.53.0)就说明成功啦!🎉
2. 安装Python 3.10+后端运行环境
Part1_👍Python版本选择:https://blog.csdn.net/2602_94958286/article/details/159254623?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
Part2_👍Python 下载安装保姆级教程https://blog.csdn.net/2602_94958286/article/details/159290414?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
BiliNote后端是用Python写的,得装3.10以上版本。
- 去Python官网下载Python 3.11(推荐3.11,更稳定)。
- 重点! 安装时一定要勾选底部的Add python.exe to PATH,不然系统找不到Python!
- 验证安装:打开新终端(注意是新的,刚才的可能没刷新),输入:python –version
显示Python 3.11.x就OK。👍
3. 安装Node.js 18+和pnpm前端运行环境
Node.js全平台安装教程https://blog.csdn.net/2602_94958286/article/details/159317208?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
前端是用Node.js跑的,pnpm是包管理器,比npm快!
要装 pnpm,必须先用 npm 才能装上 pnpm 虽然比 npm 快,但它不是 Node.js 自带的,是第三方工具 命令:npm install -g pnpm 这个命令的意思就是「用 npm 把 pnpm 安装到全局」—— 如果 npm 没用、没装好,你连 pnpm 都装不上,根本没法进行下一步。
- 去Node.js官网下载LTS版本(长期支持版,稳定)。
- 安装时默认下一步就行,验证:node –version
npm –version
都显示版本号就继续。 - 安装pnpm:在终端输入:npm install -g pnpm
验证:pnpm –version
显示版本号就搞定!🚀
4. 安装FFmpeg音视频处理核心依赖
FFmpeg 保姆级安装教程https://blog.csdn.net/2602_94958286/article/details/159333768?spm=1011.2415.3001.10575&sharefrom=mp_manage_link FFmpeg是用来处理视频音频的,比如提取音频、截截图,必须装!
Windows系统:
- 去FFmpeg官网下载页,找到Windows EXE Files,推荐从gyan.dev下载(选release builds里的ffmpeg-git-full.7z)。
- 下载后解压,找到bin文件夹,里面有ffmpeg.exe。
- 把bin文件夹的路径添加到系统环境变量PATH:
- 右键“此电脑”→“属性”→“高级系统设置”→“环境变量”。
- 在“系统变量”里找到Path,点“编辑”→“新建”,把刚才的bin路径粘贴进去(比如D:\\ffmpeg\\bin)。
- 一路点“确定”保存。
- 验证:打开新终端,输入:ffmpeg -version
显示一堆版本信息就成功啦!如果没显示,重启电脑再试。💻
Linux/Mac系统:
- Ubuntu/Debian:sudo apt install ffmpeg
- Mac(用Homebrew,没装的话先去Homebrew官网装):brew install ffmpeg
- 同样用ffmpeg -version验证。
二、部署方式二选一,新手推荐Docker!🐳
方式一:本地运行适合想折腾代码的开发者
1️⃣ 第一大步:下载项目代码并配置
找一个没有中文、没有空格的文件夹(比如直接在D盘根目录建个 Code 文件夹),然后跟着做: 
① 打开终端
-
Windows:在文件夹空白处,按住 Shift 键 + 鼠标右键,选择“在此处打开PowerShell窗口”(或者“在终端中打开”)。

-
macOS/Linux:打开“终端”,用 cd 命令进入你想放项目的文件夹。
② 下载代码
在终端里输入这行命令,然后按回车:
git clone https://github.com/JefferyHcool/BiliNote.git
这步是把GitHub上的代码“下载”到你电脑里,等进度条走完就行。 
要是出现这样提示核心原因是:国内网络访问 GitHub 官方服务器不稳定、连接超时,这是拉取 GitHub 代码时非常常见的问题 
4个解决方案,按「零门槛→进阶」排序,优先试前两个,最快10秒就能解决!
方案一:【小白首选!零门槛,不用git命令】
完全不用折腾终端,直接浏览器下载完整代码,和git clone的效果一模一样,100%能拿到代码:
方案二:【换国内镜像地址,一行命令解决】
如果还是想用git命令拉取,不用改任何设置,直接把原来的命令,换成下面任意一个国内镜像地址,复制到终端回车即可:
优先试这个(gitclone镜像,稳定性最高):
git clone https://gitclone.com/github.com/JefferyHcool/BiliNote.git
如果上面的不行,试这个(FastGit镜像):
git clone https://hub.fgit.cf/JefferyHcool/BiliNote.git
这些都是国内的GitHub加速镜像,网络比官方地址稳定很多,大概率能直接克隆成功。
③ 进入项目文件夹
下载完成后,输入:
cd BiliNote
意思是“进入刚才下载好的 BiliNote 文件夹”。
④ 复制配置文件
这步是把示例配置文件改成正式能用的:
- 如果你是 Windows:ren .env.example .env
- 如果你是 macOS/Linux:mv .env.example .env
这步没报错就不用管它,继续下一步。
2️⃣ 第二大步:启动后端服务(FastAPI)
⚠️ 注意:从这步开始,终端窗口不能关!关了服务就停了!
① 进入后端文件夹
在刚才的终端里继续输入:
cd backend
② 安装后端需要的依赖(用国内镜像,下载更快)
输入这行命令,然后耐心等它下载完(可能需要几分钟):
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
这步是把后端需要的所有Python库都装好,用清华镜像源是为了避免网络太慢导致下载失败。
Windows要是出现这样的提示 distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/ 是因为未安装 Microsoft Visual C++ 14.0 + 编译工具,源码构建必然失败,最终触发这个通用的子进程退出错误。 解决方法—- 安装编译工具: 下载 Microsoft Visual C++ Build Tools:https://visualstudio.microsoft.com/visual-cpp-build-tools/;
运行安装包,勾选「使用 C++ 的桌面开发」,点击「安装」; 安装完成后重启电脑。 重新打开终端,进入 backend 文件夹,执行依赖安装命令: bash 运行 pip install -r requirements.txt –only-binary :all:
作者在 requirements.txt 里写死了 aiohttp==3.11.16,但这个版本根本不存在(Python 官方库的版本号不可能是这个数字)。 当前的 Python 3.12/3.11 等稳定版,官方只提供了 0.9.x 到 3.13.3 版本的包,找不到所谓的 3.11.16,
方案一:直接用 exe 安装包(最推荐,100% 不报错) 双击 exe,安装路径选全英文(如 D:\\BiliNote); 下一步到底,装完双击打开即可使用,不用管任何命令行报错。 方案二:硬改代码,强制装上能兼容的版本(继续跑源码) 如果坚持要跑源码,直接按下面步骤改,一路畅通: 第一步:修改代码里的错误版本 打开文件夹:D:\\BiliNoteCode\\BiliNote\\backend 找到 requirements.txt 文件,右键用记事本打开; 找到写着 aiohttp==3.11.16 的这一行; 把它改成: text aiohttp>=3.11.0 (意思是不卡死版本,用 3.11 以上的版本,肯定能找到) 按 Ctrl+S 保存文件,关闭记事本。 第二步:重新安装依赖 在当前的 PowerShell 终端里,直接复制下面这行命令,回车执行: pip install -r requirements.txt –only-binary :all: 这次就不会再报找不到 3.11.16 的错了,会自动装上最新的兼容版本。 
又报错?操作步骤: 打开 D:\\BiliNoteCode\\BiliNote\\backend\\requirements.txt 文件。 找到写着 av==14.2.0 的这一行。 把整行删掉(或者在行首加个 # 注释掉它)。
之后的报错也是这个流程,在requirements.txt 文件中删掉对应内容,最后执行pip install -r requirements.txt –only-binary :all:
Brotli==1.1.0 这一行,替换为: brotli>=1.0.9
cffi==1.17.1 这一行,替换为: cffi>=1.15.0 以此类推,慢慢改最后执行pip install -r requirements.txt –only-binary :all:不报错就可进入下一步了
③ 启动后端!
依赖装完后,输入:
python main.py
然后盯着终端看,等它出现类似这样的提示: INFO: Uvicorn running on http://0.0.0.0:8000 看到这句话,说明后端启动成功了!这个终端窗口千万不要关!最小化放一边就行!
3️⃣ 第三大步:启动前端界面(Vite + React)
⚠️ 关键:必须新开一个终端窗口!(刚才的后端终端要保持运行)
① 新开一个终端
- Windows:回到你最开始放项目的文件夹(Code 文件夹),再开一个新的终端窗口。
- macOS/Linux:按 Cmd+T(Mac)或 Ctrl+Shift+T(Linux)新开一个终端标签页。
② 进入前端文件夹(⚠️ 这里名字很容易敲错!注意看!)
在新终端里,先进入项目根目录,再进入前端文件夹:
cd BiliNote
cd BillNote_frontend
⚠️ 敲黑板!这里是 BillNote_frontend(中间是两个L,少了个i)!不是 BiliNote_frontend!别敲错了!
③ 安装前端依赖
输入这行命令,等它下载完(可能也需要几分钟):
pnpm install
如果这步报错,先试试 pnpm -v 确认pnpm装好了,或者检查网络。
④ 启动前端!
依赖装完后,输入:
pnpm dev
等终端出现类似这样的提示: Local: http://localhost:5173 恭喜你!前端也启动成功了!
🎉 最后一步:打开界面开始用!
打开你的浏览器(Chrome/Edge都行),在地址栏输入刚才终端显示的地址:
http://localhost:5173
按回车,你就能看到 BiliNote 的界面啦!
❓ 新手常见问题急救包
- 解决:Python没装好,或者没勾选“Add to PATH”,回去重装Python,记得勾选那个选项!
- 解决:检查你是不是敲错文件夹名字了!是 BillNote_frontend(两个L)!
- 解决:刚才的 pip install 没装全依赖,重新运行一遍 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple。
- 解决:检查前端终端是不是还在运行,有没有报错,或者刷新页面试试。
- 解决:FFmpeg没装好,或者环境变量没配对,回去重新检查FFmpeg的安装步骤,配完环境变量一定要重启终端!
方式二:Docker一键部署推荐新手/NAS用户
Docker能把所有环境打包好,不用自己装一堆依赖,超省心!
前提:先装Docker和Docker Compose
- Windows/Mac:去Docker Desktop官网下载安装,启动后右下角或菜单栏有Docker图标就行。
- Linux:参考Docker官方文档安装。
验证安装:
docker –version
docker compose version
都显示版本号就继续。
版本1:最新版从主仓库构建
git clone https://github.com/JefferyHcool/BiliNote.git
cd BiliNote
cp .env.example .env # 复制配置文件,后面可以改端口
docker-compose up -d # 启动容器,-d表示后台运行
版本2:稳定版官方预构建镜像
这个更简单,镜像已经做好了,直接拉:
git clone https://github.com/JefferyHcool/bilinote-deploy.git
cd bilinote-deploy
cp .env.example .env # 配置文件看下面说明
docker-compose up -d
配置.env文件关键!📝
打开.env文件(用记事本或VS Code都行),重点看这几个参数:
| APP_PORT | 3015 | 前端访问端口,比如你改3016,访问就是http://localhost:3016 |
| TRANSCRIBER_TYPE | fast-whisper | 语音转写引擎,选fast-whisper本地免费,不用API Key |
| WHISPER_MODEL_SIZE | base | 模型大小,tiny最快但精度低,large精度高但慢,新手推荐base |
| DOUYIN_COOKIES | (可选) | 下载抖音视频才要填,获取方法看下面 |
访问与验证
- 打开浏览器,访问http://localhost:3015(如果你改了APP_PORT就用改后的端口)。
- 查看容器状态:在终端输入docker-compose logs -f
看到INFO: Uvicorn running on http://0.0.0.0:8000,说明后端启动成功啦!按Ctrl+C退出日志查看。✅
三、核心配置让BiliNote真正能用!⚙️
1. 配置AI模型以DeepSeek为例,免费额度够用!
BiliNote需要大模型来总结视频,DeepSeek新用户有免费额度,够玩!
- API Key:刚才复制的sk-xxxxxx
- API地址:https://api.deepseek.com
2. 语音转写配置本地免费,不用花钱!
在.env文件里设置(如果是本地运行,改项目根目录的.env;如果是Docker,改部署仓库的.env):
TRANSCRIBER_TYPE=fast-whisper
WHISPER_MODEL_SIZE=base # 电脑配置差就选tiny,好就选large
改完后如果是Docker部署,需要重启容器:
docker-compose down
docker-compose up -d
3.
安装包版本的语音转写配置和源码/Docker版本略有不同,但核心逻辑一致,而且操作更简单!我帮你一步步说清楚,全程不用敲命令,纯图形界面操作:
第一步:找到安装包的 .env 配置文件
安装包的配置文件位置和源码不一样,你按这个路径找:
- 如果看不到隐藏文件:在文件夹顶部点击「查看」→ 勾选「隐藏的项目」;若已经勾选了「隐藏的项目」,但 .env 文件还是没显示,这说明安装包里的 .env 可能被打包到了其他位置,或者需要你手动创建一个。
两种解决办法(按顺序试)
方法一:手动创建 .env 文件(最直接)
- 如果系统提示「如果改变文件扩展名,可能会导致文件不可用」,点击「是」。
WHISPER_MODEL_SIZE=base # 低配电脑改成 tiny,高配改成 large
方法二:检查 config 文件夹
如果手动创建后不生效,试试打开文件夹里的 config ,-internal 子文件夹,里面可能有 config.yaml 或 .env 配置文件:

补充说明
- 安装包里的 .env 不一定会显示在根目录,手动创建一个是完全可行的,软件会优先读取根目录的 .env 文件。
- 如果你只是想正常用在线模型生成笔记,完全不用管 .env 文件,直接双击 app.exe 打开就能用,本地语音转写是可选功能。
第二步:修改语音转写配置(复制粘贴就行)
TRANSCRIBER_TYPE=fast-whisper
WHISPER_MODEL_SIZE=base
- WHISPER_MODEL_SIZE=tiny → 电脑配置差、卡顿(最轻便,免费);
- WHISPER_MODEL_SIZE=base → 中等配置(推荐,平衡速度和准确率);
- WHISPER_MODEL_SIZE=large → 高配电脑(准确率最高,稍慢);

第三步:重启BiliNote(让配置生效)
核心提醒(安装包专属)
四、生成你的第一条视频笔记!📹
- 模型:选刚才配置的deepseek-chat。
- 笔记风格:新手推荐“精简”,想详细就选“详细”。
| 精简风格 | 提炼视频要点,内容简洁明了 | 快速预览、效率阅读 |
| 详细风格 | 记录视频大部分细节,全面呈现 | 深度理解、学习总结 |
| 教程风格 | 针对教学内容优化,步骤清晰 | 教程类视频 |
| 学术风格 | 结构严谨,用词正式,引用理论 | 讲座、报告、科研类 |
| 小红书风格 | 活泼生动,使用流行表达 | 娱乐、美妆、生活分享 |
| 生活向风格 | 日常化语气,带有情感色彩 | vlog、纪录片类 |
| 任务导向风格 | 侧重待办、操作清单 | 工作流、项目管理 |
| 商业风格 | 商业逻辑清晰,表达精准 | 财经、市场分析类 |
| 会议纪要风格 | 结构标准,语言正式 | 会议总结、线上讨论 |
- 笔记格式:勾选【目录】【原片跳转】【原片截图】,这样笔记更直观。
五、常见问题FAQ新手必看!❓
如果使用了多种方案部署出错的,先删掉多余方案存放代码的文件夹
Q1:前端启动报错,说找不到BillNote_frontend目录?
A:注意目录名是BillNote_frontend(大写B,中间是ll不是li),不是BiliNote_frontend!克隆仓库后用ls(Windows用dir)看看目录名,别敲错。😅
Q2:启动时提示端口被占用,怎么办?
A:
- 本地运行:前端默认5173,后端默认8000。如果被占用,前端可以在BillNote_frontend/package.json里改dev命令的端口(比如pnpm dev –port 5174);后端改backend/main.py里的端口。
- Docker部署:改.env文件里的APP_PORT,比如改成3016,然后重启容器:docker-compose down
docker-compose up -d
Q3:ffmpeg -version提示“不是内部或外部命令”?
A:
- Windows:检查环境变量PATH里有没有加FFmpeg的bin路径,加了后重启终端,还不行就重启电脑。
- Linux/Mac:确保用包管理器安装成功了,再试一次安装命令。🔄
Q4:测试模型连通性失败,怎么办?
A:
- 检查API Key有没有复制错,不要多空格或少字符。
- 检查API地址是不是https://api.deepseek.com,不要写错。
- 试试网络能不能访问DeepSeek官网,不行的话换个模型供应商(比如Qwen,去阿里云百炼申请Key)。🌐
Q5:生成笔记特别慢,怎么办?
A:
- 语音转写模型改小一点,比如把WHISPER_MODEL_SIZE改成tiny或base。
- 如果是本地运行,确保电脑配置不是太差(至少8G内存)。
- Docker部署的话,看看容器日志有没有报错,用docker-compose logs -f查看。⚡
Q6:Docker部署后,访问http://localhost:3015打不开?
A:
- 确保Docker容器正在运行:docker-compose ps查看状态。
- 检查端口有没有被占用,或者换个端口试试。
- 查看容器日志:docker-compose logs -f,看看有没有报错信息。🔍
Q7:早就配置过 FFmpeg 环境变量但仍提示未安装
核心原因是:安装包内置的FFmpeg路径和你配置的不一致,或软件优先读取内置路径但识别失败。
办法1:强制指定FFmpeg路径到.env(最直接,1分钟搞定)
不用改系统环境变量,直接在你找到的.env文件里写死FFmpeg路径,软件会优先读这个配置:
打开_internal里的.env文件(记事本打开);
在文件末尾新增一行,粘贴你实际的FFmpeg完整路径(替换成你自己的路径):
# 关键:写ffmpeg.exe的完整路径,不是文件夹!
FFMPEG_BIN_PATH=D:\\你的FFmpeg路径\\ffmpeg.exe
# 示例:FFMPEG_BIN_PATH=D:\\software\\ffmpeg\\bin\\ffmpeg.exe
按Ctrl+S保存,完全关闭BiliNote(包括后台进程),重新双击app.exe打开。 
还是不行的话改成bin
再不行就在.exe同级新建.env文件,加入如图内容
到资源管理器中,找到bilinoteBackground,关闭再重启exe
还是不行:删除 bili_note.db
办法2:验证FFmpeg是否真的配置成功(排查假配置)
很多时候看似配置了环境变量,实际没生效,按这个步骤验证:
-
✅ 成功:会显示ffmpeg.exe的完整路径(比如D:\\software\\ffmpeg\\bin\\ffmpeg.exe);
-

-
❌ 失败:提示“找不到文件”,说明环境变量配置错了(路径输错/没重启电脑/配到用户变量而非系统变量)。
办法3:替换安装包内置的FFmpeg(终极方案)
如果以上都不行,说明安装包内置的FFmpeg可能损坏,直接替换成官方版:
核心总结
六、项目资源与反馈📚
- 官方GitHub仓库:JefferyHcool/BiliNote
- Docker部署仓库:JefferyHcool/bilinote-deploy
- 问题反馈:去GitHub提Issue,或者加QQ群785367111交流(群号来自官方文档)。
总结🎯
跟着这篇教程走,你应该已经成功部署BiliNote并生成第一条笔记啦!BiliNote功能很强,还能支持多模态理解、多版本笔记,慢慢探索吧!有问题记得看FAQ,或者去社区提问,动手试试才是最快的学习方式!加油!💪
原创声明:本文为原创技术教程,转载请注明出处。
参考资料:
- BiliNote官方GitHub仓库
- Git官网
- Python官网
- Node.js官网
- FFmpeg官网
- Docker官网
- DeepSeek官网
如果本文对你有帮助,欢迎点赞👍、收藏⭐、评论💬! 
个人领域:C++/java/Al/软件开发/芯片开发 个人主页:「一名热衷协作的开发者,在构建中学习,期待与你交流技术、共同成长。」 座右铭:「与其完美地观望,不如踉跄地启程」 





