VideoNote-Mcp
视频链接 → 多格式笔记
一条链接 → 一篇笔记 · 端到端或解耦,任意组合
中文 | English
快速开始 • 文档 • 真实案例 • 流水线地图 • 任务管理 • 最佳实践 • 如何贡献
VideoNote-Mcp 把「视频链接 → 多格式笔记」整条流水线打包成 MCP Server:给它一个链接,自动完成下载 → 语音转写 → 画面理解 → 弹幕/评论,并生成文字稿或笔记。
既可端到端使用(一条链接 → 一篇笔记),也可解耦:生成、素材、任务、媒体处理等工具按需取用。无需启动任何后端服务。
快速开始
配置 MCP 服务即可开始使用。
# 1) 注册独立 MCP(PyPI 已发布版本)
claude mcp add --scope user videonote -- uvx videonote@latest
# 2) 在终端配置转写 / 平台登录;默认笔记流程无需 LLM Key
uvx videonote@latest setup
# 3) 重启或重连 MCP,然后发送视频链接
支持 JSON 的 MCP 客户端也可使用:
{
"mcpServers": {
"videonote": {
"type": "stdio",
"command": "uvx",
"args": ["videonote@latest"]
}
}
}
如果之前配置过旧版插件,请先停用旧配置,再连接独立 MCP,避免同一个服务重复加载。
导出格式
- 字幕:支持 SRT、VTT 和 JSON,适合保存时间轴或导入其他工具。
- Markdown 笔记:可根据转写、画面和评论整理成便于阅读和继续编辑的笔记。
- LaTeX / Typst:安装包附带 Math Note、English Article 和 zju-lab 等模板,可在 MCP 客户端中列出、读取或复制到新目录。
- 模板复制不会覆盖已有目录。LaTeX / Typst 的编译器、字体和依赖需要在本机准备;MCP 负责提供素材与模板,不自动编译 PDF。
完整的导出说明见使用手册。
文档
安装 / 配置 / 使用 / 环境变量 / 更新 / 安全等完整说明已归档到 docs/(README 只保留概览):
真实案例
两个端到端真实案例:一个由对话助手直接生成 LaTeX mathnote PDF,一个走 全自动 LLM 生成产出便携 Markdown。
案例一 · agent_direct + LaTeX mathnote(DeepSeek-V4 视频)
一条视频 + 四类外部资料(论文 / 技术报告 / 公众号官宣 / 开源集合)→ 对话助手直接生成精修笔记,并输出 LaTeX mathnote PDF(中文楷体模板):
| Page1 | Page2 | Page3 |
|---|---|---|
- 无 LLM key:根据转写、帧图和评论整理笔记
- 多源交叉整合:视频 × 论文 × 技术报告 × 开源清单
- 精修保留原稿:
note.md/note_original.md双份 - LaTeX mathnote PDF:自适应修复字体缺失 / 断行溢出 / 引用去重
完整过程记录见 examples/agent-direct-deepseek-v4-mathnote/README.md。
案例二 · 全自动 LLM 生成 + 便携 Markdown(多视频并行)
极简 Prompt(3 个 B 站链接 + 输出目录,一个参数都没说明)→ 全自动跑完 环境检查 → 链接识别 → 供应商/模型发现 → 参数确认 → 多视频并行 → 生成后基于字幕精修,产出 3 份精修便携笔记(note.md + Assets/ 截图 + 「观众观点」章节,并保留 note_original.md 供对比)。
- 雅思:破误区 + 听/读/写/口语四科拆解 + 179 高频考点词 + 15 句逻辑框架
- 法医:从业 43 年法医「拉片」对比影视与现实,精修扩为 12 节
- Transformer:自注意力机制详解,18 张截图按讲课时间线分布
完整过程记录见 examples/note-generation-example/README.md。
流水线地图
实线为主流程:一条 prepare_note_material 出素材,由当前对话助手整理笔记;generate_note 是后备(对话助手无法看图时走配置 LLM)。虚线为可选能力(视频理解 / 弹幕评论)。各阶段细节见 docs/02-架构设计.md。
任务管理
每任务一个文件夹 note_results/{task_id}/:raw/(下载媒体)+ gen/(转写/笔记/帧/导出)+ 控制文件;全局任务索引在 SQLite video_tasks 表(含语义标题)。list_tasks 枚举全部任务(按语义标题识别)、cleanup(task_id, dry_run=True) 先查后清、cleanup 按任务 / 全局清理(默认保留配置与模型)、health_check 检查 FFmpeg / 数据库 / whisper 就绪。
flowchart TB
DATA["data/ 数据根"] --> R["note_results/ 任务目录"]
DATA --> DB[("video_note.db<br/>SQLite 全局任务索引")]
R --> T1["任务 A<br/>note_results/{task_id}/"]
R --> T2["任务 B<br/>…"]
R --> T3["任务 C<br/>…"]
T1 --> RAW["raw/ 原始材料<br/>音视频 · 封面"]
T1 --> GEN["gen/ 生成材料"]
T1 --> CTRL["status.json · result.json · manifest.json"]
GEN --> T1A["transcript.json 转写全文"]
GEN --> T1B["note.md 成稿笔记"]
GEN --> T1C["Assets/ 笔记内截图"]
GEN --> T1D["frames/ 关键帧原图"]
GEN --> T1E["srt / vtt / json 字幕导出"]
DB -. 索引 .-> T1
| 工具 | 说明 | 类型 |
|---|---|---|
list_tasks |
列出全部任务(全局索引,带语义标题) | MCP 工具 |
cleanup |
按任务清理(传 task_id)/ 全局清理(恢复出厂,不传) |
MCP 工具 |
health_check |
FFmpeg / 数据库 / whisper 就绪状态 | MCP 工具 |
最佳实践
- 学习备考:端到端 + 视频理解 + 基于字幕的后续优化,把课程讲透。
- 会议纪要:
process_media(action="merge")合并分段录音 →process_media(action="diarize")说话人分离 →meeting_minutes风格。 - 讲座精读:端到端生成后,根据完整字幕精修、按章节补齐细节。
- 视频赏析:开启弹幕 + 评论整合,笔记含「观众观点」章节。
- 默认路径:一条链接用
prepare_note_material,由当前对话助手整理笔记;无法看图或用户要求配置 LLM 时才用generate_note。只做媒体加工用process_media。 - 真实案例:完整案例过程记录见
examples。
如何贡献
欢迎提交 Issue、改进建议和 Pull Request。开发环境、测试命令、分支策略与代码导航见 CONTRIBUTING.md。
致谢
Release files for videonote 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| videonote-0.2.2.tar.gz | 20.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| videonote-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.5 MB
Release files / videonote-0.2.2.tar.gz
| Download URL | videonote-0.2.2.tar.gz |
|---|---|
| Size | 20.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
88c96aeaf44fd60edd25d694f572ad9532c02f17c7f1c6bd2a5fdc1f9b6b9ebe
|
|
BLAKE2b-256 checksum How to use checksums |
b7a9fbbc972ce048f8c9ef572ec28a5d378a49236fdba599e427609588852510
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / videonote-0.2.2-py3-none-any.whl
| Download URL | videonote-0.2.2-py3-none-any.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f4a0e117ffbe3a6bb42732317aec3dbe78e90a2f4f0e0c58595fdbda1c7b63e7
|
|
BLAKE2b-256 checksum How to use checksums |
33778596bbf8d26e0212df6385b3e6d5917239f242cdaa5bfed63235dadc81ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|