Claude 终于能“看”视频了!这个开源项目让我刷视频效率翻倍


平时工作里,最烦的就是“看视频找信息”。领导甩来一个 20 分钟的竞品演示视频,让我“提炼亮点”;客户发来一段Bug录屏,要快速定位问题;或者刷到一条干货视频,想记笔记却懒得从头看到尾。手动快进、暂停、记笔记,效率低得要命。

这个开源项目直接让Claude\Codex等“看懂”了视频。不是简单读标题或摘要,而是真正提取画面、听音频、理解内容,然后按你的要求回答。

项目简介

我们每天被视频信息包围,但真正吸收的有效内容很少。

这个工具把“被动看视频”变成了“主动问视频”

,把时间从机械刷视频里解放出来,交给更有价值的思考和行动。

简单说,你扔给它一个视频链接(YouTube、TikTok、Vimeo 等)或者本地文件(mp4、mov 等),再问一个问题,它就能帮你处理。

赋予 Claude 观看任意视频的能力。

Claude 可以阅读网页、运行脚本、浏览仓库。但开箱即用时,它

无法观看视频

。你粘贴一个 YouTube 链接,它只能根据标题猜测,或者拉取缺少屏幕上 90% 内容的转录文本。

使用 Claude Video

/watch

,你可以粘贴 URL 或本地路径并提出问题,Claude 会先获取字幕,只下载必要部分,按所选细节模式提取帧(场景感知,或

efficient

模式的快速关键帧),拉取带时间戳的转录文本(优先使用免费字幕,Whisper API 作为后备),并以图像形式

Read

每一帧。回答时,它已经

看过

视频并

听过

音频。

 /watch https://youtu.be/dQw4w9WgXcQ 30 秒处发生了什么?

工作原理

  你粘贴视频和问题。

 支持 URL(yt-dlp 支持的任何来源——YouTube、Loom、TikTok、X、Instagram 等数百种)或本地路径(

  .mp4

 、

  .mov

 、

  .mkv

 、

  .webm

 )。

   yt-dlp

  优先检查字幕。

 在

  transcript

 细节模式下,有字幕的 URL 无需下载视频即可返回。否则,或需要 Whisper 处理音频时,只下载必要部分。

   ffmpeg

  按所选细节提取帧。

  efficient

 只解码关键帧(几乎瞬间完成);

  balanced

 /

  token-burner

 优先使用场景变化帧,如果产出不足则回退到时长感知的均匀采样器。默认 JPEG 宽度 512px,高度限制在 1998px 以兼容 Claude Read。

  转录文本来自两个来源之一。

 优先:

  yt-dlp

 从源头拉取原生字幕(手动或自动生成)。免费、即时、相对准确。后备:提取单声道 16kHz 64kbps mp3 音频片段(约 480 kB/分钟)并发送给 Whisper——优先使用 Groq 的

  whisper-large-v3

 (更便宜更快),或 OpenAI 的

  whisper-1

 。

  帧 + 转录交给 Claude。

 脚本会打印带

  t=MM:SS

 时间标记的帧路径和带时间戳的转录。Claude 并行

  Read

 每一帧——JPEG 可直接作为图像出现在上下文中。

  Claude 的回答基于屏幕实际内容和音频。

 不是“根据描述”或“根据标题”。它看到了帧,听到了转录,像真正看过视频的人一样回答。

  清理。

 脚本会在结束时打印工作目录。如果不进行后续提问,Claude 会将其删除。

帧预算 —— 为什么重要

Token 成本主要由帧主导。每帧都是一张图像,图像 token 会快速累积。脚本的自动 FPS 逻辑正是为了避免在 30 分钟视频的稀疏扫描上浪费上下文预算,而更好的做法是用聚焦的 30 秒窗口来回答。

    时长

    默认帧预算

    效果

    ≤30 秒

    ~30 帧

    密集——基本覆盖每个关键时刻

    30 秒 - 1 分钟

    ~40 帧

    仍然密集

    1 - 3 分钟

    ~60 帧

    舒适

    3 - 10 分钟

    ~80 帧

    稀疏但可用

    > 10 分钟

    100 帧(受限模式)

    “稀疏扫描”警告 —— 建议用

     --start

    /

     --end

    重新聚焦运行,或使用

     --detail token-burner

    进行完整无上限覆盖

当用户指定某个时刻(“大约 2:30”、“最后 30 秒”、“从 0:45 到 1:00”)时,请传递

--start

/

--end

。聚焦模式会获得更高的每秒帧密度,最高 2 fps。远比全片稀疏扫描更有用。

帧去重

帧选择(关键帧

efficient

、场景变化检测

balanced

/

token-burner

,或回退的均匀采样器)仍可能产生近似相同帧:一段静态幻灯片保持 90 秒的屏幕录像会产生十多张几乎一样的帧,每张都按单独图像计费。去重步骤会在帧送达 Claude 之前丢弃它们。默认在所有帧模式下启用(

--no-dedup

可关闭):

 用一次

  ffmpeg

 调用将每个提取的 JPEG 缩放到 16×16 灰度缩略图。后续全部使用纯标准库 Python —— 无需图像库。

 对每个帧,计算与

  上一个保留帧

 的

  平均绝对差

 (每个像素亮度变化的平均值,0–255 范围)。

 如果差值小于等于阈值(

  2.0

 ),则视为近似重复并丢弃。否则保留并作为新的参考帧。

 帧预算上限在

  去重之后

 应用,因此预算用于 distinct 内容。

与上一个

保留

