开源项目
开源项目

claude-video:让 Claude 真正"看懂"任意视频的 /watch 技能

14204 星的 Claude Code 技能,一条 /watch 命令把视频下载、抽帧、转写全打包交给 Claude,让 AI 第一次“看见”画面而不只读字幕。GitHub 周榜第 20,MIT,Python。

发布于 2026年8月6日8 分钟阅读
<!-- claude-video-resource | open-source | claude-video:让 Claude 真正"看懂"任意视频的 /watch 技能 -->

Claude 能读网页、能跑脚本、能翻仓库,但有一件事它开箱做不到——看视频。你贴个 YouTube 链接,它要么靠标题猜内容,要么拉一份字幕,而字幕漏掉了画面上 90% 的信息。claude-video 这个项目就是来补这一刀的:一条 /watch 命令,把下载、抽帧、转写全打包,最后把每一帧当图片喂给 Claude,让它真正"看见"画面。

一、它是什么

claude-video(github.com/bradautomates/claude-video)是一个开源的 Agent Skill,GitHub 星 14204(截至 2026-08-06,实时变动),fork 1363,主语言 Python,MIT 许可证,2026 年 4 月 24 日创建,最近一次 push 2026 年 7 月 1 日。本周位列 GitHub 周榜第 20,周增长 3359 星。官方一句话定位:Give Claude the ability to watch any video——/watch 负责下载视频、抽取帧、转写音频,再把这一切交给 Claude。

它的形态不是独立 App,而是一个 Skill:在 Claude Code 里是插件,在 Codex/Cursor/Copilot/Gemini CLI 等 50 多个 Agent Skills host 里是全局技能。底层依赖 yt-dlp(下载 + 抓原生字幕)、ffmpeg(抽帧)、可选的 Whisper(无字幕时转写),作者 Brad Bonanno 把这套链路封进一个自包含的 skills/watch/ 目录,装一次就能跨 host 用。

二、解决什么痛点

核心痛点就一句:Claude 原生不能直接看视频

你给 Claude 一个 YouTube 链接,它没法"看"。最好的情况是视频有字幕,Claude 拉一份 transcript 来读——但字幕只记录了"说出来的话",画面里出现的 UI、代码、图表、PPT、操作演示、表情,全丢了。README 里说得很直白:transcript "missing 90% of what's on screen"。

这导致几个真实场景卡住:

  • 分析别人的内容结构。想拆解一个爆款视频的开场 hook、节奏、转场,只读字幕读不出"第 3 秒画面突然切到产品特写"这种信息。
  • 从录屏里定位 bug。同事发来一段屏幕录像说"这里崩了",你没法让 AI 直接看录像找问题出现在第几帧。
  • 快速总结长视频。2x 速看一遍还是要花时间,想让 AI 帮你压缩成笔记,但它只能基于字幕压缩,漏掉画面演示。
  • 过滤更新视频里的水分。一场"game-changer"发布会有十分钟寒暄和吹嘘,你只想知道到底新增了什么,字幕没法告诉你"这一帧才是新功能演示"。

/watch 解决的方式是:把视频拆成 Claude 能消化的两种模态——帧(图片)+ 字幕(文本),然后让 Claude 像看图说话一样真正"看"完再回答。

三、核心机制:/watch 怎么工作

README 把 /watch 的链路拆成 6 步,本质是一条"下载 → 抽帧 → 转写 → 交给 Claude"的流水线:

  1. 你贴视频 + 提问。URL(任何 yt-dlp 支持的源:YouTube、Loom、TikTok、X、Instagram 等几百个)或本地路径(.mp4.mov.mkv.webm)。
  2. yt-dlp 先查字幕transcript 模式下,有字幕的 URL 直接返回,不下载视频。需要音频时才下载,且只下载必要部分。
  3. ffmpeg 按指定 detail 抽帧efficient 只解码关键帧(接近秒出);balanced/token-burner 优先取场景切换帧,不够再退化为按时长均匀采样。JPEG 默认 512px 宽,限高 1998px 以兼容 Claude Read。
  4. 字幕来自两处之一。优先用 yt-dlp 拉原生字幕(手动或自动生成,免费、即时、精度尚可);没字幕时回退到 Whisper——抽一段 mono 16kHz 64kbps mp3(约 480KB/分钟),发给 Groq 的 whisper-large-v3(首选,更便宜更快)或 OpenAI 的 whisper-1
  5. 帧 + 字幕一起交给 Claude。脚本把帧路径(带 t=MM:SS 标记)和时间戳字幕打印出来,Claude 并行 Read 每一帧——JPEG 在它的上下文里直接作为图片渲染。
  6. Claude 基于真正看到的画面和听到的字幕作答。不是"根据描述"或"根据标题",而是像看过视频的人一样回答。最后清理临时目录(除非你要追问)。

