项目详情

video-use

用 Claude Code 剪视频:丢一堆原始素材,聊天一句话,拿回 final.mp4

GitHub 地址 MIT Python · ffmpeg · ElevenLabs Scribe Agent Skill 形态

更新于 2026-09-23 · 数据来源:GitHub API + README/SKILL.md(采集于 2026-09-23)

← 返回汇总
项目速览

一句话定位

LLM 不「看」视频,它「读」视频

browser-use 团队开源的 Agent Skill:把视频剪辑变成 coding agent 的对话任务。核心理念是把 45M tokens 的帧暴力降维成 12KB 词级转写文本——和 browser-use 给 LLM 结构化 DOM 而非截图是同一个哲学,只是对象换成了视频。适合有大量口播/访谈素材、会用终端、不想学时间线软件的创作者和开发者。

项目速览

核心数据

25.9k
Stars(5 个月)
3.1k
Forks
12
条 Hard Rules
6
个 helper 脚本

2026-04-12 创建 · 最后 push 2026-08-30 · 8 位贡献者 · 115 open issues · MIT · 无 release tag(skill 形态,git clone 即安装)· 来源:GitHub API 2026-09-23

为什么存在

视频剪辑的两堵墙

墙一:时间线软件的门槛

Premiere/达芬奇是给专业剪辑师设计的。独立创作者有素材、有意图,却没有「把意图变成时间线操作」的技能。菜单和预设解决不了「这条 take 比那条好」的判断。

墙二:AI 剪辑的天真路径全失败

帧暴力:30,000 帧 × 1,500 tokens/帧 = 45M tokens 噪声,上下文直接爆炸;GUI 自动化:模拟鼠标拖时间线,脆弱且不可复现。视频对 LLM 一直是「不可读」的介质。

video-use 的答案是换介质:不让 LLM 看画面,让它读带时间戳的转写文本——剪辑的本质信息(说了什么、什么时候说的、哪里停顿)全在音频里。

核心理念 🔥

读而非看:browser-use 哲学的迁移

browser-use(网页)video-use(视频)
原始形态截图 = 像素噪声视频帧 = 像素噪声
结构化形态DOM 树 + 可交互元素 refword-level 转写 + 时间戳 + 说话人
按需下钻截图(决策点才看)timeline_view PNG(决策点才看)
动作click / typeEDL 剪切决策 → ffmpeg

同一家族的两个项目共享同一条第一性原理:给 LLM 它读得动的表示,别让它看。音频是主轨道,画面跟随——剪切点永远来自语音边界和静默间隙。

架构 🔥

两层阅读视图:12KB 常驻 + PNG 按需

SOURCE 原始素材 mp4 / 多 take LAYER 1 · 常驻加载 takes_packed.md(~12KB / 小时素材) ElevenLabs Scribe 一次调用 → 词级时间戳 + 说话人分离 + 音频事件 (笑声/掌声/叹气) 静默 ≥ 0.5s 或换人 → 断短语,打包成文本 [002.52-005.36] S0 Ninety percent of ... wasted. LAYER 2 · 按需调用 timeline_view PNG(胶片条+波形+词标签) 只在决策点触发:模糊停顿 / take 对比 / 切点复核 / 渲染自检。明确不是扫描工具 LLM 阅读 + 推理 输出 EDL 剪切 决策 edl.json ffmpeg render.py
常驻文本层(主阅读视图) 按需视觉层(决策点下钻) 原始素材 实线 = 主数据流 · 虚线 = 决策点触发的下钻

转写按源文件缓存(Hard Rule 9:源文件没变就永不重转写);4-worker 并行批量转写多 take。

核心机制 🔥

六段管线 + 自检回环

① 转写 Scribe 词级 + 缓存 ② 打包 pack → 12KB 文本 ③ LLM 推理 读文本 → 提策略 等用户确认 ④ EDL 词边界剪切决策 ⑤ 渲染 分段提取+concat 调色/叠层/字幕 ⑥ 自检 Self-Eval 对渲染产物逐切点跑 timeline_view,不过不交 有问题 → 修复 → 重渲(上限 3 轮,仍不过则如实上报)
设计哲学

12 条硬规则:正确性不谈判,品味全自由

SKILL.md 把规则严格二分:Hard Rules 偏差 = 静默失败(字幕被挡、切点爆音、画面错帧),必须背下来;其余一切——字体、调色、节奏、技巧——全是「一条已发布视频的算例」,素材需要就随便偏离。

正确性类(防静默失败)
  • 字幕必须最后进滤镜链,否则被叠层挡住(R1)
  • 分段提取 + -c copy 无损拼接,不做单遍 filtergraph 双重编码(R2)
  • 每个切点 30ms 音频淡入淡出,防爆音(R3)
  • 叠层 setpts 偏移,否则看到动画中段(R4)
  • 主 SRT 用输出时间轴偏移,否则字幕错位(R5)
  • 词级逐字 ASR,禁用 SRT/短语模式(丢间隙数据)和归一化填充词(丢编辑信号)(R8)
流程类(防失控)
  • 永不切进词内部:切边吸附转写词边界(R6)
  • 切边垫 30–200ms:吸收 Scribe 50–100ms 时间戳漂移(R7)
  • 转写按源缓存,源没变永不重转(R9)
  • 多动画并行 sub-agents,墙钟 ≈ 最慢那个(R10)
  • 策略确认后才执行(R11)
  • 产物只写 videos_dir/edit/,项目目录零污染(R12)
代码结构

六个 helper 脚本就是全部执行层

