by zrt-ai-lab
ViNote(视记AI)|DeepSeek Harness SDK 驱动的开源视频知识 Agent。以工具编排、SQLite 会话恢复和流式交互,串联 YouTube / Bilibili 检索、下载、转写与笔记生成,支持视频问答、知识卡片和思维导图。FastAPI + React,支持 OpenAI 兼容接口模型。
# Add to your Claude Code skills
git clone https://github.com/zrt-ai-lab/ViNoteLast scanned: 9/5/2026
{
"issues": [
{
"file": "README.md",
"line": 159,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -LsSf https://astral.sh/uv/install.sh | sh\"",
"severity": "low"
}
],
"status": "PASSED",
"scannedAt": "2026-09-05T08:04:18.584Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}ViNote is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by zrt-ai-lab. ViNote(视记AI)|DeepSeek Harness SDK 驱动的开源视频知识 Agent。以工具编排、SQLite 会话恢复和流式交互,串联 YouTube / Bilibili 检索、下载、转写与笔记生成,支持视频问答、知识卡片和思维导图。FastAPI + React,支持 OpenAI 兼容接口模型。. It has 461 GitHub stars.
Yes. ViNote passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/zrt-ai-lab/ViNote" and add it to your Claude Code skills directory (see the Installation section above).
ViNote is primarily written in Python. It is open-source under zrt-ai-lab on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh ViNote against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.

ViNote = Video + Note
视记AI · 让每个视频成为你的知识资产
ViNoter · 超级视记Agent
Video to Everything:笔记、问答、文章、字幕、卡片、导图,一应俱全

两种安装方式都读取项目根目录的 .env。从 .env.example 复制后,填写你自己的三个配置项:
OPENAI_API_KEY=your-api-key
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o
以上密钥是占位符,地址和模型是公开示例,需替换为你自己的可用配置。OPENAI_BASE_URL 填服务商提供的 API 根地址,不要填写完整的 /chat/completions 路径;是否需要 /v1 以服务商说明为准。OPENAI_MODEL 必须是该密钥有权限使用的准确模型 ID。
ViNoter 智搜要求模型同时支持 OpenAI-compatible Chat Completions、流式输出和自动工具调用;普通聊天能回答,不代表工具调用一定可用。不需要额外配置 DeepSeek 账号。首次运行可保留默认 ASR_PROVIDER=whisper、ASR_MODEL= 和 CPU 配置。
OPENAI_API_KEY 留空仍可打开基础界面,但不能使用对话式智搜及完整 AI 生成能力。修改配置后请重启本地服务;Docker 使用 docker compose up -d --build 重新创建服务。不要将真实 .env、密钥或 Cookie 提交到仓库。
Docker 方式不需要在宿主机安装 Python、Node.js 或 FFmpeg。
这是单用户工具,没有账号权限隔离。默认只监听本机;不要直接暴露到公网。需要可信局域网或反向代理访问时,可在 .env 设置 APP_BIND_HOST=0.0.0.0(Docker),把实际访问域名/IP加入 ALLOWED_HOSTS(默认 localhost,127.0.0.1,::1),并在入口配置访问控制;跨域前端需把准确来源加入 CORS_ORIGINS。
git clone https://github.com/zrt-ai-lab/ViNote.git
cd ViNote
cp .env.example .env
# 编辑 .env,按上面的说明填写自己的模型配置后继续。
docker compose up -d --build
docker compose ps
等待服务就绪后,在浏览器打开 http://localhost:8999;健康检查见下方“启动检查”。
常用 Docker 命令:
docker compose logs -f
docker compose down
docker compose up -d --build
B站 Cookie 是可选能力。需要使用自己账号的登录状态时,按下文配置 bilibili_cookies.txt,再取消 docker-compose.yml 中这行注释,并重新创建服务:
# - ./bilibili_cookies.txt:/app/bilibili_cookies.txt:ro
本地一键脚本会自动安装后端依赖、安装前端依赖、构建前端并启动服务。首次运行如果没有 .env,脚本会复制示例文件后停止,让你先完成配置。
默认安装基础服务、Agent SDK 和 Whisper 依赖,不安装 FunASR/Qwen3 扩展。选择 ASR_PROVIDER=funasr 或 qwen3 时,启动脚本会自动安装对应扩展;切换配置后重新运行脚本即可。前端依赖、源代码和构建产物未变时,脚本跳过重复安装/构建。Docker Compose 同样按 .env 选择扩展,切换后执行 docker compose up -d --build。
ASR_MODEL 留空时自动使用对应 provider 的默认模型。升级已有 .env 或切换 provider 时,请清空旧模型名(例如 Whisper 的 base),或同时填写目标 provider 支持的模型名。
安装示例:
# macOS
brew install python@3.12 ffmpeg node
curl -LsSf https://astral.sh/uv/install.sh | sh
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y python3 ffmpeg
curl -LsSf https://astral.sh/uv/install.sh | sh
# Node.js 单独安装满足上述版本要求的版本;系统软件源中的 nodejs 可能过旧。
# Windows PowerShell
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Python、FFmpeg 和 Node.js 请使用官方安装包,并加入 PATH。
安装后重新打开终端,确认 python3 --version(Windows 为 python --version)、uv --version、ffmpeg -version、node --version、npm --version 均可执行。
启动:
git clone https://github.com/zrt-ai-lab/ViNote.git
cd ViNote
# macOS / Linux
./start.sh
# Windows PowerShell
.\start.bat
首次运行生成 .env 后,按“启动前:配置大模型”填写配置,再执行同一个启动命令。保持该终端运行,在浏览器打开 http://localhost:8999;按 Ctrl+C 停止服务。
手动启动只建议用于开发排查:
uv sync --frozen
npm --prefix web ci
npm --prefix web run build
uv run --no-sync uvicorn backend.main:app --host 127.0.0.1 --port 8999 --workers 1
当前任务状态和 SSE 连接保存在单进程内存中,生产运行也保持 --workers 1。
视频笔记任务支持刷新后查询进度,问答页面可直接打开最近会话。Agent 对话流断开会取消当前轮次,服务端重启也不会自动续跑未完成任务;已保存的笔记、问答历史和智搜会话仍可读取,中断的任务需要重新提交。
手动安装可选扩展时使用 uv sync --frozen --extra funasr、--extra qwen3,随后用 uv run --no-sync uvicorn ... 保留已选扩展。默认 uv sync 会回到基础依赖集合。
YouTube 下载所需的 Deno JavaScript 运行时和 yt-dlp EJS 组件随 Python 依赖自动安装,无需另外配置系统 Node.js。首次安装会下载运行时;Docker 镜像使用同一份锁定依赖,并在构建时检查 Deno 可执行文件。
如果使用支持 reasoning_effort 的推理模型,整理笔记时出现“输出被截断或预算耗尽”,可以在 .env 添加 OPENAI_REASONING_EFFORT=low 后重启。该配置只用于笔记整理、翻译、摘要和导图;不设置时不发送此字段,不改变其他模型的默认行为。是否支持该参数取决于模型和网关,不支持时应删除该配置。原始转录和降级提示会保留,不会自动扩大输出预算。
默认使用 Whisper base 模型。需要更高转写质量时,可设置 ASR_MODEL=small 或更大的模型,同时预留更多内存和处理时间;首次运行会下载对应模型。转录和 AI 生成内容可能存在识别或理解误差,重要信息请核对原视频。
curl -f http://localhost:8999/health(Windows PowerShell 使用 curl.exe)。修改过端口时替换 8999,确认服务已启动。ViNoter 使用 DeepSeek Harness Python SDK 编排搜索和笔记工具,YouTube 使用 yt-dlp Python SDK,B站使用公开搜索接口。不需要手动启动额外服务,也不需要另配 DeepSeek 账号;搜索、问答和笔记继续共用 .env 中的 OPENAI_API_KEY、OPENAI_BASE_URL、OPENAI_MODEL。
模型接口须支持 OpenAI-compatible Chat Completions、流式输出和自动工具调用。SDK 当前锁定 0.1.2rc1 预发布版,依赖安装时会一并安装对应的运行时,不使用系统 Node.js 运行 Agent。
youtube、bilibili 或两者同时;默认每个平台 5 条,可要求 1–20 条、第 1–10 页,关键词最多 200 字。上游实时排序可能变化,不保证跨次翻页绝无重复。/search)。点击“清空对话”会取消当前会话任务并清除智搜上下文,不删除已入库的笔记。清空失败会保留当前界面并提示原因;若提示清理未完成,请重启服务后重试。
| 层级 | 职责 |
|---|---|
| React 页面 + FastAPI/SSE | 用户操作、视频卡片、实时进度及会话恢复 |
| DeepSeek Harness SDK | 模型调用与工具编排,只开放 video_search、generate_notes 两个业务工具 |
| 搜索服务 | yt-dlp Python SDK 检索 YouTube,公开接口检索 B站,合并可用结果并报告失败 |
| 笔记服务 | 复用现有字幕优先、ASR、笔记生成流程,保存 Markdown 并建立全文索引 |
| SQLite | 保存笔记、分类标签、问答会话与智搜上下文,不负责重启后续跑任务 |
本地数据库位于 temp/vinote.db,笔记文件也保存在 temp/。备份前先停止服务并保留整个目录;Docker 使用持久化卷,更新时不要使用 docker compose down -v 删除数据。浏览器只保存当前智搜会话 ID,清除浏览器站点数据后不会自动找回这个会话入口。
💡 支持的视频格式:MP4, AVI, MOV, MKV, MP3, WAV 等
💡 批量模式:切换到“批量”模式,可扫描本地目录、粘贴多个链接,或粘贴一个 B站/YouTube 合集链接后点击“解析合集/播放列表”,勾选本次需要处理的视频(最多 20 个)。
sessionId 的问答页面即可恢复来源和消息💡 提示:AI 会基于所选内容回答;存量问答默认优先读取原始转录,旧笔记没有原始转录索引时使用完整笔记。
在“历史记录”中,每条笔记提供两种操作:
| 变量名 | 说明 | 默认值 | 必需 |
|---|---|---|---|
APP_HOST |
服务监听地址;需要局域网访问时可设为 0.0.0.0 |
127.0.0.1 |
否 |
APP_BIND_HOST |
仅 Docker:宿主机端口绑定地址;不是容器内监听地址 | 127.0.0.1 |
否 |
APP_PORT |
服务端口 | 8999 |
否 |
ALLOWED_HOSTS |
允许的访问域名/IP,逗号分隔,不含协议和端口;局域网或反向代理访问需添加实际值 | localhost,127.0.0.1,::1 |
否 |
CORS_ORIGINS |
跨域开发来源,逗号分隔;生产构建默认同源 | http://localhost:5173,http://127.0.0.1:5173 |
否 |
OPENAI_API_KEY |
OpenAI 兼容 API 密钥;为空时可打开基础界面,但智搜及完整 AI 生成能力不可用 | 空 | AI 功能需要 |
OPENAI_BASE_URL |
OpenAI 兼容 API 地址 | https://api.openai.com/v1 |
否 |
OPENAI_MODEL |
使用的 LLM 模型 | gpt-4o |
否 |
ASR_PROVIDER |
ASR 引擎,可选 whisper、funasr、qwen3 |
whisper |
否 |
ASR_MODEL |
ASR 模型;留空按 provider 选择 | 空(Whisper 默认 base) |
否 |
ASR_MODEL_SOURCE |
模型下载源,可选 huggingface、modelscope |
huggingface |
否 |
ASR_MODEL_DIR |
本地模型目录;设置后优先使用本地模型 | 空 | 否 |
ASR_DEVICE |
ASR 运行设备,例如 cpu、cuda:0、mps |
cpu |
否 |
ASR_COMPUTE_TYPE |
ASR 计算精度,例如 int8、float16、bfloat16 |
int8 |
否 |
ASR_MAX_INPUT_SECONDS |
单个音频切片最大长度 | 60 |
否 |
ASR_MAX_INFERENCE_BATCH_SIZE |
ASR 推理批大小 | 1 |
否 |
BATCH_CONCURRENCY |
批量任务并发数 | 5 |
否 |
ASR_CONCURRENCY |
ASR 转录并发数 | 1 |
否 |
WHISPER_MODEL_SIZE |
旧版兼容字段;显式设置后仅在 ASR_PROVIDER=whisper 时覆盖 ASR_MODEL |
注释状态 | 否 |
| 现象 |