关键设计在帧预算。每帧都是图片,图片 token 烧得快,所以脚本有一套 auto-fps 逻辑,避免在 30 分钟视频上做稀疏扫描、反而把上下文预算烧光:

时长默认帧预算效果
≤30 秒~30 帧密集,几乎每个关键时刻都有
30 秒 - 1 分钟~40 帧仍然密集
1 - 3 分钟~60 帧够用
3 - 10 分钟~80 帧稀疏但能看
>10 分钟100 帧(封顶模式)触发"sparse scan"警告,建议改用 --start/--end 聚焦

另一个省 token 的设计是帧去重。屏幕录像里一张幻灯片停 90 秒,会抽出十几张几乎一样的帧,每张都按独立图片计费。去重默认开启(--no-dedup 可关):把每帧缩成 16×16 灰度缩略图,算与"上一个保留帧"的平均绝对差,差值 ≤2.0 就丢掉。比"上一帧"而不是"前一张",能抓住缓慢渐变。balanced 的帧预算上限在去重之后才生效,保证预算花在"不同的画面"上。

四、三分钟上手

Claude Code(推荐,marketplace 自动更新)

text
/plugin marketplace add bradautomates/claude-video
/plugin install watch@claude-video

Codex / Cursor / Copilot / Gemini CLI 等 50+ host

bash
npx skills add bradautomates/claude-video -g

-g 全局装(~/.codex/skills~/.cursor/skills 等),去掉则只装到当前项目。

首次运行:第一次 /watch 时,scripts/setup.py --check 会检查 ffmpeg/yt-dlp 是否在 PATH、是否设了 Whisper key,没装就引导你装——macOS 自动 brew install,Linux/Windows 打印 apt/dnf/winget/pip 的确切命令。检查是 100ms 内的查询,不影响后续使用。

装完直接用

text
/watch https://youtu.be/dQw4w9WgXcQ what happens at the 30 second mark?
/watch https://www.tiktok.com/@user/video/123 summarize this
/watch ~/Movies/screen-recording.mp4 when does the UI break?

聚焦某一段(帧更密、token 更省):

text
/watch https://youtu.be/abc --start 2:15 --end 2:45
/watch video.mp4 --start 50 --end 60
/watch "$URL" --start 1:12:00            # 从 1h12m 到结尾

要不要 API Key:大多数公开视频有原生字幕,免费就能跑。只有当视频真的没字幕轨(本地文件、部分 TikTok/Vimeo、个别无字幕 YouTube)才需要 Whisper 回退,这时去 Groq Console 拿个 GROQ_API_KEY(首选)或 OpenAI 拿 OPENAI_API_KEY,写进 ~/.config/watch/.env。想完全不用 Whisper,加 --no-whisper 只看帧。文档里用 sk-xxx 这类占位,别提交真 key。

常用调节参数:

参数作用
--detail transcript|efficient|balanced|token-burner速度/精度拨盘,见下表
--start / --end聚焦时间段,帧更密
--timestamps T1,T2,…在指定时间点强制抓帧
--max-frames N压低帧上限,省 token
--resolution 1024加宽到 1024px,看清幻灯片/终端/代码
--no-whisper不转写,只看帧
--no-dedup保留近似重复帧

四种 detail 模式实测对比(README 给的真实数据,源是一个 49:08 的 YouTube 录屏,1280×720,英文自动字幕):

模式引擎帧数上限抽帧耗时估算图片 token
transcript无(仅字幕)0-~4.5s(一次 yt-dlp,不下载)0(约 26.6k 文本 token)
efficient关键帧5050~0.5s~9.8k
balanced场景切换100100~20.9s~19.7k
token-burner场景切换116不封顶~21.0s~22.8k

efficient 是速度档(只重建关键帧,比场景模式快约 40 倍);token-burner 只在超过上限后才和 balanced 分叉——这段视频有 116 个切换点,balanced 采样到 100,token-burner 全保留。

五、适合谁 + 踩坑

适合的人

  • 做内容拆解的人。拆爆款 hook、广告创意、竞品发布会、播客开场,"怎么讲的"和"讲了什么"一样重要时。
  • 从录屏排 bug 的开发者。同事甩来一段"这里崩了"的屏幕录像,让 Claude 看完直接指出问题帧和原因。
  • 要把长视频/课程变成笔记的人。一个频道或一门课跑一遍 /watch summarize this to a note,几小时视频变成可检索的笔记集。
  • 想过滤发布会水分的人what's actually new - skip the hype 一句话把十分钟吹嘘砍成几条实质更新。