帧比较(而非前一帧)能捕捉慢淡入淡出等情况。阈值故意设得较低且仅测量绝对亮度,而非结构,因此一行代码差异、终端滚动一行、或两张不同颜色的纯色幻灯片都能保留。

Frames

行会报告合并情况,例如

6 selected from 14 candidates (… 8 near-duplicates dropped …)

。在持续运动的画面中不会丢弃任何帧,你支付的费用和你预期的一致。

细节模式 —— 实测数据

--detail

旋钮在速度、token 成本和视觉保真度之间权衡。以下数据来自对一个

49:08

YouTube 视频(1280×720,英文自动字幕)的真实运行 —— 长时长、基本静态的屏幕录像,是最考验上限的场景。提取时间为本地 CPU 对已下载副本的测试;一次性下载约

37 秒

/ 76 MB,由三种帧模式共享。

    模式

    引擎

    帧数

    上限

    提取时间

    时间覆盖

    估算图像 token

    transcript

    无(仅字幕)

    0

    —

    ~4.5 秒

    (仅一次 yt-dlp 调用,无下载)

    全文(文本)

    0(≈26.6k 文本 token)

    efficient

    关键帧 (

     -skip_frame nokey

    )

    50

    50

    ~0.5 秒

    0:00 → 49:04(完整)

    ~9.8k

    balanced

    场景变化

    100

    100

    ~20.9 秒

    0:00 → 48:38(完整)

    ~19.7k

    token-burner

    场景变化

    116

    无上限

    ~21.0 秒

    0:00 → 48:38(完整)

    ~22.8k

  图像 token

 使用 Anthropic 的

  (宽度 × 高度) / 750

 计算 —— 默认 512px 宽度下,这些 720p 帧为 512×288,

  ≈197 token/帧

 ;

  --resolution 1024

 大约是 4 倍。字幕在所有有字幕模式下都会出现,长视频中往往是更大的成本。

  所有帧模式采用同一采样规则

 。每个模式先检测全范围的所有候选帧,然后均匀采样(始终保留首尾帧)到各自上限。模式仅在候选

  来源

 (关键帧 vs 场景切)和上限上不同,从不改变覆盖分布方式 —— 因此最后一帧始终落在结尾,而非中途。

   efficient

  是速度档

 (~0.5 秒)—— 它只重建关键帧,因此比需要解码每一帧来找切点的场景模式快约 40 倍。在低运动画面中它也可能返回

  更多

 帧(关键帧数量多于场景切点);“efficient”指的是提取速度快,而非帧数少。

   token-burner

  仅在超过上限时与

   balanced

  不同。

 本视频有 116 个切点,因此

  balanced

 采样 100 帧,而

  token-burner

 保留了全部 116 帧。在高运动视频有数百个切点时,

  token-burner

 会保留全部(并触发 >250 帧 token 警告),而

  balanced

 会稀释到 100 帧。

从冷 URL 端到端来看,

transcript

模式成本最低;帧模式会在上述提取时间基础上额外增加共享的 ~37 秒下载时间。

安装和使用

安装和使用门槛非常低。

  最推荐的方式

 (Claude Code 用户):在对话里输入两行命令安装插件,之后直接用

  /watch + 链接 + 问题

 就行。

 其他 AI 编程工具(Cursor、Codex 等)也可以通过 Agent Skills 安装。

 claude.ai 网页版用户可以下载 .skill 文件手动导入。

第一次运行会自动检查依赖(ffmpeg 和 yt-dlp),macOS 用户甚至能一键安装。整个过程基本零配置。

费用方面:

 大多数公开视频靠免费字幕就能跑。

 没有字幕时才需要 Whisper API,Groq 选项便宜又快。

 图像 token 是主要开销,建议根据视频长度和需求选

  efficient

 (快省)或

  balanced

 (均衡)模式。

    平台

    安装命令

    Claude Code

    /plugin marketplace add bradautomates/claude-video

    然后

     /plugin install watch@claude-video

    Codex、Cursor 等 +50 宿主

    npx skills add bradautomates/claude-video -g

    claude.ai(网页)

    下载

     watch.skill

    → 设置 → Capabilities → Skills →

     +

    手动 / 开发

    git clone

    后将

     skills/watch

    软链接到宿主的 skills 目录(见下文)

应用场景

分析他人的内容。

/watch https://youtu.be/<viral-video> 他们用什么钩子开场?

Claude 查看前几帧,阅读开场转录,拆解结构。同样适用于广告创意、竞品发布、播客开头等场景——

如何呈现

是什么

同样重要。

从视频诊断 Bug。

别人发来一个出问题的屏幕录像。

/watch bug-repro.mov 出什么问题了?

Claude 观看录像,找到问题出现的帧,描述屏幕内容,通常不用你打开文件就能找出原因。

总结视频。

/watch https://youtu.be/<long-thing> summarize this

做最直观的事——提取结构、关键时刻、实际说的和展示的内容。比 2x 速播放快得多。

剔除更新视频中的炒作。

/watch https://youtu.be/<launch-video> 真正的新东西是什么——跳过炒作

把“改变游戏规则”的功能发布浓缩成真正重要的几点,让你无需忍受十分钟的开场和过度推销就能抓住实质。

把播放列表转为笔记。

/watch https://youtu.be/<video> summarize this to a note

在系列视频上运行,为每个视频生成总结,让频道或课程变成可搜索的笔记集,而不是需要花几个小时观看的内容。

项目地址

https://github.com/bradautomates/claude-video

如果你觉得这篇文章不错,别忘了

点赞、在

看、转发

给更多需要的小伙伴哦!