开源项目第190期:claude-video — 给 Claude 装上「眼睛」看视频,一条命令分析 YouTube/Loom/本地视频

引言

"Claude 能读代码、能分析图片,唯独看不了视频------直到这个工具出现。"

这是「每日一个开源项目」系列的第 190 篇 。今天的项目是 claude-video ------ Brad Bonanno(Solaris Automation)开源的 Claude 技能插件,核心命令是 /watch,让 Claude 真正能"看"视频并回答关于视频内容的任何问题。

bash 复制代码
/watch https://youtube.com/watch?v=xxx  这个演讲的核心论点是什么?
/watch bug-repro.mov  视频里发生了什么错误?
/watch 产品Demo.mp4  提取所有功能点并整理成列表

15,200 颗 Star,MIT 许可。

你会学到什么

  • 7 步视频分析流水线的技术设计
  • 字幕优先策略:为什么这个设计决策大幅降低成本
  • 帧去重的 MAD 算法:16×16 缩略图如何捕捉慢速渐变
  • Token 预算自动管理:按视频时长动态调整帧数
  • 四档精度模式和参数控制
  • 在 Claude Code 和其他 Agent 宿主上的安装方式

前提知识

  • 用过 Claude Code 或类似 AI 编程 Agent
  • 了解基本的视频概念(帧、转录)
  • 不需要了解 Python 或 ffmpeg

问题背景

Claude 支持图片输入,但原生不支持视频。视频文件太大,不能直接塞进上下文;就算能塞,没有转录文本的纯帧序列也会损失大量信息。

现有的"让 AI 看视频"方案通常是:全量下载 → 固定 fps 均匀采样 → 全部帧送给模型。这种方案有三个问题:

  • 浪费 Token:一段静止画面会产生大量重复帧,每帧都占 Token
  • 忽略音频:没有转录文本,演讲内容、对白、说明全部丢失
  • 成本不可控:50 分钟视频固定 fps 采样可能产生数百张图片

claude-video 的方案在每个环节都有针对性的优化。


7 步流水线

css 复制代码
视频 URL / 本地路径
    ↓ [1] yt-dlp 尝试获取字幕
    ↓ [2] 有字幕?直接用,跳过下载
    ↓ [3] 无字幕?下载视频,ffmpeg 提取帧
    ↓ [4] MAD 算法去重,场景变化感知
    ↓ [5] Whisper 转录音频(Groq 优先)
    ↓ [6] 帧 + 转录文本送入 Claude 上下文
    ↓ [7] Claude 回答,清理临时文件

关键优化 1:字幕优先,零下载

很多视频平台(YouTube 尤其如此)有原生字幕或 CC 字幕。yt-dlp 在下载视频之前会先尝试获取字幕文件。

如果获取到了字幕:

  • 不下载视频,不提取帧,不调用 Whisper
  • 解析 VTT 字幕文件,直接作为转录文本
  • 整个流程从 37 秒(下载 76MB 视频)缩短到 4.5 秒

一段 49 分钟的 YouTube 视频,transcript 模式只需 4.5 秒,Token 消耗接近零。

关键优化 2:场景感知帧提取

不是按固定 fps 均匀采样,而是检测场景变化------只在画面内容真正发生变化时才取帧。

技术实现:

  1. ffmpeg 先输出原始帧序列
  2. 每帧缩至 16×16 灰度缩略图(标准库实现,不需要 Pillow 等额外依赖)
  3. 计算当前帧与上一个被保留帧的平均绝对差值(MAD,0~255)
  4. MAD ≤ 2.0:认为是近重复帧,丢弃
  5. 帧预算上限在去重之后才生效

有一个设计细节值得注意:和"上一个保留帧"比,而不是和"上一帧"比。

这个区别处理的是慢速渐变

css 复制代码
帧A → 帧B → 帧C → 帧D(场景完全切换)

帧A vs 帧B:MAD = 0.5(很相似,B 丢弃)
帧A vs 帧C:MAD = 1.0(还是相似,C 丢弃)
帧A vs 帧D:MAD = 8.0(变化显著,D 保留)

如果和"上一帧"比,帧 B、C、D 每帧只和前一帧比较,慢速淡出每步差值都很小,直到最后一帧才超阈值。和"上一个保留帧"比,累计差值会随时间增大,最终正确捕捉到场景切换。


Token 预算自动管理

帧数不是固定的,按视频时长自动调整:

视频时长 默认帧预算
≤ 30 秒 ~30 帧
30 秒 ~ 1 分钟 ~40 帧
1 ~ 3 分钟 ~60 帧
3 ~ 10 分钟 ~80 帧
> 10 分钟 100 帧(上限模式)

每帧的 Token 估算公式:(宽 × 高) / 750。默认 512px 宽的图片,每帧约 197 个 Token。100 帧 ≈ 约 20,000 Token 的视觉输入,加上转录文本,在可控范围内。

超过 10 分钟的视频触发"稀疏扫描"警告,提示用户用 --start/--end 聚焦到感兴趣的时间段。


四档精度模式

通过 --detail 参数控制:

