Communitygithub.com

lalimi/claude-reelsmith

从一份 reel.json 自动构建完整的配音短视频(Instagram Reels / TikTok / Shorts,1080×1920,时长 25–70 秒),包含创作者自己的素材、配音、带重音词的字幕、钩子/结尾卡、印章、推进、转场与动效、音乐背景、-14 LUFS 混音、安全区域 QA 表、封面和文案。

claude-reelsmith 是什么?

Reel Builder 是一个专门为 AI 助手(如 Claude Code、Cursor 等)设计的高级短视频制作工具。它的核心能力是从一个结构化的 JSON 配置文件中读取素材、配音、字幕及特效设置,并自动渲染出一条完整的、适合发布到 Reels、TikTok 或 Shorts 的高质量短视频。该工具支持丰富的视觉效果,包括封面故事、轨迹文字、涂鸦动画、毛玻璃文字、检查清单、标题墙、黑白到彩色渐变、照片蒙太奇等。其内置的引擎会根据配音的时长和重音词位置自动计算字幕时间轴,并生成-14 LUFS 标准音量的混音。工作流程经过精心设计,创作者平均只需投入约 10 分钟即可完成一条成品。用户通常先通过 'reel-script' 获得脚本审核,再通过 'footage-scout' 挑选素材,然后写下 reel.json 配置,最后运行 `reelsmith build` 命令即可自动生成最终的 MP4 文件、封面图和文案。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lalimi/claude-reelsmith/tree/HEAD/skills/reel-builder

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

短视频构建器

引擎:$(reelsmith root)/engine/(build.py、template.html、music.py、pull_vo.py、capcut.py、fonts/)。每个短视频一个文件夹:<reel-dir>/reel.json → <reel-dir>/out/reel.mp4。如果 reelsmith 提示未设置,请运行 reelsmith setup 一次。

