文章视频
协调从文章到最终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。画面、海报、字幕或文件元数据中绝不出现个人姓名。 - 审批门控。 在剧本获得批准之前,不进行任何构建。
工作流程
-
精选文章。 使用指定的文章。如果未指定,请阅读已发布的文章并推荐2-3个候选,每个候选需包含其标题、一句吸引人的引子、关键数字(引用)和视觉效果构想。优先选择包含实验、明确数字和可绘制机制的文章。让用户选择。
-
编写剧本 使用
explainer-script:旁白文本(英文,可选西班牙文),每个场景的视觉效果构想映射到库组件或标记为“定制”,以及每个数字的原始语句。 -
暂停等待批准。 展示剧本并等待。如有需要,应用修改并再次展示。
-
创建视频文件夹。 复制模板但不包含其生成的文件:
- 在插件仓库内:
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。 - 在插件仓库内:
-
构建时间线 使用
explainer-animation:设置src/settings.ts(articleTitle、voices、subtitles、targetSeconds、poster),并根据剧本编写src/timeline.ts。如果剧本标记了任何定制组件,请添加它们,每个组件附带其frameState测试。 -
代码检查:
npm run lint。修复每个发现的问题(时长、字幕速度、未知组件)。当添加或更改组件时,还要运行npm test。 -
事实核查 对照文章进行,并编写
factcheck.md(见上文)。 -
旁白配音:
npm run tts,然后npm run audio-qa(参见narration)。听取它标记的任何内容。再次运行npm run lint:此时真实台词长度会替换之前的估算值。 -
静帧及其检查。 为每个场景渲染一帧,再加每约3秒一帧,并逐张检查所有PNG图片。检查品牌、安全区、无溢出、数字与文章一致、字幕与屏幕节奏匹配。干净的构建并不证明画面看起来正确。
-
渲染:
npm run render(竖屏英文)。如果生成西班牙语版本使用-- --es,如果生成横屏1920x1080使用-- --landscape。然后再次运行npm run audio-qa以测量混音(-16 LUFS 集成)。 -
交付:
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 密钥,永远不会被提交或打印。