claude-real-video ─ 让任何大语言模型(LLM)都能观看视频
Claude-real-video - 任何大型语言模型(LLM)都能观看视频
claude-real-video 是一个开源工具,让大语言模型基于视频画面而非字幕进行理解。它通过场景变化检测提取关键帧、滑动窗口去重并转录音频,生成干净的本地文件夹供模型读取。支持 YouTube 链接或本地文件,依赖 ffmpeg 和 Whisper,通过 pip 安装。全部处理在本地完成,不上传云端。
这个工具把视频喂给 LLM 的过程从「固定采样 + 上传云」变成了「场景感知 + 本地去重」,大幅节省 token 且避免隐私泄露,用 Whisper 转录也更完整。是让任何 LLM 真正「看」视频的实用方案。
60 秒真实演示——真实安装、真实运行、真实查看器。
让 Claude——或任何 LLM——真正观看一段视频。
pip install "claude-real-video[whisper]" npx skills add HUANGCHIHHUNGLeo/claude-real-video # one command, installs the skill into Claude Code, Cursor, Codex, Copilot, Gemini CLI & 50+ agent hosts
然后把视频链接粘贴到你的智能体里,向它提问。(仅用 CLI?crv "<url>" 只需 pip install 即可使用。)
命名: crv 是 claude-real-video(PyPI 包)的简称。付费附加组件 crv Pro 在 Capafy 上以商品名 "llm-real-video Pro" 出售。
同一段 58 秒的片段:固定 1 fps 采样 = 58 帧。crv 只保留真正有差异的 26 帧——并且
--grid将它们打包成 3 张拼图。更少的 token,什么都没漏掉。
这个免费版本让你的 AI 看到视频。 crv Pro 则让它理解视频——它是如何拍摄的(剪辑节奏、镜头运动),以及一份带时间戳的时间线,呈现画面无法展示的内容:手势、表情、音高变化、情绪、声音事件。7 月 31 日前创始人一次性优惠价 $19(8 月 1 日起 $29)——在 Capafy 上获取或通过 Lemon Squeezy 用卡购买。
大多数 AI 工具其实并不能真正看懂视频。把 YouTube 链接粘贴进 ChatGPT,它读的是字幕文本,而不是画面。Claude 根本不接受视频文件。即便是能够原生读取视频的 Gemini,也必须把视频上传到 Google,并以固定间隔采样帧(默认 1 fps),因此快速剪辑的镜头会被漏掉。
claude-real-video 的做法不同,处理在本地运行:给它一个 URL 或文件,它会提取真正重要的帧(每一次场景切换,而非固定配额),丢弃近乎重复的帧,转录音频,然后交给你一个任何 LLM 都能读取的干净文件夹。所有处理都在你自己的机器上完成——发送到任何地方的内容,只有你之后选择粘贴进 LLM 的那些帧/文本你。
crv "https://www.youtube.com/watch?v=..." # → crv-out/frames/*.jpg + frames.json (per-frame timestamps) + transcript.txt/.json + MANIFEST.txt
然后把这些帧 + MANIFEST.txt 丢进 Claude / ChatGPT / Gemini,随便问。
无需终端——运行 crv-web,会打开一个本地页面(繁体中文 / 简体中文 / 英文):粘贴 YouTube 或 Reels 链接或文件路径,点击 Analyze,打开结果查看器。视频分析和输出生成都在你的机器上运行——源视频永远不会被上传。(如果你随后把提取出的帧或转录文本粘贴到云端 LLM,那这些数据会发送给该服务商。)
想先亲眼看看模型会看到什么?加上 --viewer —— 它会写出一份本地的 viewer.html(视频 + 关键帧网格 + 转录文本),你可以双击打开。无需联网,无需额外安装。
变化缓慢的内容(动画教程、渐变变形、缓慢平移):加上 --adaptive —— 帧的挑选是相对于其滚动邻域进行的,而不是基于固定阈值,因此一段 2-3 秒的挤压拉伸即使从未让任何单帧出现峰值,也仍会被捕捉到。
文字密集的内容(讲座幻灯片、屏幕录制、口播讲解):加上 --text-anchors —— 会在字幕提示时间戳处强制插入额外帧,因此即使画面几乎不变,每一段语音也都能获得与之匹配的画面。需要配套的 .srt/.vtt 或内嵌字幕轨道 —— 烧录进像素里的字幕无法被检测到。每秒最多强制插入一帧;场景检测不受影响。
多说话人内容(访谈、播客、会议):加上 --speakers —— 每一行转录文本都会带上说话人标签([SPEAKER_00]、[SPEAKER_01]、……),这样模型就能跟上谁说了什么。会运行一个本地说话人分离模型(45 MB,下载一次,无需账号或 token)。用 pip install "claude-real-video[speakers]" 安装。
不做 LLM 相关工作?它也能当作一个通用视频关键帧提取器来用 —— 场景变化检测 + 去重,无需下载任何 ML 模型。
在使用 Claude Code——或任何编码智能体? 一条命令即可安装该技能(适用于 Claude Code、Cursor、Codex、Copilot、Gemini CLI 以及其他兼容 agentskills.io 的宿主):
pip install "claude-real-video[whisper]"
npx skills add HUANGCHIHHUNGLeo/claude-real-video然后只需把视频链接粘贴到你的智能体里,就能向它提问。
手动安装(克隆 + 复制)
git clone https://github.com/HUANGCHIHHUNGLeo/claude-real-video.git mkdir -p ~/.claude/skills && cp -r claude-real-video/skills/claude-real-video ~/.claude/skills/
0.3.0 新增功能——告诉它你为什么要看这个视频,并把它发现的内容保存下来:
crv "https://youtu.be/..." --why "find the pricing strategy" --kb ~/notes
--why 让分析聚焦于你关心的内容,而不是泛泛的摘要;--kb 会把结果作为带日期的笔记保存到你自己的笔记文件夹中,这样它就不会死在 crv-out 里。
为什么不直接采样帧呢?
大多数“让 LLM 看视频”的脚本(以及 Gemini 自己的流水线)都是按固定间隔抓取帧——比如每秒一帧。这对静态录屏来说采样过度,而对快切短片来说采样不足。claude-real-video 更聪明:
| 固定间隔采样 | claude-real-video | |
|---|---|---|
| 帧选择 | 每 N 秒 | 场景切换检测 + 密度下限 |
| 重复镜头(A-B-A 剪辑) | 每次都重新发送 | 滑动窗口去重让每个镜头只发送一次 |
| 静态幻灯片(10 分钟) | 约 600 帧几乎完全相同 | 压缩为 1(去重) |
| 快切混剪 | 漏掉采样间隔之间的帧 | 捕捉到每一次画面变化 |
| 音频 | 常常被忽略 | 带语言检测的 Whisper 转录 |
| 处理在哪里进行 | 常常在别人的云端 | 在你自己的机器上(之后由你决定与 LLM 分享哪些内容) |
| 输入 | 通常仅限本地文件 | URL(yt-dlp)或本地文件 |
你向模型输入更少、更有意义的帧——上下文更省,理解更好。
安装
pip install "claude-real-video[whisper]" # recommended: frames + dedup + audio transcription pip install claude-real-video # core only (frames + dedup)
pip 附加组件从不会自行安装——没有[whisper]就没有语音转文字(自带字幕的视频仍能获得转录文本)。
系统要求:ffmpeg
ffmpeg / ffprobe用于帧提取和音频处理,无法通过 pip 安装。请一次性安装它们:
| 操作系统 | 命令 |
|---|---|
| macOS | brew install ffmpeg |
| Linux | sudo apt install ffmpeg(或你所使用发行版的包管理器) |
| Windows | winget install Gyan.FFmpeg — 或者 choco install ffmpeg — 或者 下载一个构建版本,并将其 bin\ 文件夹添加到你的 PATH |
验证它已在你的 PATH 上:
ffmpeg -version
转录使用 whisper CLI(由 [whisper] 附加组件安装,或 pip install openai-whisper)。Whisper 还依赖 ffmpeg。
更快且不会产生模型幻觉的转录(推荐): 安装 [fast] 附加组件后,crv 会自动切换到 faster-whisper —— 相同的模型、相同的输出文件,速度快数倍,并由 Silero VAD(语音活动检测)把关:纯音乐或静音音频会给出诚实的"无语音"提示,而不是 whisper 那种经典的凭空编造字幕。无需学习任何新参数:
pip install 'claude-real-video[fast]'如果两者都已安装,faster-whisper 优先;如果它出现故障,crv 会自行回退到 whisper CLI。
适用于 macOS、Windows 和 Linux —— Python 3.10+。
用法
# A YouTube / Instagram / TikTok / ... link crv "https://www.instagram.com/reel/XXXX/" # A local file, English transcript, output to ./out crv lecture.mp4 -o out --lang en # Frames only, no transcription crv clip.mp4 --no-transcribe # A login-gated video (your own / authorised use): pass a Netscape cookie file crv "https://..." --cookies cookies.txt
python -m claude_real_video ... 也可作为 crv 的别名使用。
选项
| 参数 | 默认 | 含义 |
|---|---|---|
-o, --out | crv-out | 输出目录 |
--overwrite | 关闭 | 替换输出目录中已有的分析结果(若不使用此选项,非空的输出目录将被拒绝,以避免视频混合) |
--scene | 0.30 | 场景变化灵敏度(值越低 = 帧数越多) |
--fps-floor | 1.0 | 每 N 秒至少一帧 |
--max-frames | 150 | 总帧数硬性上限 |
--adaptive | 关闭 | 自适应场景检测:通过将每一帧与其滚动邻域进行比较,捕捉固定阈值会漏掉的缓慢变化(2-3 秒的挤压/拉伸、渐进平移) |
--text-anchors | 关闭 | 在字幕提示时间戳处强制插入额外帧(外挂 .srt/.vtt 或内嵌轨道)——适用于含义变化比画面变化更快的视频;每秒最多强制插入一帧 |
--speakers | 关闭 | 通过本地说话人分离为每一行转录文本标注说话人([SPEAKER_00] …)——需要 pip install "claude-real-video[speakers]",一次性下载 45 MB 模型 |
--lang | auto | Whisper 语言(en、zh、auto……) |
--whisper-model | base | 用于转录的 Whisper 模型(tiny/base/small/medium/large/turbo —— base 速度快;想要更精准的转录?--whisper-model turbo 只差一个参数:接近 large-v2 的准确率,速度约为其 8 倍,一次性下载 1.6GB,内存占用约 6GB) |
--dedup-threshold | 8 | 一帧要被算作新帧所需变化的像素百分比;越高 = 帧数越少(settled-local 检测器的门限也随之缩放) |
--dedup-window | 4 | 与最近保留的 N 帧进行比较 —— 模型已经看过的镜头在切走后不会再次出现(1 = 仅比较连续帧) |
--report | 关闭 | 将丢弃的帧保留在 ./dropped 中 + 写出 report.html,可视化每一次保留/丢弃的决策 |
--no-transcribe | 关闭 | 跳过音频 |
--keep-audio | 关闭 | 同时保存完整原声(audio.m4a),这样音频模型就能听到它 |
--viewer | 关闭 | 同时写入viewer.html——在一个本地页面中浏览视频、关键帧和转录文本(双击打开) |
--grid | 关闭 | 同时将保留的帧拼接成 3x3 联系表(./grids)——连续帧并排放置有助于模型理解运动和进展 |
--why | – | 你观看的原因,例如 --why "find the pricing strategy"——写入 MANIFEST.txt,这样模型就会以该视角进行分析,而不是给出泛泛的总结 |
--kb | – | 同时把分析结果以带日期的 markdown 笔记保存到这个文件夹(你的 Obsidian vault、notes 目录……)——这样它就能加入你的知识库,而不是死在 crv-out 里 |
--cookies | – | 用于需要登录才能访问的来源的 Netscape cookie 文件 |
--cookies-from-browser | – | 直接从你自己的浏览器读取登录 cookie —— chrome、safari、firefox 或 edge(仅限你自己的账号) |
--grid 的输出长什么样
一张联系表 = 九个连续的关键帧,按顺序排列,每个单元格上标注文件名——模型读取的是一个序列,而不是零散的单帧:
从 Python 中使用它
from claude_real_video import process r = process("https://youtu.be/...", "out", lang="en") print(r.frame_count, r.)
工作原理
- 抓取 —— 对 URL 使用
yt-dlp(可选 cookie),或者复制本地文件。 - 提取——一次按时间顺序的
ffmpeg select遍历即可捕获每一个场景变化以及一个密度下限(至少每--fps-floor秒一帧),因此快速剪辑和缓慢的屏幕录制都能覆盖到。 - 去重——两个检测器,针对一个滑动窗口由最近
--dedup-window保留的帧组成,因此一个 A-B-A 式的切回镜头不会重新发送模型已经看过的画面。一个全局通道衡量真实像素差异(降采样的 RGB,而非感知哈希——哈希在纯色和等亮度色相变化上会失灵);--dedup-threshold是其中必须发生变化的比例。一个局部稳定通道(v0.7.4)能捕捉全局通道看不到的东西:细笔画、字幕/文字卡片的切换,以及全局平均下来约 0% 的小幅 UI 更新。它在一个更精细的特征签名上,寻找一个与所有近期保留帧都强烈不同的区域(带有 1px 的位移容差,因此胶片颗粒和帧抖动不会触发)并且不再变化——是一个稳定的新状态,而非运动进行中——并带有冷却时间,因此每秒停顿一次的持续运动(飘动的旗帜、飘移的烟雾)无法反复触发。最后一帧即使仍在运动中也会被评估(因此视频的结束状态绝不会丢失),但它必须像其他任何帧一样通过两道对比度门槛。--report写道report.html展示每一个保留/丢弃决策及其差异百分比(已确定为本地保留的会被标注),以便进行调优。 - 文本 — 如果视频已经有字幕(本地文件旁边的 sidecar
.srt/.vtt,或内嵌字幕轨道),则直接将其用作转录文本——比重新转录更快也更准确。只有在没有字幕时,才会回退到对音频使用Whisper(如果没有音频则干净地跳过)。 - 音频 (可选,
--keep-audio) — 保存完整的原始音轨(audio.m4a:音乐 + 语音 + 音效,尽可能无损复制)。转录文本只有文字;音频文件则让能听的模型(Gemini、GPT-4o 等)真正听到音乐和语气。 - 时间戳 — 每个保留帧的源视频时间在整个流程中(提取 → 去重 →
--max-frames抽稀 → 重命名)都得以保留,并写入frames.json(file/timestamp_sec/timestamp/selection_reason)。可将视觉证据引用为frame_012 @ 00:03:41,将帧与transcript.json片段对齐,或将此映射表输入视频 RAG 流程。在viewer.html中,点击任意关键帧 →“从此处播放视频”。 - 清单 —
MANIFEST.txt为模型汇总一切信息。
所以模型可以看(关键帧)、读(转录文本),并且借助--keep-audio,听(完整音轨)视频。转录文本是任何模型都能读取的纯文本;该工具不会把字幕烧录进视频——烧录是一种呈现方式的选择,并不是让视频可被 AI 读取所必需的东西。
说明
- 只下载你有权下载的内容。
--cookies选项是供你自己获得授权的访问使用——不要把凭据提交到仓库里。 - 每个视频使用一个输出文件夹。若重新运行到一个已经存有分析结果的文件夹,会被拒绝(这样两个视频永远不会混在一起);传入
--overwrite可将其替换。
crv Pro——理解如何拍摄一个视频
这个免费工具为你的 AI 提供关键帧和转录文本——足以了解一个视频讲的是什么。crv Pro 则补上其余一切:如何拍摄、如何剪辑、如何讲述、给人什么感觉。全部在你的机器上计算,写成任何 LLM 都能读取的纯文本。
- 镜头与节奏(
--motion)——每个镜头自动标注:静止、平移、俯仰、变焦、手持。完整镜头表:每个镜头的时长、每分钟剪辑次数、开场/中段/结尾的节奏。高运动镜头会获得间隔 0.2s 的连拍帧。 - 声音与情感(
--senses)——语音情感、语调曲线和音频事件(笑声、音效、环境音)逐段打上时间戳。人声与音乐自动分离:情感分析读取干净的人声,音乐则拥有独立的 BPM + 能量轨道。无对白素材(MV、电影)则回退到从色彩和光线中读取情绪。 - 交互式查看器(
--viewer)——每次分析生成一个自包含的网页:视频、可点击并跳转到对应秒数的事件时间轴、随播放同步高亮的转录文本。支持英语 / 繁体中文 / 简体中文。 - 两份报告,一个开关(
--ai-report)——使用你自己的 API key:一份报告讲它是怎么拍的,一份讲它说了什么。 - 拆解报告(
--breakdown)——钩子分析、节奏曲线、镜头语言,以及一份评分标准,供你自己的 LLM 补全成完整的拆解。
创始人一次性优惠价 $19,截至 7 月 31 日——$29 自 8 月 1 日起:
- 在 Capafy 购买(即时下载,含许可证密钥):https://capafy.ai/agent/llm-real-video-pro-let-any-llm-watch-videos/5451082151
- 用信用卡购买(Lemon Squeezy 结账,即时下载):https://leoaido.lemonsqueezy.com/checkout/buy/ff552000-adc0-49f1-8eec-5e8ada1905a1
- 产品页面与演示:https://leoaido.com/crv-pro/
在关注这个项目的开发过程吗?我正在公开记录从开源工具到第一位付费客户的历程——X 上的 @LeoAidoAI。
来源:Hacker News 热门(buzzing.cc 中文翻译) · github.com