video-to-llm
你的 LLM 无法看完一个 40 小时的课程。上传视频很慢,通常很贵,而且常常不被允许。自己抽取帧会消耗数百万 token,同时还丢掉了音频。
video-to-llm 把每段视频变成一份按时间顺序整理的文档——语音、被标记的静默片段、章节标题,以及可选的画面内容——全部按实际发生顺序排列,每一行都带时间戳,可回溯到它来自的准确帧。
只做一次。之后你想问多少问题就问多少,想用多少模型就用多少模型,只要你保留这个文件夹。
快速开始
uvx video-to-llm process lecture.mp4 --transcribe-model tiny这就是能最快看到效果的方式:tiny 语音模型下载量只有 75 MB,而不是默认模型的 1.4 GB。这样你大约一分钟后就能得到真实文档,而不是先花时间下载,再发现是否喜欢输出。等确定之后,去掉这个参数即可:
uvx video-to-llm process lecture.mp4还不能从 PyPI 安装。 名字已经被注册,但索引上还没有值得安装的东西:发布的唯一版本
1.0.0rc1发布时缺少 collections 模块,后来已被撤回。在 1.0.0 正式发布之前,请克隆仓库并运行uv sync,然后运行uv run video-to-llm process lecture.mp4 --transcribe-model tiny。
你需要把 FFmpeg 放到 PATH 里——版本 4 到 9 都可以。语音模型只在首次时下载一次,之后就不会再有任何网络访问。
video-to-llm doctor # check this machine is readytiny 很快但明显不够准确;medium 是默认值,因为它是默认最小的能保留一份可用的转录文本的模型。--transcribe-model 也支持 base、small 和 large-v3。
Related MCP server: video-reader-mcp
你会得到什么
这是真实的输出——来自 49 分钟真实录制的真实文本行,使用默认配置:
00:01:30 [nobody speaking · 11 seconds]
00:01:40 Yep, just so that you know, the first thing you'll do is you'll take everything out of
00:01:48 your chart.
00:01:49 When you're going to analyze the chart.
00:01:54 [nobody speaking · 4 seconds]
00:01:58 I think all of you know what trends are, right?
00:02:01 You're either going up or you're either coming down. Very simple, right?
00:02:05 But when you look at trends in terms of structure, what we are looking for is the basic.这就是整个产物:纯文本、时间顺序、时间徐指向源视频,并且完全属于你。你可以把它交给任何模型。可以用 grep 搜索。可以留十年。
核对任一行的会
每个时间戳都能解析回它背后的画面:
video-to-llm show lecture 00:02:05lecture.mp4 — 00:02:05
in job 'lecture'
00:02:01 You're either going up or you're either coming down. Very simple, right?
> 00:02:05 But when you look at trends in terms of structure, what we are looking for is the basic.
Picture: ~/Documents/VideoToLLM/lecture/…/frames/000062_t000124.jpg你的模型做出的断言,只有在你能够核实时才是证据。这就是核对的方法。
对比
一切都如实说明——包括在哪些情况下这是一个错误的工具。
video-to-llm | Clip tools ( | 上传视频 | |
视频长度 | 支持多小时。已在 49 分钟 / 1,488 帧和 15 小时课程上测试 | 只有数分钟;默认帧数限制为 50–150 帧 | 几分钟到一小时,且要成本 |
问第二个问题 | 免费且即时——复用文档 | 重新下载并重新处理 | 重新上传或重新付费 |
中间出故障能否恢复 | 可以,从出故障的位置精确定位 | 否 | 不适用 |
多个视频合成一份有序文档 | 可以 | 否 | 否 |
是否离开你的设备 | 永远不会,除非每个任务查询后主动选择 | 情况不同——录制时 | 完全离开 |
口语 |
| 情况不定; | 任何语言 |
成本控制前 | 每次请求前都会先检查上限 | 无 | 按次计费 |
断言可回溯到视频帧 | 是 | 否 | 否 |
准备时间 | 几分钟:只需要 FFmpeg 和一个 75 MB 模型 | 几秒 | 几秒 |
单个快速信息剪辑 | 性能超规格——请用别的工具 | 理想 | 理想 |
以上已于 2026 年 8 月 21 日根据这些项目自己的文档进行核对。它们会变化;如果这里发现某一行过时了,那是一个值得报的问题。
使用
从命令行
video-to-llm process lecture.mp4 # one video
video-to-llm process w1.mp4 w2.mp4 --name "Course" # several, in your order
video-to-llm process talk.mp4 --interval 5 # fewer pictures, faster
video-to-llm process demo.mp4 --describe local # add screen descriptions
video-to-llm process talk.mp4 --format jsonl # also emit structured data
video-to-llm show "Course" 01:12:30 # resolve a citation
video-to-llm export "Course" --format srt # subtitles, no reprocessing
video-to-llm status # what is done, what is running
video-to-llm run-next "Course" # jump the queue从智能体
video-to-llm mcp # MCP server on stdio; needs the [mcp] extra四个工具——process_video、list_videos、get_transcript、get_segment。process_video 幂等:如果让它处理一个之前处理过的视频,它会直接返回已有文档,而不是又重新做一遍。这正是它的意义所在。 40 小时的课程一次处理完;之后的每个问题都是即时、离线、免费的。
智能体â€T hat cannot choose a paid describe service through these tools choose nothing. That decision belongs on the setup screen, where the estimate and the spending cap are visible.
还有一个技能,它可以教智能体在执行任何昂贵操作之前,先检查已经处理了哪些内容:
npx skills add navdeep-h-singh/video-to-llm -gThat works in Codex, Cursor, Copilot, Gemini CLI, and anything else that reads Agent Skills. 对于 Claude Code,这个技能和 MCP 服务器会一起注册插件:
/plugin marketplace add navdeep-h-singh/video-to-llm
/plugin install video-to-llm@video-to-llm在浏览器中使用
video-to-llm start一个运行在 127.0.0.1 的界面,带有实时进度、帧检查器、任务控制,以及合集构建器。关闭浏览器不会终止任务。
合集
多个已处理的视频,按你明确指定的顺序,合成为一份文档,或者拆分为适合放进上下文窗口的有编号分块。构建合集完全是复用已有输出——它不会重新抽取帧,不会重新转录音频,也不会重新运行描述。
顺序永远不会从文件名、日期或内容中推断出来。同一天的早间两段录音本来就没有先后顺序,所以你要自己说明顺序。
隐私即机制
这不是口头承诺,而是一组有具体可执行的特征,一旦这些特征退成测试就会失败。
界面绑定到
127.0.0.1,并且在应用程序构造时断言。有一个中间件在每次写入时拒绝外部
Host和跨域来源。没有页面加载跨域资源。没有 CDN,没有网络字体,没有分析工具
你的视频永远不会被复制、移动或上传。
密钥由操作系统钥匙串存储——macOS Keychain、Windows Credential Manager、Linux Secret Service。永远不会创建明文降级方案,已保存的密钥也永远不会回显,甚至连前缀都不会。
没有账号、没有遥测、没有需要登录。
描述默认关闭。不启用描述的任务根本不会发出任何网络请求。
本地处理绝不会静默退回到云端。
可选:屏幕描述
默认关闭。启用后,你可以在自己的 Ollama 模型(帧 留在你的设备上,不花钱)和服务商之间选择。处理器会收到只有带编号的静止画面,永远不会收到视频,也不会收到音频。在外发任何内容之前,你会看到将发送什么以及大概成本,并且处理会在你设定的上限处停止。
系统要求
Python 3.11、3.12 或 3.13
PATH上带ffprobe的 FFmpeg语音模型所需空间——
tiny需要 75 MB,默认的medium需要 1.4 GB——另外还要存放帧的空间:2 小时的视频每 2 秒一帧大约需要 2 GB
GPU 在一切部分都是可选项。转录在所有平台上都使用 CPU 运行。
FFmpeg 9 完全没问题。 它删除了 -vsync,这是 FFmpeg 5 之前每个版本都要求的参数;提取过程在运行时读取一次版本,然后询问当前构建支持哪个标志,因此无论 4.x 到 9.x 都能工作。video-to-llm doctor 会打印它找到的版本以及今后要使用的标志。开发工作主要针对 8.1.2;其余版本由参数列表测试和 CI 矩阵覆盖。
其他安装方式
uv tool install video-to-llm # or: pipx install video-to-llm
uv sync # from a clone
docker build -t video-to-llm . # command line only, see the Dockerfile已知限制
这里刻意写出来留在这里,而不是留给你自己去发现。
屏幕描述仍处于 beta 阶段,其结构化字段只为单一领域编写。 它们是能生效的——在 49 分钟的图表录屏中,模型从屏幕上读对了品种、时间周期,也读到了真实数值——但八个字段中的五个(
timeframe、currency_pair、indicators_and_states、exact_action、setup_type)描述的是交易图表,这是有意为之,而非疏漏。在任何其他视频中,这五个字段都会返回Unknown。 模型宁可拒绝回答也不凭空编造,所以结果只是单薄,而不是错误;而且visible_text、visual_description和confidence对任何内容都仍然适用。无论哪种情况,这部分准确性都是未测的。背后的实验见docs/DESCRIPTION_QUALITY.md。转录文字、时间轴和引用信息是任何视频上都适用、可靠的部分。请以这些为准来评估这个工具。
转录准确度未被测量,而且 Whisper 有时会在静音上写出一行文本——转录稿的开头出现“Thanks for watching!”是模型生成的,不是你的视频里原有的内容。
本地描述很慢:在 Apple Silicon Mac 上约 31 秒/张,这是基于 1,488 张的测量结果。请改用更粗粒度的
--interval,或使用有配额上限的服务。没有任何云服务商做过真实服务的联测。 五个适配器只能根据文档中的请求和响应结构验证;本地 Ollama 已针对 0.32.6 与
qwen2.5vl:7b做了实机验证。还没有人在 Windows 或 Linux 上真正使用过,不过 CI 现在已经能在这两个系统上跑了。 开发完全是在 macOS(Apple Silicon)上完成的。测试套件已经能在这三个操作系统和三种 Python 版本上全部通过,构建出的 wheel 也在每个系统上源码检出目录之外完成安装并运行过,容器也能在无网络的情况下把流水线端到端跑完。这是真实存在的下限,但和使用不是一回事:一个全绿的矩阵只能说明那些路径、keyring 后端和符号链接回退方案在干净的 runner 上能工作,不能说明在你的机器、你的文件上都通用。无论来自这些平台中哪一边的使用报告,都是这个项目最需要的东西。
容器自带的是命令行,不是界面——界面要绑定回环地址(loopback),而在容器内部它对外部宿主机不可达。
不支持下载 URL。 仅支持本地文件。请先自己抓取到本地。
事件日志会无限制地增长。
文档
文档 | 覆盖内容 |
描述模型实际生成了什么,以及它没有生成什么 | |
各阶段的输入、输出、保证 | |
集合与上下文包 | |
密钥处理与 localhost 边界 | |
在本机运行描述功能 | |
崩溃、休眠或取消后如何恢复 | |
运行、暂停、监控 | |
将早期工作导入,把输出导出 | |
各平台下的装配 | |
构建时选择的那些取舍,以及原因 |
贡献
目前,来自真实使用的 bug 报告比其他任何东西都更有价值,尤其是在 Windows 和 Linux 上。参见 CONTRIBUTING.md。
许可证
MIT。参见 LICENSE。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to query local video timelines by extracting speech, frame captions, and on-screen text into a SQLite store, exposing search and retrieval tools via MCP.PolyForm Noncommercial 1.0.0
- AlicenseNot gradedqualityAmaintenanceExtracts ffprobe metadata, subtitles, scenes, and timelines from video files without frame-by-frame LLM vision, providing evidence-first reading for AI agents.472MIT
- AlicenseAqualityBmaintenanceLet AI agents watch videos: local transcripts, speaker labels, scenes, chapters and exact-moment search from any video URL or file. Fully local, no API keys.42AGPL 3.0
- AlicenseNot gradedqualityAmaintenanceLets any LLM agent actually watch videos: a watch_video tool takes a URL or local file and returns scene-aware keyframes fused with a timestamped transcript, processed 100% locally with per-source caching.2,053MIT
Related MCP Connectors
15 media & data tools for AI agents: search, transcribe, subtitles, voiceover, translate & more.
Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.
Extract YouTube transcripts, search what was said, and read on-screen frames with cited timestamps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/navdeep-h-singh/video-to-llm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server