Reelsmith 是做什么的?
从一份规格开始,用代码构建视频:脚本 -> 规划 -> 审批 -> 模板渲染 -> 审查 -> 导出。
一切都可免费离线运行;可选密钥可添加功能。以下路径(scripts/、templates/、
references/)相对于 Reelsmith 文件夹:位于此文件旁边,或在 Grok Bot 上为 /workspace/reelsmith/。
每次开始任务
python3 scripts/capabilities.py- 显示哪些功能已开启/关闭(绝不打印密钥)。提及一次哪个免费密钥 会有帮助(例如,用于素材视频的 Pexels)。绝不强制要求。- 收集信息:目标、受众、平台、时长、品牌(
brand.json;如无,则构建一个:参考references/brand-kit.md)、 素材、音乐偏好、是否需要语音。只询问不明确的信息。 - 选择一个模板(见下文)或自定义构建。
路由任务
| 任务 | 使用 | 阅读 |
|---|---|---|
| 发布预告片、功能展示、推广 | 模板 product-launch(音乐驱动) | templates.md, music.md |
| 活动精彩集锦(来自照片) | event-recap | templates.md, stock-media.md |
| 客户评价/推荐 | testimonial | templates.md |
| 预告、"即将推出"、日期揭晓(可循环) | countdown-teaser | templates.md |
| 数据、报告亮点、里程碑 | stat-callout | templates.md |
| 演讲/展位/信息亭循环、动画演示 | slides-presentation (--loop) | templates.md |
| 教程、操作指南、入门指导(+ YouTube 章节) | howto-tutorial | templates.md, youtube-publishing.md |
| 带字幕的解说产品介绍 | feature-explainer (Remotion; render.sh) | remotion.md |
| 自定义动态图形、叠加层、透明通道、GIF | 手动使用 HyperFrames | hyperframes.md, motion-design.md |
| 图表/数学、Lottie 动画、剪辑用户素材、转录 | Manim, Lottie, auto-editor, parakeet | helpers.md |
| 脚本或配音台词 | 2-3 个选项 + script_lint.py | scriptwriting.md, voiceover.md |
| 字幕(SRT/VTT/ASS、内嵌) | captions.py | captions.md |
| 平台规范、安全区域、交付文件 | export.py, presets.json | platform-specs.md, loudness-accessibility.md |
| AI 素材视频、图片、虚拟形象、AI 音乐(付费) | Fal / Higgsfield,先报价 | ai-generation.md |
许可证:HyperFrames 采用 Apache-2.0。Remotion 对个人和不超过 3 人的团队免费;4 人及以上的公司需要
许可证(如果是商业用途,询问一次)。音乐、素材、字体:已授权,已标注(stock.py credit, credits.json)。
工作流程
- 脚本: 撰写 2-3 个选项(3 秒内抓住注意力,每个场景一个想法,最后是行动号召),大约 2.5 字/秒;进行脚本检查。
- 规划:
reelsmith.py sample TEMPLATE > content.json,填写内容,然后执行reelsmith.py render --template T --content content.json --brand brand.json --out OUT --dry-run。 展示镜头列表(场景、文本、配音、秒数)、音乐及许可证、语音(免费或已报价)、比例。 - 审批(始终需要) 在长时间渲染之前以及任何付费生成之前。
- 草稿:
reelsmith.py render … --aspect 16x9,9x16,1x1 --music track.mp3|synth --vo auto --draft。 - 审查关卡:
review.py check VIDEO --out OUT/_review --preset P --job OUT/job.json;查看 scenes.jpg、safe.jpg、phone.jpg;修复;发送预览;用户确认后,执行review.py approve。 - 最终导出: 渲染时不加
--draft,然后执行export.py run VIDEO --preset reels,tiktok,youtube --review OUT/_review --out OUT/delivery(未经审批则拒绝)。YouTube:youtube_prep.py(绝不自动上传)。 - 交付: 每个文件附带一行描述(比例、时长、LUFS)、鸣谢、AI 披露;提供重新剪辑选项。
脚本 (scripts/)
capabilities.py 功能开关 | brand.py 验证、打包、从徽标生成、从网站生成 | reelsmith.py 列出、采样、渲染、循环、无缝拼接 | script_lint.py 脚本检查 | beats.py 拍子网格、对齐、适配、合成 | stock.py 搜索、获取、鸣谢(仅 API 密钥,--dry-run) | captions.py 构建/内嵌字幕 | review.py 检查、审批、状态 | export.py 运行、叠加、列出、响度标准化 | youtube_prep.py YouTube 准备 | presets.json 预设配置。
HyperFrames 设置与固定:references/hyperframes.md。Kokoro 需要 HYPERFRAMES_PYTHON=<venv>/bin/python。
规则
- 密钥仅通过平台的秘密提示作为环境变量传入;绝不回显、记录或写入文件。设置
REELSMITH_IGNORE_KEYS=1可强制使用免费路径。 - 付费语音/AI 仅在明确指定、添加
--allow-paid参数、密钥存在并且用户已批准报价时才使用。拒绝是最终的。 - 素材仅通过官方 API 使用密钥获取;绝不爬取或热链接;保留鸣谢信息。
- 真实的引用、标志和面孔仅在有许可的情况下使用;虚拟形象和语音克隆需要同意;披露 AI 使用情况。
- 任何带语音的视频都必须有字幕;文本位于安全区域内;每秒闪烁不超过 3 次;-14 LUFS,峰值不超过 -1 dBTP。
- Remotion 最终输出:
export.py loudnorm(它不进行标准化)。 - 绝不自动发布或上传;仅为用户准备文件。
故障排除
内存不足:--workers 2 (HyperFrames) / --concurrency=2 (Remotion)。Chrome 问题:$HF doctor / npx remotion browser ensure。HyperFrames 空白帧:时间轴未暂停/注册,或素材路径错误。缺少 librosa:拍子检测回退至固定 BPM(传递 --bpm)。缺少 Kokoro:使用 espeak-ng。401 错误:通过秘密提示重新请求密钥。
何时询问用户
始终需要规划审批;脚本选择;语音选择;平台、时长、品牌或音乐不明确时;任何付费生成(附带报价);使用面孔或语音需要同意时;最终审查审批时;如果是商业用途,询问 Remotion 团队人数。