脚本职责关键细节
transcribe.py单文件 Scribe 调用结果缓存;--num-speakers 可选
transcribe_batch.py目录批量转写4-worker 并行,多 take 场景
pack_transcripts.pyJSON → takes_packed.md静默 ≥0.5s / 换人断短语;token 省 10×
timeline_view.py胶片条+波形+词标签 PNG决策点下钻用,明确「不是扫描工具」
render.py(771 行)EDL → 成片分段提取→concat→PTS 偏移叠层→字幕最后;--preview 720p 快渲
grade.py调色滤镜链预设 + --filter 任意自定义 ffmpeg 链

仓库另 vendored 一个完整 manim-video skill(含 13 篇 references:动画思维/镜头 3D/公式/图表/排错……),动画槽位直接引用。测试仅 2 个文件(render 的 fps 与朝向回归)——执行逻辑薄,因为重活全在 ffmpeg 和 LLM 推理里。

核心能力

动画四引擎 + 并行 sub-agent 槽位

HyperFrames

HTML/CSS/GSAP 合成。产品 UI 动效、kinetic 字幕、透明 WebM 叠层。像写网页一样写视频。

Remotion

React 组件树合成。已有 React 品牌系统或组件复用需求时选它。

Manim

3Blue1Brown 那套。公式推导、状态机、图变形。vendored skill 带全套参考。

PIL + ffmpeg

PNG 序列叠层卡:计数器、打字机、条形揭示。官方发布视频用的就是它。

核心能力

调色推理 + 字幕三维度

调色:ASC CDL 心智模型

「看帧 → 判断哪里不对 → 调一个参数 → 再看」。per-channel:out = (in × slope + offset)^power,再全局饱和度。slope→高光、offset→阴影、power→中间调。内置 warm_cinematic(发布视频实船)/ neutral_punch / none 三预设,--filter 可塞任意 ffmpeg 链。硬规则:分段提取时逐段调色(别拼接后调,双重编码),激进调色先测肤色。

字幕:chunking × case × placement
风格参数适合
bold-overlay2 词/行 · 全大写 · MarginV=35 · Helvetica 18 Bold 白字黑描边快节奏科技发布 / 短视频
natural-sentence4–7 词/行 · 句首大写 · MarginV=60–80 · 更大字号叙事 / 纪录 / 教学

两种都是「算例」——SKILL.md 明说「需要就发明第三种」。硬规则只有两条:字幕最后进链(R1)、输出时间轴偏移(R5)。

上手体验

安装即一句话,剪辑即一次对话

# 对 Claude Code / Codex / 任意有 shell 的 agent 粘贴:
Set up https://github.com/browser-use/video-use for me.
Read install.md first ... register the skill with whichever agent ...
set up the ElevenLabs API key — ask me to paste it when you need it.

# agent 自己:clone → uv sync → brew ffmpeg → symlink 到 skills 目录 → 要一次 API key
cd /path/to/your/videos && claude
> edit these into a launch video
# → 清点素材 → 转写打包 → 提策略(等确认)→ 执行 → 自检 → edit/final.mp4
编辑工艺

静默间隙三档:切点从声音里来

静默时长判定处置
≥ 400ms最干净切点首选剪切目标
150–400ms可用需目检短语边界,跑一次 timeline_view 确认
< 150ms不安全短语内部,别切
性能与成本

token 经济学:45M vs 12KB

45M
帧暴力路径 tokens(1 小时素材)
~12KB
takes_packed.md 常驻阅读量
10×
vs 原始 Scribe JSON token 节省
在线体验

亲手当一个「读视频」的剪辑 agent

Playground 复刻 audio-first 剪辑内核:词级转写 → 静默三档着色 → 点击词定切边(词边界 = Hard Rule 6 天然满足)→ 拖垫片滑块看 30–200ms 工作窗违规实时报警 → 组装 EDL 看 -c copy 拼接总时长。Scribe 时间戳漂移怎么被垫片吸收,点两下就懂。

打开 Playground

纯前端实现,零网络依赖 · 短语切分 / 垫片窗口 / 间隙三档 / EDL 组装逻辑均经 2000 组真值表验证

适用场景 + 风险

适合谁,警惕什么

适合
  • 独立创作者 / 口播博主:素材量大(播客、访谈、教程),痛点是去填充词和死空间——正是它的看家本领
  • 开发者做产品视频:demo/launch 视频,PIL 动画卡 + 终端美学审美在线,和 coding agent 工作流无缝
  • Agent 工程研究者:Skill 形态 + 12 Hard Rules + 自检回环,是「LLM 驱动重型工具链」的最佳参考实现之一
风险
  • 转写绑死 ElevenLabs Scribe:唯一付费且闭源的依赖;API 变价/下线直接伤管线(词级+音频事件+漂移特性都按它校准)
  • 品味上限 = 模型上限:策略、选 take、调色全是 LLM 判断;「硬规则保正确性」管不住「剪得平庸」
  • 依赖 coding agent 生态:Claude Code / Codex 语境设计,换 agent 要自己适配 skill 注册和 Agent tool 并行语义
  • 视觉复杂素材弱:音频优先 → 音乐视频/纯画面蒙太奇类没有语音轨道可读,能力大幅退化
潜力评估

未来空间

评分 8.5:5 个月 25.9k stars 验证了「视频是 agent 的下一个介质」这个判断——不是靠产品功能,是靠「12KB 文本代替 45M 帧暴力」这个降维表示。SKILL.md 的工程质量(硬规则/算例二分、自检回环、sub-agent 并行)是 agent skill 写作范本,manim 子 skill 直接白送一套动画知识库。扣分:ElevenLabs 单点依赖、无 release/无版本化(git 即版本)、视觉素材能力弱。看点:Scribe 换成 Whisper word-level 或本地模型后护城河是否仍在;「skill 而非 app」的形态能否长出社区贡献的剪辑算例生态。


上一个
Project NOMAD
下一个
AX
1 / 17