大家好啊,最近我们在做 Hypit:
这是一个视频描述语言,我们起名叫 SVML ( Semantic Video Markup Language )
我们希望 Claude Code 、Codex 这样的 Agent ,能用它描述一支视频,再交给系统生成素材、处理字幕、编排画面,最后渲染成片。
项目链接: https://github.com/hypit-ai/hypit
从一个很具体的剪辑问题开始
我们之前给一些 AI 公司做内容,经常会参考别人做得不错的广告,再结合自己的产品重新制作
一条二十几秒的视频,要拆脚本、生成镜头、配音、剪辑、加字幕,还要安排产品特写和各种动效。即使模型已经把素材生成出来,后面依然有不少制作工作,如果你做过这件事情,你一定会知道我在说什么
其中有一件事一直让我们觉得很绕啊
写脚本的时候,我经常会边写边在脑子里构思稿子和视频的配合,比如:
主持人说到产品名,就弹出产品卡片
说到“第一名”,排行榜对应的位置就亮起来
但此时还不知道这些词会落在第几秒,于是只能等语音和视频生成完,再一帧一帧地找位置,把效果对上
如果换一版台词或者只是语速变了,就得重新处理这些对应关系
所以我们想让 Agent 能直接写下这种要求,由系统根据实际素材算出时间,这个想法后来成了 SVML 里很核心的一部分:把画面效果绑定到叙事中的词
视频的源文件可以长什么样
下面是一段真实的.svml 语言+视频的 demo

把 GIF 中的案例简化 ⬇️
<script id="story">
<daily-creatine>
<GIRL> 我会把它加进 @lifestyle 咖啡、奶昔,甚至煮意面的水里。
<GUY> 你这是把它当 @/lifestyle 面粉用了吧。
</daily-creatine>
</script>
daily-creatine 是段落名称,GIRL 和 GUY 标明每句话由谁说。
@lifestyle 和 @/lifestyle 划出了一段跨越两位说话人的语义区间。补充画面可以绑定到这段区间,覆盖相应的对话。
实际案例中的画面组件,就是通过 during={story.selection.lifestyle} 引用这段范围。
(查看完整播客源码: https://github.com/hypit-ai/hypit/blob/main/examples/podcast/reference.svml)
这些标记本身只描述位置,具体显示什么,由引用它们的组件决定。素材生成后,系统通过语音对齐,把这些位置映射到实际时间。改台词或换语言时,重新生成、对齐相关素材,画面就能按新的时间定位。
完整的语法说明在: https://hypit.ai/quickstart/script/
复刻视频,是这门语言的一个入口
现在最容易体验 Hypit 的方式,是给 Agent 一条参考视频,让它把里面的画面、台词、字幕和特效关系重建成 workflow

可以看这个街头采访的案例:同一套结构,可以把主持人换成,被采访者换成动漫人物,F1 赛车手等
做出第一个版本后,源文件可以继续改: 换产品、换开场、换语言,批量生成 100 个变体,都可以围绕已有流程来做;需要重新生成的素材仍然会产生相应成本
当然,也可以没有参考视频。直接描述要做什么,由 Agent 从零组织组件和编写源文件。字幕、动效和代码渲染画面这类流程,也可以不调用生成模型。
怎么用 Hypit
给 Claude Code ,Codex ,或者 Hermes 安装 skills 先:
npx skills add hypit-ai/hypit -g
然后提供一条参考视频:
/hypit 复刻这个视频: /path/to/video.mp4
首次使用时,Agent 会检查并协助准备运行环境。你可以继续告诉它要改什么,检查制作方案、确认所需服务和费用,再生成成片。上手文档
Hypit 本身免费,不收席位费和按次渲染费;付费模型 API 和 Agent 的费用另算,平均制作一个视频的 API 成本,换算下来在 1 美金左右!
欢迎大家来提提建议