踩坑点

  1. 长视频 token 消耗。这是最大的坑。帧是图片,图片 token 烧得快。balanced 默认 100 帧封顶,超过 10 分钟的视频帧会变稀疏,脚本会打"sparse scan"警告。要么用 --start/--end 聚焦关键段,要么 --detail token-burner 解除封顶(但 token 涨得更猛)。--resolution 1024 会让单帧 token 翻约 4 倍,看清终端代码时才开。
  2. ffmpeg / yt-dlp 依赖。这俩是硬依赖,没装跑不起来。macOS 首次运行自动 brew install;Linux/Windows 只打印命令,得自己跑一遍。claude.ai 网页端用还要先在 Capabilities 里开"Code execution and file creation",因为 skill 要 shell 出去调 ffmpeg。
  3. 转写精度。原生字幕是"免费、即时、精度尚可",自动字幕可能错。Whisper 回退更准但要花钱花时间。完全无字幕的视频(部分 TikTok、个别 Vimeo、本地文件)只能走 Whisper,没 key 就 --no-whisper 只看帧。
  4. Whisper key 配置~/.config/watch/.env0600 权限,GROQ_API_KEY(首选)或 OPENAI_API_KEY。用 sk-xxx 这类占位,别提交真 key。
  5. 静态画面的去重误判。去重阈值 2.0 很低、按亮度差算,能保留一行代码 diff、终端滚一行、不同色块幻灯片。但如果两帧结构差异大但亮度接近,理论上有被误丢的可能——觉得漏了细节就 --no-dedup 全保留。

六、和替代方案比

只陈述能核实的事实,不编造竞品。

方案能看画面能读字幕需要人工备注
Claude 原生(不装 /watch)部分(拉得到才有)README 原话:transcript "missing 90% of what's on screen"
手动 scrub + 截图 + 粘贴手动抄能做,但慢,且 Claude 拿到的是零散截图无时间线
纯 yt-dlp 拉字幕只有文本,画面信息全丢
claude-video /watch帧带 t=MM:SS 时间戳,Claude 并行 Read 每帧

/watch 的差异化在于把"帧(图片)+ 字幕(文本)+ 时间戳"三件套一起喂给 Claude,让它的回答同时基于画面和音频,而不是只读字幕猜画面。它不是替代 yt-dlp 或 Whisper,而是把这两者加上 ffmpeg 抽帧,编排成一条 Claude 能直接消费的链路。

看法

claude-video 命中的是一个被低估的缺口:大家都说大模型多模态,但 Claude Code 这类编码 agent 日常"看视频"这件事一直没人系统解决。14204 星、周榜第 20 说明这个点踩准了——开发者确实需要让 AI 看录屏排 bug、看发布会提取更新、看竞品视频拆结构。

它的工程取舍很克制:不自己造下载器/转写器,全押在 yt-dlp + ffmpeg + Whisper 这套成熟工具链上,自己只做"帧预算 + 去重 + detail 模式"这套 token 经济学,以及把结果编排成 Claude 能 Read 的格式。这种"不重复造轮子、只补缺口"的定位,是它能用 MIT 协议、纯 Python stdlib 维持轻量的原因。

门槛也有:长视频的 token 成本要自己管,ffmpeg/yt-dlp 要装,无字幕视频要配 Whisper key。但比起手动 scrub 截图,这条链路一旦跑通,省下的是真正看视频的时间。


参考来源

本文由 AI 辅助生成,经人工审核编辑。最后更新:2026-08-06

相关文章

开源项目

book-to-skill:把技术书变成 AI agent 随时调用的技能(星1.62万)

book-to-skill(virgiliojr94/book-to-skill,GitHub 星 1.62 万,Python,MIT)把技术书/PDF/EPUB/文档夹蒸馏成结构化 agent 技能,遵循开放 Agent Skills 标准,一份装一次跨 GitHub Copilot CLI/Amp/Claude Code。生成 SKILL.md+按章文件+术语表+模式表+速查表,章节按需加载不占 token 预算。自带基准工具实测比全文塞上下文省 24-51× tokens(3 本真实书)。不止书,内部文档/品牌系统/研究集群/规范标准都能转。附版权合规提示。

2026年8月4日7 分钟阅读
开源项目

video-shotcraft:把 Claude Code 变成电影感产品视频工作室(星3492)

video-shotcraft(Vincentwei1021/video-shotcraft,GitHub 星 3492,TypeScript,Apache-2.0)是装进 Claude Code/Codex 的 agent 视频技能,指向产品自动分镜、动画、配音效,用 Remotion 渲出电影感 promo。含 104 张分镜配方卡、161 个运镜预览、验证过的 36.2 秒 Ink Press 完整模板,支持 2.5D 摄像机运动/节拍同步剪辑/电影级 SFX。产出是可复现 TSX 源码非黑盒生成。附国内 AtomGit 镜像 + 3 个 headless 渲染坑解法。

2026年8月4日8 分钟阅读