Communitygithub.com

nsijwali/yamlreel-video-skills

通过编写YAML规范并借助开源CLI工具yamlreel在本地渲染,无需视频编辑器即可将主题转化为完成的短视频(YouTube Shorts、Reels、TikTok竖版、横版或方形)。

yamlreel-video-skills 是什么?

这是一个AI代理技能,允许用户仅通过编写YAML规范并在本地使用yamlreel CLI渲染,即可从零创建完整的短视频(如YouTube Shorts、Reels、TikTok竖版、横版或方形)。它特别适合制作解说视频、代码技巧、系统设计视频或产品发布视频。该技能通过一个十步工作流程实现:包括环境检查、需求澄清、脚本编写、大纲生成、草稿渲染、规范编辑、预览、检查、最终渲染和可选润色。它支持Claude Code、Cursor和Codex等平台,并包含严格的安全规则,防止敏感数据泄露,避免远程语音合成,并限制文件操作范围为用户项目文件夹。最终输出为MP4视频、海报图、联系表以及可直接粘贴的分享文本。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/nsijwali/yamlreel-video-skills/tree/HEAD

在你喜欢的 AI 中提问

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

文档

yamlreel-video-skills 是做什么的?

编写一个YAML规范,在本地使用yamlreel渲染,检查联系表,然后返回视频。<skill> 指此文件所在的目录。

工作流程

  1. 设置。 运行 python3 <skill>/scripts/check_setup.py(它还会检查yamlreel版本和功能)。如果失败,向用户显示打印的修复方法。仅在用户同意后运行 --install。切勿自行安装字体或系统包。
  2. 澄清:用一条消息说明,提供默认值:主题、受众、格式(默认竖屏)、长度(默认30秒)、主题(midnight|sumi|washi)、声音(默认无)。跳过用户已经提到的内容。
  3. 先写脚本。 按照 references/writing-guide.md 的段落格式,编写 videos/<slug>/script.txt(目标长度,每个段落一个 [BEAT - 输入 -> 动作 -> 结果] 块,包含其口语台词,然后是交付说明)并向用户展示。如果用户要求先审核,则停止并等待用户同意后再起草或渲染任何内容。 大纲。 然后编写 videos/<slug>/outline.yaml(主题、钩子、问题、1-6个步骤,每个步骤包含 name、say、show,以及 when_to_use、question、answers)。规则在 references/writing-guide.md 中:15秒 = 一个想法;30-45秒 = 一个想法加最多3个步骤;#Shorts 最多60秒。
  4. 草稿: yamlreel story videos/<slug>/outline.yaml --out videos/<slug>/spec.yaml --format <fmt> --theme <t>。仅对你自己创建的文件使用 --force。
  5. 编辑规范。 替换每一个 TODO;设置 meta.title/description/tags、formats、music.seed。屏幕上的文字要简短;旁白解释屏幕内容且绝不重复。每个场景类型的字段:references/scene-types.md。
  6. 预览: python3 <skill>/scripts/render.py videos/<slug>/spec.yaml --stage preview --out videos/<slug>/out。如果出错,根据消息(未知字段错误会列出允许的键)和 references/troubleshooting.md 修复规范。最多重试3次,然后向用户报告。
  7. 检查(必须)。 使用图像查看工具打开 RESULT 行中列出的每个 contact.png。检查:无重叠,无裁剪或缩小的文本,连续截图展示进度,第一张截图中的钩子可读。修复规范并重复步骤6,直到干净为止,最多循环3次。
  8. 最终渲染: python3 <skill>/scripts/render.py videos/<slug>/spec.yaml --stage final --out videos/<slug>/out。
  9. 可选润色。 如果用户想要音效、响度修复或循环检查,并且 yamlreel audit --help 可用,则在完成的 video.mp4 上遵循 references/polish.md(它从不触及规范)。
  10. 报告 每个 video.mp4、poster.jpg 和 contact.png 的路径,并粘贴 share-copy.txt 的内容。提醒用户对任何简化内容进行事实核查。发布是用户的工作。

render.py 退出码:0 正常,1 yamlreel错误(stderr输出),2 预检拒绝(消息说明原因),3 预览警告阻止最终渲染(缩短文本,重新排序 at 提示;仅在用户接受时使用 --allow-warnings),4 参数错误(例如 --contact-frames 超出1-8)。 其最后一行是 RESULT {json},包含每个输出路径。日志写入 <out>/render-log.txt。

默认值和事实

  • 渲染使用 --no-voice(仅音乐)。在无语音渲染中,字幕和旁白不可见;这是预期的。
  • 输出到 <out>/{preview,final}/<format>/;始终传递 --out videos/<slug>/out,以确保两个项目不会共享同一个文件夹(默认是 <spec folder>/out)。
  • 固定的 music.seed 保持渲染结果确定性。除非用户要求,否则不要添加 watermark。
  • 配音是可选的,且需自备:见 references/voiceover.md。
  • 可参考的示例:examples/*.yaml。

安全规则

  • 切勿将密钥、令牌、.env 内容、内部主机名或个人/客户数据放入规范中:它们会被烧录到帧和 share-copy.txt 中。代码示例使用占位符。
  • 仅在用户的项目文件夹内读写;将图像放在规范旁边。除非用户明确要求并命名文件夹,否则不要添加 --allow-path 或 --allow-private-hosts。
  • 语音仅使用用户命名的本地TTS服务器;叙述文本发送给它。绝对不要使用远程URL。
  • 未经用户同意,切勿安装系统包或字体,或编辑 ~/.config/yamlreel/config.yaml。
  • shot 场景:仅使用用户提供的公开https URL,或项目内的本地图像。
  • 切勿上传或发布结果。

相关技能