Reel → CapCut 草稿
需要:已构建的 Reel(reelsmith build <dir>)、CapCut MCP 服务(capcut,已包含在本插件的 .mcp.json 中;首次通过 /mcp 登录一次),以及磁盘上 CapCut 的插件包用于上传器和草稿构建器(参见 $(reelsmith root)/docs/capcut.md,环境变量 CAPCUT_PLUGIN_DIR,默认为 ~/capcut-plugin)。
步骤
- 在
reel.json中添加"sfx"字段——每个画面事件对应一条记录:内建音效库名称:"sfx": [{"name": "whoosh", "t": 6.9, "vol": 0.5}, {"name": "click", "t": 30.62, "vol": 0.5}, {"name": "typing", "t": 2.5, "vol": 0.35, "dur": 1.4}, {"name": "my_sounds/rip.mp3", "t": 15.36}]whoosh、whoosh-short、pop、typing、click、sparkle、coin、chime、impact、shutter、ding(ID 定义在engine/capcut.py中)。其他名称均视为您拥有的本地音频文件,将随音轨一起上传。 reelsmith capcut stems <dir>→ 输出到out/capcut/{video.mp4, voice.wav, music.wav}+files.json。人声和音乐共享一个增益(总和 = −14 LUFS)并经过限制器处理;音乐已经为人声做了闪避处理。- 上传:调用
capcut_asset_upload_credential,携带version: 2以及每个文件的精确file_name和size_bytes(请在上传前重新核对大小;不匹配会导致upload_files_mismatch错误)。然后执行:printf '%s' <ticket> | node "${CAPCUT_PLUGIN_DIR:-$HOME/capcut-plugin}"/x/plugins/codex/skills/capcut-upload/scripts/capcut-upload.mjs --files "$(cat out/capcut/files.json)" --upload-ticket-stdin --json > out/capcut/upload.json reelsmith capcut draft <dir>→ 输出out/capcut/draft.json(已校验)。- 调用
start_stdraft_session→push_stdraft_snapshot,设置base_package_id: "",并传入草稿 JSON。将web_editor_url提供给创作者。 - 再次推送之前,先调用
get_stdraft_snapshot并在此基础上编辑——创作者可能已经修改了草稿(回读会丢失部分信息;切勿盲目覆盖他们的更改)。对于小的修正(如裁剪音乐尾部、调整音量),建议通过 Chrome 中的 Claude 在编辑器内直接操作。
需告知创作者
- 先试听:CapCut 库音效有时会出现在时间线上但播放无声。如果遇到这种情况,请在“音频 → 音效”中替换,或者使用本地文件。
- 音乐:将占位的背景音乐音轨静音,然后通过试听选择库中的音乐;将音乐裁剪至与视频长度一致(如果音轨更长,导出时会在视频尾部添加黑屏)。
- 导出(右上角 → 下载,1080p / 30fps / MP4)会先保存到创作者的 CapCut 云空间:如果云空间已满,导出会失败并提示“无法保存”——请清理 CapCut 空间中的文件,或保留引擎输出的 MP4 文件。
- 连接器自带的音效搜索(
search_capcut_material)仅支持简单的标题搜索,没有试听功能;完整的音效库只能在 CapCut 应用中浏览。