[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73550":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},73550,"BiliNote","JefferyHcool\u002FBiliNote","JefferyHcool","AI 视频笔记生成工具 让 AI 为你的视频做笔记",null,"TypeScript",6334,821,30,156,0,56,139,392,168,39.74,"MIT License",false,"master",true,[],"2026-06-12 02:03:14","\u003Cdiv style=\"display: flex; justify-content: center; align-items: center; gap: 10px;\n\">\n    \u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fdoc\u002Ficon.svg\" alt=\"BiliNote Banner\" width=\"50\" height=\"50\"  \u002F>\n\u003C\u002Fp>\n\u003Ch1 align=\"center\" > BiliNote v2.3.0\u003C\u002Fh1>\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\u003Ci>AI 视频笔记生成工具 让 AI 为你的视频做笔记\u003C\u002Fi>\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ffrontend-react%2019-blue\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fbackend-fastapi-green\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGPT-openai%20%7C%20deepseek%20%7C%20qwen-ff69b4\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocker-ghcr.io-blue\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fstatus-active-success\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fjefferyhcool\u002FBiliNote?style=social\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.bilinote.app\u002F\">\u003Cb>🚀 BiliNote Pro · 在线版\u003C\u002Fb>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cb>不想折腾部署？\u003C\u002Fb>访问 \u003Ca href=\"https:\u002F\u002Fwww.bilinote.app\u002F\">\u003Cb>www.bilinote.app\u003C\u002Fb>\u003C\u002Fa> 即开即用 —— 免安装、免配置环境、免下模型，注册即可把视频转成笔记。\n  \u003Cbr\u002F>\n  本地部署遇到的依赖、代理、模型下载这些坑，云端版统统不用管。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.bilinote.app\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%E7%AB%8B%E5%8D%B3%E4%BD%93%E9%AA%8C-BiliNote%20Pro-ff5c5c?style=for-the-badge\" alt=\"立即体验 BiliNote Pro\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\n\n## ✨ 项目简介\n\nBiliNote 是一个开源的 AI 视频笔记助手，支持通过哔哩哔哩、YouTube、抖音等视频链接，自动提取内容并生成结构清晰、重点明确的 Markdown 格式笔记。支持插入截图、原片跳转、AI 问答等功能。\n\n> 💡 **想直接用、不想本地部署？** —— [BiliNote Pro 在线版 www.bilinote.app](https:\u002F\u002Fwww.bilinote.app\u002F) 已上线，云端托管、开箱即用，省去依赖安装 \u002F 代理配置 \u002F 模型下载的全部麻烦。\n\n## 🌐 在线使用（推荐）\n\n直接访问 **[www.bilinote.app](https:\u002F\u002Fwww.bilinote.app\u002F)** 即可使用 BiliNote Pro 在线版，无需本地部署。\n\n## 📝 使用文档\n详细文档可以查看[这里](https:\u002F\u002Fdocs.bilinote.app\u002F)\n## 📦 桌面版下载\n本项目提供了 Windows 和 macOS 桌面客户端，可在 [Releases](https:\u002F\u002Fgithub.com\u002FJefferyHcool\u002FBiliNote\u002Freleases) 页面下载最新版本。\n\n> Windows 用户请注意：一定要在没有中文路径的环境下运行。\n\n## 🔧 功能特性\n\n- 支持多平台：Bilibili、YouTube、本地视频、抖音、快手\n- 支持返回笔记格式选择\n- 支持笔记风格选择\n- 支持多模态视频理解\n- 支持多版本记录保留\n- 支持自行配置 GPT 大模型（OpenAI、DeepSeek、Qwen 等）\n- 本地模型音频转写（支持 Fast-Whisper、MLX-Whisper、Groq、BCut）\n- GPT 大模型总结视频内容\n- 自动生成结构化 Markdown 笔记\n- 可选插入截图（自动截取）\n- 可选内容跳转链接（关联原视频）\n- 任务记录与历史回看\n- 基于 RAG 的笔记内容 AI 问答（支持 Function Calling）\n- 笔记顶部视频封面 Banner 展示\n- 工作区和生成历史面板支持折叠\u002F展开\n\n### v2.3.0 新增\n\n- 全局代理：一处配置同时作用于 AI 模型接口、转写接口（Groq 等）、YouTube 下载（设置 → 下载配置页），支持 `HTTP_PROXY` 环境变量兜底\n- 转写模型就绪门禁：本地引擎模型没下载好时拦截视频任务，引导先去下载，不再静默卡在首次下载\n- 桌面端后端健康监控韧性：退出自动清理 sidecar、启动失败展示原因 + 日志、不再无限「加载中」\n- whisper 模型损坏自愈：`model.bin` 截断时自动删除重下；空 API Key \u002F 新模型 temperature 不兼容给出清晰提示\n- Docker 部署韧性：`BASE_REGISTRY` 可换国内镜像源、restart 策略修正、`.env.example` 端口与默认模型修正、新增部署 FAQ\n\n### v2.2.3 修订\n\n- 修：vite build 在 CI 中报 'Rollup failed to resolve import @tauri-apps\u002Fapi\u002Fevent'（缺直接依赖声明）\n\n### v2.2.2 修订\n\n- 修复 v2.2.0 桌面端 Tauri 构建失败（main.yml 的 pnpm 版本没 pin，pnpm 11 不兼容 Node 20）\n\n### v2.2.1 修订\n\n- 修复 v2.2.0 ghcr.io 镜像构建失败（pnpm@latest 拉到 11，与 Node 20 不兼容；pin 到 pnpm 9.15.0）\n\n### v2.2.0 新增\n\n- **浏览器插件**笔记选项与 web 端完整对齐：style 9 个预设下拉、format 4 个 checkbox、extras 文本框、多模态视频理解开关\n- **桌面客户端**首启 4 步引导（连通自检 → 供应商\u002F模型 → 转写引擎 → Cookie 提示）\n- **桌面客户端**右下角后端运行状态指示，点开看日志、一键重启\n- **桌面客户端**启动期主动检测中文 \u002F 空格 \u002F 不可写安装路径，弹横幅告警\n- Whisper 默认 size 从 medium（~1.5GB）改为 tiny（~75MB）；切大模型时显式 confirm\n- 修：whisper 半成品模型目录死循环；`\u002Fdeploy_status` 在没装 torch 的部署 500\n- 详见 [CHANGELOG.md](.\u002FCHANGELOG.md)\n\n### v2.1.4 修订\n\n- CI：桌面端 Tauri 构建去掉 Linux（17m+ 慢线退役；Linux 用户继续走 Docker 镜像）\n- CI：commitlint workflow 修复 + 规范 release merge commit 标题约定\n\n### v2.1.3 修订\n\n- 修复 DeepSeek 等非多模态供应商被 400 拒绝的问题（issue #282）：`UniversalGPT` 的 message builder 按是否带图切换 string \u002F 多模态数组形态\n- 感谢 @voidborne-d (#345)\n\n### v2.1.2 修订\n\n- 修复 v2.1.1 触发的 ghcr.io Docker 镜像构建失败（Node 18 + Tailwind v4 不兼容、缺 lockfile）\n- README 补上微信群二维码\n\n### v2.1.1 修订\n\n- 工程化与文档收尾：CONTRIBUTING.md \u002F RELEASING.md \u002F issue + PR 模板 \u002F commitlint CI \u002F 插件发版工作流\n- 关于页群聊二维码：换成最新版，改为 import 本地资源，不再依赖 CDN\n- 关于页移除 QQ 群入口（仅保留微信群）\n- 详见 [CHANGELOG.md](.\u002FCHANGELOG.md)\n\n### v2.1.0 新增\n\n- 浏览器插件（Chrome \u002F Edge \u002F Firefox MV3）—— 工具栏 popup、视频页悬浮按钮、右键菜单、侧边栏（Markdown \u002F 思维导图 \u002F AI 问答）四件套\n- 插件设置页五大块：模型供应商 CRUD、音频转写配置、下载配置（含浏览器 Cookie 一键同步）、部署监控\n- B 站字幕优先：插件在用户浏览器里直接抓字幕（带本地登录态 cookie），跳过后端音频转写\n- 后端 `BilibiliSubtitleFetcher`：非插件场景下走 player API 拿字幕，作为 yt-dlp 兜底\n- mlx-whisper 仓库 ID 修正（修复模型 404）\n- 后端 CORS 改用 regex，兼容浏览器扩展源\n- 详见 [CHANGELOG.md](.\u002FCHANGELOG.md)\n\n### v2.0.0 新增\n\n- 基于 RAG 的笔记内容 AI 问答功能，支持半屏\u002F全屏模式\n- AI 问答支持 Function Calling，模型可主动查询原文数据\n- RAG 索引支持视频元信息（标题、作者、简介、标签等）\n- AI 回复支持 Markdown 渲染\n- 笔记顶部新增视频封面 Banner\n- 工作区和生成历史面板支持折叠\u002F展开\n- 笔记开头添加来源链接功能\n- YouTube 字幕优先获取，有字幕时跳过音频下载\n- 性能优化与转写器配置改进\n\n## 📸 截图预览\n![screenshot](.\u002Fdoc\u002Fimage1.png)\n![screenshot](.\u002Fdoc\u002Fimage3.png)\n![screenshot](.\u002Fdoc\u002Fimage.png)\n![screenshot](.\u002Fdoc\u002Fimage4.png)\n![screenshot](.\u002Fdoc\u002Fimage5.png)\n\n## 🚀 快速开始\n\n### 方式一：Docker 部署（推荐）\n\n确保已安装 Docker，直接拉取预构建镜像运行：\n\n```bash\ndocker pull ghcr.io\u002Fjefferyhcool\u002Fbilinote:latest\n\ndocker run -d -p 80:80 \\\n  -v bilinote-data:\u002Fapp\u002Fbackend\u002Fdata \\\n  --name bilinote \\\n  ghcr.io\u002Fjefferyhcool\u002Fbilinote:latest\n```\n\n访问：`http:\u002F\u002Flocalhost`\n\n也可以使用 docker-compose 本地构建：\n\n```bash\ncp .env.example .env       # 第一次部署务必先创建 .env，否则 BACKEND_PORT\u002FAPP_PORT 等变量为空会启动失败\ndocker-compose up --build -d\n\n# GPU 加速部署（需要 NVIDIA GPU + NVIDIA Container Toolkit）\ndocker-compose -f docker-compose.gpu.yml up --build -d\n```\n\n#### Docker 部署常见问题（FAQ）\n\n社区反馈最集中的几个坑，遇到先按下面排查：\n\n**0. 国内拉不到 docker.io（build 阶段报 `dial tcp ... i\u002Fo timeout`）**\n\n`docker-compose build` 拉 `python:3.11-slim` \u002F `node:20-alpine` \u002F `nginx:1.25-alpine` 时连 `auth.docker.io` 超时。三种解法，按推荐顺序：\n\n- **方法 A：直接用预构建镜像（最省事）**——不要本地 build，跳到上面的 `docker pull ghcr.io\u002Fjefferyhcool\u002Fbilinote:latest` 路径，ghcr.io 在国内通常比 docker.io 顺。\n- **方法 B：配置 Docker daemon 镜像加速器**——编辑 `~\u002F.docker\u002Fdaemon.json`（Linux 在 `\u002Fetc\u002Fdocker\u002Fdaemon.json`），加：\n  ```json\n  {\n    \"registry-mirrors\": [\"https:\u002F\u002Fdocker.m.daocloud.io\"]\n  }\n  ```\n  然后重启 Docker Desktop \u002F `sudo systemctl restart docker`。这是一劳永逸的做法。\n- **方法 C：临时切换 base image 镜像源**——本项目所有 Dockerfile 都暴露了 `BASE_REGISTRY` build-arg：\n  ```bash\n  BASE_REGISTRY=docker.m.daocloud.io docker-compose build\n  docker-compose up -d\n  ```\n  或永久写到 `.env`：`echo 'BASE_REGISTRY=docker.m.daocloud.io' >> .env`。\n\n注意：Chinese 公共 docker 镜像源时常被关停，2025-2026 之间可用的列表会变；如果 `docker.m.daocloud.io` 不通，搜一下\"Docker 镜像加速 可用\"找最新可用源即可。\n\n**1. 容器一直 restart \u002F unhealthy**\n\n先看后端日志：\n```bash\ndocker logs -f bilinote-backend\n```\n后端启动会按顺序打印 `[startup 1\u002F5] ... [startup 5\u002F5] 启动完成`。若日志卡在某一步或出现 `[startup FAILED]`，就是那一步的问题，常见：\n- **卡在 `[startup 3\u002F5]`**：转写器配置读不到。检查 `.env` 里 `TRANSCRIBER_TYPE` 是否写错，`mlx-whisper` 只能在 Apple Silicon 用，Linux\u002FDocker 请用 `fast-whisper` 或 `groq`。\n- **首次跑视频时容器被 kill**：whisper 模型下载触发 OOM。先把 `.env` 里 `WHISPER_MODEL_SIZE` 改成 `tiny`，跑通后再去前端「音频转写配置」里逐档升。\n\n**2. 改了 `.env` 没生效**\n\n区分两类变量：\n- `VITE_*` 是**构建时**变量（前端 bundle 里硬编码），改完必须 `docker-compose build frontend && docker-compose up -d`。只 `restart` 不会重新打包。\n- 其他后端变量（`TRANSCRIBER_TYPE`、`WHISPER_MODEL_SIZE`、`FFMPEG_BIN_PATH` 等）是**运行时**变量，改完 `docker-compose up -d` 即可。\n\n注意：**LLM API key 不要写 `.env`**，从前端「模型供应商」页面录入，会保存到 SQLite 数据库并持久化。\n\n**3. 数据存在哪？删容器会丢吗？**\n\n`docker-compose` 用的是 `.\u002Fbackend:\u002Fapp` 绑挂，下面这些文件都在宿主机的 `.\u002Fbackend\u002F` 目录里、删容器不会丢：\n- `.\u002Fbackend\u002Fbili_note.db` —— SQLite 库（含 LLM 供应商配置、笔记历史）\n- `.\u002Fbackend\u002Fconfig\u002Ftranscriber.json` —— 转写器运行时配置\n- `.\u002Fbackend\u002Fstatic\u002Fscreenshots\u002F` —— 视频截图\n- `.\u002Fbackend\u002Fuploads\u002F` —— 上传的本地视频\n\n要彻底重置就 `docker-compose down && rm backend\u002Fbili_note.db backend\u002Fconfig\u002Ftranscriber.json`。\n\n**4. 前端打开是空白页 \u002F 报 502**\n\n通常是 nginx 起来了但 backend 还没 healthy。`docker ps` 看 backend 容器 STATUS 是不是 `(healthy)`；若长期 `(unhealthy)`，按问题 1 排查后端日志。\n\n**5. 不要用 `restart: on-failure:N`**\n\n如果你 fork 后改过 compose 文件、把 restart 策略改成了 `on-failure:3`：任何 3 次连续崩溃都会让容器永远不再启动，之后改 `.env` 也没用。本项目自带的 compose 已经统一用 `unless-stopped`。\n\n### 方式二：源码部署\n\n#### 1. 克隆仓库\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FJefferyHcool\u002FBiliNote.git\ncd BiliNote\nmv .env.example .env\n```\n\n#### 2. 启动后端（FastAPI）\n\n```bash\ncd backend\npip install -r requirements.txt\npython main.py\n```\n\n#### 3. 启动前端（Vite + React）\n\n```bash\ncd BillNote_frontend\npnpm install\npnpm dev\n```\n\n访问：`http:\u002F\u002Flocalhost:3015`\n\n## ⚙️ 依赖说明\n\n### 🎬 FFmpeg\n本项目依赖 ffmpeg 用于音频处理与转码，源码部署时必须安装：\n```bash\n# Mac (brew)\nbrew install ffmpeg\n\n# Ubuntu \u002F Debian\nsudo apt install ffmpeg\n\n# Windows\n# 请从官网下载安装：https:\u002F\u002Fffmpeg.org\u002Fdownload.html\n```\n> ⚠️ 若系统无法识别 ffmpeg，请将其加入系统环境变量 PATH\n>\n> Docker 部署已内置 FFmpeg，无需额外安装。\n\n### 🚀 CUDA 加速（可选）\n若你希望更快地执行音频转写任务，可使用具备 NVIDIA GPU 的机器，并启用 fast-whisper + CUDA 加速版本：\n\n具体 `fast-whisper` 配置方法，请参考：[fast-whisper 项目地址](http:\u002F\u002Fgithub.com\u002FSYSTRAN\u002Ffaster-whisper#requirements)\n\n### 🐳 使用 Docker 一键部署\n\n确保你已安装 Docker，然后直接拉取预构建镜像运行：\n\n```bash\n# 拉取最新镜像\ndocker pull ghcr.io\u002Fjefferyhcool\u002Fbilinote:latest\n\n# 运行容器\ndocker run -d -p 80:80 \\\n  -v bilinote-data:\u002Fapp\u002Fbackend\u002Fdata \\\n  --name bilinote \\\n  ghcr.io\u002Fjefferyhcool\u002Fbilinote:latest\n```\n\n访问：`http:\u002F\u002Flocalhost`\n\n也可以使用 docker-compose 本地构建：\n\n```bash\n# 标准部署\ndocker-compose up -d\n\n# GPU 加速部署（需要 NVIDIA GPU）\ndocker-compose -f docker-compose.gpu.yml up -d\n```\n\n## 🧠 TODO\n\n- [x] 支持抖音及快手等视频平台\n- [x] 支持前端设置切换 AI 模型切换、语音转文字模型\n- [x] AI 摘要风格自定义（学术风、口语风、重点提取等）\n- [x] 加入更多模型支持\n- [x] 加入更多音频转文本模型支持\n- [x] 基于 RAG 的笔记内容 AI 问答\n- [ ] 笔记导出为 PDF \u002F Word \u002F Notion\n\n### Contact and Join-联系和加入社区\n\n扫码加入 BiliNote 交流微信群（共 5 个群，任选一个即可；二维码会定期更新，如已失效请到 [Issues](https:\u002F\u002Fgithub.com\u002FJefferyHcool\u002FBiliNote\u002Fissues) 反馈）：\n\n\u003Ctable align=\"center\">\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Cimg src=\".\u002Fdoc\u002Fwechat-group-1.png\" alt=\"BiliNote 交流群 1\" width=\"200\" \u002F>\u003Cbr\u002F>交流群 1\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Cimg src=\".\u002Fdoc\u002Fwechat-group-2.png\" alt=\"BiliNote 交流群 2\" width=\"200\" \u002F>\u003Cbr\u002F>交流群 2\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Cimg src=\".\u002Fdoc\u002Fwechat-group-3.png\" alt=\"BiliNote 交流群 3\" width=\"200\" \u002F>\u003Cbr\u002F>交流群 3\u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Cimg src=\".\u002Fdoc\u002Fwechat-group-4.png\" alt=\"BiliNote 交流群 4\" width=\"200\" \u002F>\u003Cbr\u002F>交流群 4\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Cimg src=\".\u002Fdoc\u002Fwechat-group-5.png\" alt=\"BiliNote 交流群 5\" width=\"200\" \u002F>\u003Cbr\u002F>交流群 5\u003C\u002Ftd>\n    \u003Ctd>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n\n## 🔎代码参考\n- 本项目中的 `抖音下载功能` 部分代码参考引用自：[Evil0ctal\u002FDouyin_TikTok_Download_API](https:\u002F\u002Fgithub.com\u002FEvil0ctal\u002FDouyin_TikTok_Download_API)\n\n## 📜 License\n\nMIT License\n\n---\n\n💬 你的支持与反馈是我持续优化的动力！欢迎 PR、提 issue、Star ⭐️\n## Buy Me a Coffee \u002F 捐赠\n如果你觉得项目对你有帮助，考虑支持我一下吧\n\u003Cdiv style='display:inline;'>\n    \u003Cimg width='30%' src='https:\u002F\u002Fcommon-1304618721.cos.ap-chengdu.myqcloud.com\u002F8986c9eb29c356a0cfa3d470c23d3b6.jpg'\u002F>\n    \u003Cimg width='30%' src='https:\u002F\u002Fcommon-1304618721.cos.ap-chengdu.myqcloud.com\u002F2a049ea298b206bcd0d8b8da3219d6b.jpg'\u002F>\n\u003C\u002Fdiv>\n\n## ⭐ Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=JefferyHcool\u002FBiliNote&type=Date)](https:\u002F\u002Fwww.star-history.com\u002F#JefferyHcool\u002FBiliNote&Date)\n","BiliNote 是一个基于 AI 的视频笔记生成工具，能够自动为用户提供结构清晰、重点明确的 Markdown 格式笔记。其核心功能包括支持多平台（如哔哩哔哩、YouTube、抖音等）视频内容的自动提取与总结，以及截图插入、原片跳转链接等功能，并允许用户自定义配置多种大语言模型（如 OpenAI、DeepSeek 和 Qwen）。此外，BiliNote 提供了云端在线版和桌面客户端两种使用方式，使得用户可以根据自己的需求灵活选择。该项目特别适合需要快速整理学习资料或会议记录的个人及团队使用。",2,"2026-06-11 03:46:05","high_star"]