Communitygithub.com

JaviMaligno/agilabs-video-studio

将一篇已发布的博客文章转化为一个配有旁白的、动画风格的竖屏解说视频(30-60秒,1080x1920),采用AGILabs品牌样式,并在本地使用Remotion渲染。当用户要求根据文章或博客帖子制作视频、短视频、解说视频时,或者需要重新渲染本插件制作的视频(带有 video.config.mjs 和 src/timeline.ts 的文件夹)时,即可使用此技能。

agilabs-video-studio 是什么?

JaviMaligno/agilabs-video-studio 是一个完整的AI Agent技能,用于将博客文章自动转换为高质量的AGILabs品牌竖屏解说视频(30-60秒,1080×1920)。它协调多个子技能(脚本编写、动画制作、旁白配音)完成从文章到最终MP4文件的整个流程。该技能支持多语言(英语和可选西班牙语)、本地基于Remotion渲染、严格的事实核查机制,以及需要人工审核的审批门控。它可在Claude Code、Cursor和其他支持SKILL.md的AI Agent平台上使用。工作流程包括精选文章、编写脚本(需批准)、复制模板、构建时间线、旁白生成、渲染和交付。用户可以通过修改时间线或设置轻松重新渲染现有视频,实现迭代内容创作。该技能强调不可协商的规则:事实准确性与来源可追溯、忠实于原文的第一人称语气、严格的AGILabs品牌规范,以及必须在构建前获得脚本批准。最终产物是一个包含MP4视频、海报PNG、SRT字幕和清单JSON的完整视频资产包。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JaviMaligno/agilabs-video-studio/tree/HEAD/skills/article-video

在你喜欢的 AI 中提问

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

文档

文章视频

协调从文章到最终MP4的整个流程。其他技能包含具体细节;在需要它们的步骤加载它们:

  • explainer-script:编写剧本并为每个场景选择视觉效果。
  • explainer-animation:组件库、时间线、定制组件、静帧。
  • narration:文本转语音(TTS)(Cartesia,Kokoro 作为后备)、发音、音频质量检查。

Remotion 项目位于插件的 template/ 文件夹中(作为插件安装时为 ${CLAUDE_PLUGIN_ROOT}/template;在插件仓库中位于 skills/ 旁边)。

不可妥协的规则

  • 事实核查。 屏幕或旁白中出现的每个数字和每个声明,都必须追溯到文章中的某一句话。将内容保存在 factcheck.md 的表格中(声明、出现位置、引用的原文句子)。数字须与文章完全一致:相同的舍入方式、相同的单位、使用“14/20”而不是“70%”。任何不匹配都要在时间线中修复,绝不能在文章中修改。事实核查仅涵盖旁白以及屏幕上显示的数字和声明,不涉及其他内容。视觉效果为冲击力而选择,而非对实验的字面重放:使用说明性场景(自由重放真实数据,为清晰放置标记,风格化的机制)是可以的,因为严谨性存在于文章及其仓库中。
  • 声音风格。 旁白应按照文章的写作风格进行:第一人称(“我运行了……”、“我发现了……”),声明的强度不超过原文。如果文章使用了缓释措辞(“在此设置下”、“在这20次运行中”),剧本也应使用缓释措辞。不要使用比原文更夸张的措辞。
  • 品牌标识。 仅限AGILabs:使用AGILabs徽章和 javieraguilar.ai。画面、海报、字幕或文件元数据中绝不出现个人姓名。
  • 审批门控。 在剧本获得批准之前,不进行任何构建。

工作流程

  1. 精选文章。 使用指定的文章。如果未指定,请阅读已发布的文章并推荐2-3个候选,每个候选需包含其标题、一句吸引人的引子、关键数字(引用)和视觉效果构想。优先选择包含实验、明确数字和可绘制机制的文章。让用户选择。

  2. 编写剧本 使用 explainer-script:旁白文本(英文,可选西班牙文),每个场景的视觉效果构想映射到库组件或标记为“定制”,以及每个数字的原始语句。

  3. 暂停等待批准。 展示剧本并等待。如有需要,应用修改并再次展示。

  4. 创建视频文件夹。 复制模板但不包含其生成的文件:

    • 在插件仓库内:examples/<文章简称>/;
    • 在任何其他仓库中:./video/<文章简称>/。
    rsync -a --exclude node_modules --exclude out --exclude public/audio --exclude public/music \
      --exclude .env "${CLAUDE_PLUGIN_ROOT}/template/" "video/<文章简称>/"
    cd "video/<文章简称>" && npm ci
    

    将已批准的剧本保存为该文件夹中的 script.md。

  5. 构建时间线 使用 explainer-animation:设置 src/settings.ts(articleTitle、voices、subtitles、targetSeconds、poster),并根据剧本编写 src/timeline.ts。如果剧本标记了任何定制组件,请添加它们,每个组件附带其 frameState 测试。

  6. 代码检查: npm run lint。修复每个发现的问题(时长、字幕速度、未知组件)。当添加或更改组件时,还要运行 npm test。

  7. 事实核查 对照文章进行,并编写 factcheck.md(见上文)。

  8. 旁白配音: npm run tts,然后 npm run audio-qa(参见 narration)。听取它标记的任何内容。再次运行 npm run lint:此时真实台词长度会替换之前的估算值。

  9. 静帧及其检查。 为每个场景渲染一帧,再加每约3秒一帧,并逐张检查所有PNG图片。检查品牌、安全区、无溢出、数字与文章一致、字幕与屏幕节奏匹配。干净的构建并不证明画面看起来正确。

  10. 渲染: npm run render(竖屏英文)。如果生成西班牙语版本使用 -- --es,如果生成横屏1920x1080使用 -- --landscape。然后再次运行 npm run audio-qa 以测量混音(-16 LUFS 集成)。

  11. 交付: npm run deliver 将写入海报PNG、SRT字幕文件和 out/manifest.json。检查海报。提供MP4路径和海报;发布是单独的步骤。

重新渲染现有视频

打开其文件夹,如果缺少 node_modules 则运行 npm ci,修改 src/timeline.ts 或设置,然后从步骤6开始重复操作。TTS 仅重新生成文本发生变化的台词。

文件存放位置

  • 源代码(时间线、设置、定制组件、script.md、factcheck.md)会被提交。
  • out/、public/audio/、public/music/、node_modules/ 以及所有 .mp4/.wav 文件不会被提交。
  • .env 文件包含 TTS 密钥,永远不会被提交或打印。

Individual skills in this repo

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

相关技能