Skip to content

别再手写剪映 JSON 了:cutcli 让 Cursor / Claude Code 一句话生成可二次编辑的剪映 / CapCut 草稿

太长不看 —— 剪映 / CapCut 草稿本质是 JSON 文件夹。手写它脆弱又慢。cutcli 是一个单文件 CLI,提供稳定的命令面(cutcli draft createcaptions addaudios addkeyframes add …),让任何 AI agent —— Cursor、Claude Code、ChatGPT、Gemini、OpenClaw、MCP —— 都能用一句自然语言驱动视频生产。最终产物是一个真正的剪映草稿,客户端打开即可,并且 100% 可继续编辑。

痛点:剪映草稿是个 JSON 雷区

如果你打开过 ~/Movies/JianyingPro/User Data/Projects/com.lveditor.draft/<some-uuid>/draft_content.json,应该见识过这些坑:

  • 满屏微秒时间戳 —— 3000000 是 3 秒,不是 3 毫秒。
  • 视觉位置用归一化 0..1 坐标,画布尺寸又是像素,混着用。
  • 未文档化的枚举 —— 动画名是中文字符串,比如 渐显轻微放大,没有公开列表。
  • 必须保持同步的 6 个兄弟文件draft_content.jsondraft_meta_info.jsondraft_settings.jsonresources/cover.jpg
  • 版本漂移 —— 一个能在剪映 4.x 打开的草稿,到 5.x 可能因为某个字段改名而无声崩坏。

撞上这堵墙的人会写一些临时性的 Python 脚本去逆向草稿格式。这些脚本能撑过一个剪映版本,下一版就烂掉。这套格式根本不是公开 API。

为什么 2026 年这件事变得严重:AI agent 需要稳定的命令面

2026 年的短视频创作者大多数已经不打开 IDE 了。他们直接对 Cursor / Claude Code / 任意 MCP agent 说:

"拿这三张产品图,加 6 秒 TikTok 风的字幕轨,关键词高亮,把我的 BGM 铺在下面,给我个能二次编辑的剪映草稿。"

LLM 要稳定交付这个 prompt,需要三件东西:

  1. 稳定的命令面,不能在它脚下乱变。
  2. 产物能扛住剪映版本升级。
  3. 可往返编辑 —— 用户必须能打开草稿继续调,否则 AI 就丢了长尾。

JSON 当 API:三件全都没有。CLI 当 API:三件全都有。

cutcli 到底是什么

cutcli 是一个静态二进制文件,一行安装:

bash
curl -s https://cutcli.com/cli | bash

它暴露的是一个小而稳定的命令面:

bash
cutcli draft create --width 1080 --height 1920
cutcli captions add "$DRAFT_ID" --captions '[...]'
cutcli images add   "$DRAFT_ID" --image-infos '[...]'
cutcli audios add   "$DRAFT_ID" --audio-infos '[...]'
cutcli keyframes add "$DRAFT_ID" --keyframes '[...]'
cutcli draft easy   --by-audio audio.mp3 --captions '[...]'
cutcli draft upload "$DRAFT_ID"

底层它替你写真正的剪映 / CapCut 草稿目录,把坐标归一化、draft_meta_info.json 标得正确、把远程素材下载进 resources/、跟踪不同剪映版本的差异。最终草稿落进你的草稿列表,打开即可编辑。

一张大家都不愿意写但都需要的对比表

方案出第一帧的时间扛剪映升级AI 能驱动出片后能在剪映里继续编辑
手写 draft_content.json几小时,然后崩几乎不能能(直到你再编辑一次又崩)
逆向 Python 脚本几天,然后崩能,但脆弱
FFmpeg / MoviePy几分钟不能 —— 输出是平的 MP4
cutcli几秒能 —— 完整草稿

最后一列是别人都给不了的。FFmpeg 能从 prompt 渲一个 MP4,但渲不出一个剪映里能拖时间轴改字幕的工程文件。cutcli 可以。

实战:一个 Claude Code prompt → 可二次编辑的草稿

跑过 cutcli setup claude(或同款 cursor / openclaw)之后,丢这段进 Claude Code:

cover.jpgfeature.jpgcta.jpg 拼成 9 秒轮播,加淡入淡出转场,下面铺 bgm-light.mp3(音量 50%),再加一条 TikTok 风字幕"新品上线",其中"上线"两字用 #ff5a36 高亮。

Claude Code 会输出大致这样的命令:

bash
DRAFT_ID=$(cutcli draft create --width 1080 --height 1920 | jq -r '.draftId')

cutcli images add "$DRAFT_ID" --image-infos '[
  {"imageUrl":"file:///abs/path/cover.jpg",  "width":1080,"height":1920,"start":0,       "end":3000000,"inAnimation":"轻微放大","inAnimationDuration":600000},
  {"imageUrl":"file:///abs/path/feature.jpg","width":1080,"height":1920,"start":3000000,"end":6000000,"inAnimation":"轻微放大","inAnimationDuration":600000},
  {"imageUrl":"file:///abs/path/cta.jpg",    "width":1080,"height":1920,"start":6000000,"end":9000000,"inAnimation":"轻微放大","inAnimationDuration":600000}
]'

cutcli transitions add "$DRAFT_ID" --auto fade --duration 400000

cutcli audios add "$DRAFT_ID" --audio-infos '[
  {"audioUrl":"file:///abs/path/bgm-light.mp3","duration":9000000,"start":0,"end":9000000,"volume":0.5}
]'

cutcli captions add "$DRAFT_ID" --captions '[
  {"text":"新品上线","start":500000,"end":8500000,
   "inAnimation":"渐显","inAnimationDuration":400000,
   "highlights":[{"keyword":"上线","color":"#ff5a36","bold":true}]}
]' --font-size 9 --bold

跑一遍。打开剪映。草稿就在列表里:3 段图片 + 淡入淡出 + BGM + 关键词高亮字幕,每一项都在时间轴上独立可编辑。

同样这个 prompt 喂给基于 FFmpeg 的工具,你拿到的是一个再也改不动的 MP4。整个故事就是这一句话的差异。

60 秒上手

bash
# 1. 装 cutcli
curl -s https://cutcli.com/cli | bash

# 2. 把它接到你的 AI 工具
cutcli setup all

# 3. 跑最简单的案例
git clone https://github.com/xuliang2024/cutcli-cookbook.git
cd cutcli-cookbook/examples/01-hello-caption && bash run.sh

打开剪映 / CapCut,新草稿已经在草稿列表里。

接下来

cutcli 基于 MIT 协议开源。源码:github.com/xuliang2024/cutcli-cookbook

基于 MIT 许可发布