模式 帧数上限 速度 适合场景
transcript 0 帧 ~4.5 秒 演讲、播客、纯语音内容
efficient 50 帧 ~0.5 秒 快速预览,了解大概
balanced(默认) 100 帧 ~21 秒 日常使用均衡点
token-burner 无上限 ~21 秒 完整覆盖,不在乎成本
bash 复制代码
# 快速摘要一个演讲(只要字幕,不要帧)
/watch talk.mp4 --detail transcript  总结核心论点

# 快速扫一眼一个视频
/watch demo.mp4 --detail efficient  有什么功能?

# 分析 bug 录屏,需要完整帧信息
/watch bug.mov --detail token-burner  发生了什么错误?

聚焦模式

对长视频,可以只分析某个时间段,帧密度更高,成本更低:

bash 复制代码
# 只看 5:30 到 8:00 之间的内容
/watch lecture.mp4 --start 5:30 --end 8:00  这段讲了什么?

# 精确时间戳抓帧(适合分析特定截图)
/watch product.mp4 --timestamps 1:20,3:45,6:10  这三个时刻各显示了什么?

# 提高分辨率(读屏幕上的文字时需要)
/watch screen-recording.mov --resolution 1024  读取代码内容

支持的视频来源

通过 yt-dlp,支持 50+ 平台:YouTube、Loom、TikTok、X(Twitter)、Instagram、Bilibili、Vimeo 等。

也支持本地文件:.mp4.mov.mkv.webm


安装

Claude Code(最简单):

bash 复制代码
/plugin marketplace add bradautomates/claude-video
/plugin install watch@claude-video

Codex / Cursor / GitHub Copilot / Gemini CLI 等

bash 复制代码
npx skills add bradautomates/claude-video -g

claude.ai 网页版 : 下载 watch.skill 文件,在设置 → 功能 → 技能里上传。

首次运行自动检测并安装系统依赖:

  • macOS:通过 brew 自动安装 yt-dlp 和 ffmpeg
  • Linux:打印对应的 apt / dnf 命令
  • Windows:打印 winget 命令

API Key 配置

能力 需要 费用
下载 + 原生字幕 无需 API key 免费
Whisper 转录(首选) Groq API Key 极低价,极快
Whisper 转录(备选) OpenAI API Key 标准定价
禁用转录 --no-whisper 免费,仅帧

没有 Groq / OpenAI key 的情况下,用 --no-whisper 仍然可以分析视频画面内容,只是没有语音转录。


典型使用场景

竞品分析

bash 复制代码
/watch 竞品产品Demo.mp4  列出所有功能点和界面设计特点

Bug 诊断

bash 复制代码
/watch bug-repro.mov  描述错误发生的完整过程,界面上显示了什么

视频笔记

bash 复制代码
/watch 培训视频.mp4 --detail balanced  提取关键知识点,整理成带时间戳的笔记

内容去水分

bash 复制代码
/watch 广告视频.mp4 --detail transcript  去掉营销用语,提取实质信息

项目地址与资源


总结

claude-video 的技术设计体现了一个好的工程判断:在每个环节找到最低成本的路径,而不是暴力解决问题。

字幕优先把最常见场景(有字幕的 YouTube 视频)的成本压到接近零;MAD 帧去重消除了静止画面的冗余 Token;按时长动态调整帧预算让短视频密集覆盖、长视频不超限。这三个优化叠加起来,使得它的实际 Token 消耗比"固定 fps 采样"方案低一个数量级。

15,200 Stars 的增长速度说明"让 AI 看视频"是一个真实需求,而不是 demo 项目。支持 50+ Agent 宿主的多平台设计,也说明作者认真考虑过生态兼容性。


探索 PrimeSkills ------ 精选 AI Agent 与技能的市场,每一个都经过真实企业工作流验证,去掉浮夸,留下真正有用的。

欢迎访问我的个人主页,发现更多有价值的见解和有趣的产品。

相关推荐
七牛开发者1 小时前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j
dear_bi_MyOnly1 小时前
AI人工智能分类识别——机器如何学习
人工智能·学习·分类
冬奇Lab1 小时前
Code Agent 解剖(04):系统提示词是怎么组装的,agent 的「人格」从哪来?
人工智能·开源·agent
河南凹凸环境艺术设计1 小时前
性价比高的民宿酒店设计企业
大数据·人工智能·python
饼饼学习空间智能1 小时前
家庭服务机器人训练数据怎么积累?仿真、真实采集与持续学习的技术路线分析
人工智能·算法·机器学习
千里念行客2402 小时前
业绩与创新双兑现!科伦博泰的Biopharma进阶之路
大数据·人工智能
深蓝海域知识库2 小时前
评学问练考:大模型AI智能学院——重塑学习培训
人工智能
漂流瓶jz2 小时前
【AI】一文读懂大模型生态:分类/参数/结构/训练/GPU/评测/排行/社区
人工智能·llm·openai
一点一木3 小时前
Hermes Desktop 重磅更新,Bot Mode 正式上线——把你的 AI 变成一支可协作的专属团队
人工智能·agent