reelsmith new reels/my-reel            # 创建包含 src/、vo/ 和模板 reel.json 的文件夹
reelsmith sheet reels/my-reel/src/*    # 生成联系表 → 为每个片段选取 `ss`
reelsmith build reels/my-reel --stills # 约 1 分钟:生成帧、单词时间、字幕、out/qa_sheet.jpg
reelsmith stills reels/my-reel 0.5,7.8,21.3   # 额外检查帧
reelsmith build reels/my-reel          # 完整渲染(60 秒短视频约 4-5 分钟)

始终先运行 --stills:阅读打印的字幕列表并查看 out/qa_sheet.jpg(红色区域表示 Reels/TikTok UI 安全区;任何重要内容不得位于红色区域内)。修正 reel.json,然后构建。检查最后打印的响度线(-14 LUFS ±1,峰值 ≤ -1 dB)。然后在交给用户之前,查看最终 MP4 中每个特效和转场附近的帧。

工作流程(创作者耗时约 10 分钟/条)

  1. 脚本:reel-script 技能 → 创作者批准。用 <em>…</em> 标记重音词;数字保留为数字以便显示。
  2. 配音:可以是创作者自己的录音(vo/vo.mp3)或 ElevenLabs(参见 docs/voice.md):TTS 文本 = 不带标签的脚本,数字拼写为单词,品牌名称按发音拼写。免费版可在 ElevenLabs 网页 UI 中生成(Chrome 中的 Claude 可以驱动),然后运行 reelsmith voice <reel-dir> 将最新的两条录音拉入 vo/ 并显示时长。转录两条,保留较清晰的一条为 vo/vo.mp3。语速较慢的配音:在 vo 中设置 "speed": 1.07。
  3. 素材:footage-scout 技能 — 仅使用新素材(检查 used_footage.md)、联系表、隐私检查。各片段时长之和必须等于配音结束时间 + 约 2 秒。
  4. 剪辑计划:reel-director 技能选择本故事适用的 3-5 个特效及转场位置。
  5. 编写 reel.json → --stills → 修正 → 构建 → 交付 out/reel.mp4 + out/cover.jpg + out/caption.txt。
  6. 可选:在 CapCut 中进行声音处理:reel-capcut 技能(库音效+手动挑选的音乐)。

reel.json

{
  "vo": {"file": "vo/vo.mp3", "offset": 0.25, "speed": 1.07, "gaps": [[5.73, 0.8]]},
  "script": "我已经花了三个月重写我的指南,昨天我改了封面字体<em>第四次</em>。…",
  "hook": {"tag": "永恒草稿场景", "lines": ["指南快准备好了。", "<em>已经三个月了</em>"], "out": 5.55},
  "end": {"from": 55.6, "lines": ["你的那份", "<em>等了多久?</em>"], "lines_at": [55.75, 56.6],
          "sub": "在评论区告诉我", "sub_at": "@comments", "handle": "@yourhandle", "handle_at": 58.6},
  "cover": {"from": 0, "to": 4.35, "title": "草稿", "left": "No.4 · 十月", "right": "@yourhandle", "top": 330},
  "cover_t": 2.0,
  "stamps": [{"seg": ["I", "J"], "text": "tanya · 草稿两年了"}],
  "punch": [[3.02, 4.4], ["@thousand", 9.0]],
  "segments": [
    {"id": "A", "clip": "src/night_desk.mp4", "ss": 9.5, "dur": 2.5, "crop": [0, 0.196, 0.75], "cut": true},
    {"id": "B", "clip": "src/keys.mp4", "ss": 1.3, "dur": 1.9, "move": "none"},
    {"id": "E", "clip": "src/phone_walk.mov", "ss": 0.8, "dur": 4.5, "cut": true, "in": "zoom"},
    {"id": "I", "clip": "src/cafe.mp4", "ss": 0.3, "dur": 3.2, "look": "bw"},
    {"id": "K", "clip": "src/walk.mov", "ss": 14.0, "dur": 4.95, "look": "burst"},
    {"id": "N", "clip": "src/breakfast.mov", "ss": 0.0, "dur": 3.45, "rate": 0.4},
    {"id": "Q", "clip": "src/meadow.mov", "ss": 13.2, "dur": 9.1, "move": "pull-out", "in": "zoom"}
  ],
  "caption": "…",
  "music": "synth"
}

一个完整的真实示例(乌克兰语,61 秒,17 个片段,包含以下所有特效)位于 $(reelsmith root)/examples/chernetka/reel.json;最小示例位于 examples/template/reel.json。

配音与字幕

  • lang:配音的 Whisper 语言("uk"、"en" 等);省略则自动检测(或使用 REELSMITH_LANG)。
  • vo.gaps [vo_time, extra_s]:在(变速后的)配音中该时间点附近最安静的位置插入一个呼吸暂停点——为照片蒙太奇留出空间。vo.speed:atempo 因子。
  • "@word" 锚点:钩子/结尾/涂鸦/毛玻璃/检查清单/封面/轨迹/标题墙/推进/跳过字幕中的任何时间点都可以是 "@thousand"(该脚本单词的开始位置;先精确匹配,再前缀匹配)、"@again#2"(第二次出现)、"@twice+0.3"。Whisper 识别错误的单词会被赋予插值时间——此时请使用秒数。out/words.json 在 --stills 后包含真实时间。
  • subs / punch:省略则根据 script + 单词时间自动生成(每行 5-7 个单词,1-2 行,重音词以斜体强调色显示,结尾不加句号,一行不以“和/在/的…”结束;推进最多 4 个重音短语,间隔 ≥ 3 秒)。可通过 "subs": [[a, b, "html"]]、"punch": [[a, b]] 覆盖。钩子卡显示时、毛玻璃标题和检查清单下方、以及结尾卡开始后,字幕会隐藏(可通过 subs_from / subs_until / subs_skip [[a, b]] 调整)。

卡片与文字

  • 钩子:从第 0 帧开始显示的纸质卡片(at: [t…] 逐行显示,size、top)。结尾:从 from 开始的卡片,lines_at 处的行,sub、handle。
  • 印章:在指定片段左上角显示的单一药丸形状标签(地点、日期、角色名称)。
  • 封面(封面故事 + 画面断裂):杂志刊头适配宽度,字母依次落下;在设置了 "cut": true 的片段上,人物站立在标题前方。选择/裁剪一个镜头,使人物头顶位于刊头顶部下方 40-80 像素处——绝不能遮住眼睛。color 用于刊头,top 用于移动位置。cover_t ≈ 2,以便 out/cover.jpg 显示完成的封面。
  • 毛玻璃(毛玻璃文字):{"from", "to", "lines", "at", "top"} 毛玻璃标题。
  • 检查清单:{"from", "to", "title", "items": [{"text", "sub", "at", "sub_at"}]} 卡片,逐项增长,在 at 处绘制勾选标记。
  • 标题墙:{"from", "to", "items": [...], "every": 0.06} 文件名/标题瓷砖堆叠;可在其上放置毛玻璃标题。
  • 轨迹:{"from", "to", "seg", "text": "1000 粉丝 · ", "speed", "scale", "tilt", "lift"} 环绕人物头部的文字环(仅用于设置了 cut 的片段);后半部分从人物身后穿过。最适合用于近距离自拍。
  • 涂鸦(涂鸦动画):{"kind": "text"|"circle"|"underline"|"strike"|"arrow", "at", "to", "x", "y", …} — 文字:text, size, rot, write;圆形/删除线:w, h(删除线 n 个锯齿;保留 3 个使单词可读);下划线:w;箭头:x2, y2, bend;color、width。使用奶油色光晕突出墨水,从左到右绘制,每 3 帧轻微摆动。钩子卡显示期间以及人物脸部区域上方(y ≈ 1000 以上)应避免放置涂鸦。

片段

  • 路径:相对于短视频文件夹,然后是当前目录,然后是仓库。HEIC/JPG 照片通过 img 处理即可。
  • ss 片段内的起始时间,dur 秒数;pos 0-1 水平取景(用于宽幅源素材);crop [x, y, size] = 竖屏帧的缩放裁剪(从 4K 素材保持清晰);rate < 1 = 慢动作(仅当只有一小部分可用时使用)。
  • cut:true = 此片段使用 macOS Vision 人物遮罩(reelsmith masks,约 0.2 秒/帧,可缓存)。封面和轨迹功能需要此设置。
  • in:"zoom"(前一个镜头模糊冲入,新镜头从缩放状态着陆)或 "whip"(快速模糊滑动,无黑色边缘)。在 4-6 个关键剪接处使用,而非每个剪接处。
  • look:"" 暖色胶片风格 · "memory" 淡化的缩放飞入效果(用于照片蒙太奇;date 添加橙色相机日期戳) · "bw" 黑白(音乐变闷) · "burst" 灰色 → 色彩绽放(音乐打开)。
  • move:push(默认慢速推入) · tilt-up · pull-out · none。

声音与颜色

  • music:"synth"(根据画面风格生成的低保真背景音乐——作为占位符效果不错,创作者通常更喜欢真实曲目)、指向您拥有版权的音频文件的路径,或 null。原始片段声音永远不会被使用。
  • music_gain:默认 0.16(在配音下方进行侧链压缩)。
  • colors:{"accent": "#D4573A", "cream": "#F4EFE6", "ink": "#1F1A17"}(默认:米色/赤陶色)。

来自真实反馈的规则

  • 特效必须在手机尺寸上第一眼就能看清:大、强调色、有动画。细小的奶油色涂鸦和模糊的毛玻璃面板被反馈为“特效在哪里?”。
  • 剪接处不要重复出现白色闪光。静音原始片段声音。每条短视频使用 3-5 种技术,不要全用。
  • 绝不要将文字、卡片或涂鸦放在眼睛上方;移动卡片或重新取景。
  • 以全分辨率检查素材的画面和背景:他人的消息、车牌、街道名称、私人仪表盘 → 跳过这些秒数。
  • 每条短视频使用全新素材(used_footage.md)。使用包含他人面部的镜头前请先询问。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

lalimi/claude-reelsmith

Finish a built reel in CapCut — upload the picture (everything baked in), the voice and music stems, place CapCut library sound effects on every effect and transition, push an editable CapCut Web draft, and let the creator swap music and sounds by ear before exporting. Uses the CapCut MCP connector bundled with this plugin. Use when asked for "sound effects from CapCut", "put it into CapCut", "editable draft", "change the music in CapCut", "капкат".

lalimi/claude-reelsmith

The director of a reel made from the creator's own footage — runs the whole job from idea to a post-ready MP4 + cover + caption and makes the creative calls (which story structure, which 3–5 effects go on which beat, where the transitions are, pacing, sound), then reviews the cut like a critic before handing it over. Use when someone says "make me a reel", "turn my clips into a reel", "edit this like a pro", "what do you think as a critic / director", "make it more alive", "add effects", "зроби рілс", "що скажеш як критик", or when a reel is being planned, reviewed or re-cut.

lalimi/claude-reelsmith

Write, analyse and plan short-video scripts (Instagram Reels, TikTok, YouTube Shorts, 30–60 s) in four proven viral structures — contrarian insight with a named archetype, series episode with a cliffhanger, humor hook + list of N factors, and "the scenario of …" confession. Use when the user asks to "write a reel script", "give me reel ideas", "analyse this viral reel", "break this reel down", "turn this transcript into a structure", "make one like this reel", pastes a reel transcript, or wants to edit a reel that has no script yet. Triggers in any language (e.g. "напиши сценарій для рілса"). Writes flowing spoken text in the creator's own language (English, Ukrainian, …), checks it against a checklist, and hands a montage plan to reel-builder, talking-head-edit or reel-director.

相关技能