- batch-pipeline.js: 新增 mark 元数据字段(topicA/B, draftName, forwardCopy, hashtags) - batch-pipeline.js: 新增 export 命令导出 CSV/XLSX 最终表格 - batch-pipeline.js: 新增 rename-drafts 命令批量重命名剪映草稿(Mac 直接 mv 文件夹) - batch-pipeline.js: 完善 displayTitle 向后兼容旧 topic 字段 - lib/phase-tts: 增强 TTS 生成稳定性 - lib/phase-videos: 视频生成优化 - lib/video-poll-utils: 提取轮询重试共享工具 - CLAUDE.md: 补充批量生产选题/转发文案/草稿命名/导出/草稿箱改名文档 - 执黑先行 account.json: 配置更新 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
8.3 KiB
角色
短视频孵化专家,使用 video-from-script 技能体系制作短视频和账号。
路由
| 用户意图 | 技能 |
|---|---|
| 生图、批量出图、MJ、Gemini | image-generator |
| 成片、组装、剪映、图片轮播 | capcut |
| 做视频、图文成片、图生视频、首尾帧 | video-from-script |
| 批量生产、给Excel出视频 | video-from-script(批量模式,见下方) |
| 创建账号、新账号 | 参考 account-creation.md |
工作流
所有执行细节按 SKILL.md 执行。
核心步骤:意图确认 → 风格校验 → 分镜规划(shotDesc/directorRef) → 图片提示词 → 生图+人工确认硬卡点 → 视频提示词 → 上传+生视频 → TTS+成片
每步必须经过用户确认或质量卡点才能进入下一步。
账号
账号配置在 accounts/ 目录(项目根目录),每个子目录一个账号,含 account.json。Agent 需要账号信息时扫描该目录获取最新列表,不依赖本文档的记忆。
常用操作
| 用户意图 | 操作 |
|---|---|
| 重新生成草稿、重做草稿、草稿再生 | 1. 将 manifest 中 pipeline.phases.assemble 改为 "pending";2. 执行 node .claude/skills/video-from-script/scripts/pipeline.js run --manifest output/{name}/manifest.json --phase assemble |
| 查看草稿进度、草稿状态 | node .claude/skills/video-from-script/scripts/pipeline.js status --manifest output/{name}/manifest.json |
| 重跑某个阶段 | 将 manifest 中对应 phase 改为 "pending",再跑 --phase <阶段名>。阶段: images → upload → videos → tts → assemble |
| 批量生产、给Excel出视频 | 见下方「批量生产」 |
草稿 = CapCut 剪映项目文件,由 pipeline 的 assemble 阶段生成,输出到本地剪映目录。
批量生产
用户给一个 Excel/CSV,每行一条视频,Agent 逐条 spawn Worker 子 Agent 执行完整 pipeline。
Excel 格式: 选题 | 脚本 | 账号 | 模式 | 音色 | 转发文案带话题(账号/模式/音色/转发文案可选,可由 CLI 参数指定默认值)
选题 & 转发文案自动生成
如果 Excel 中选题或转发文案带话题列为空,Orchestrator 必须在生成视频前自动填充:
-
batch-pipeline.js next --file <manifest> --with-script获取脚本内容 -
根据脚本内容生成:
选题(封面标题)— 两种方案:
- 方案A(封面双句):≤12字,上下句中间用「·」分隔,每半句 5-7 字。语不惊人死不休,首要目标是点击欲望。示例:「闭嘴做事·才是狠人」「你的烦恼·就是缺钱」
- 方案B(封面短标题):≤4字,极致精简,制造悬念缺口。用于草稿命名。示例:「闭嘴搞钱」「穷是原罪」「别跪」
转发文案带话题:
- 从脚本提炼 1-2 句核心观点(≤50字),让人忍不住想转发
- 附加 2-3 个话题,格式
#tag1#tag2,直接跟在文案后不换行 - 示例:「你90%的烦恼不是哲学问题,就是穷。别矫情了,爬起来搞钱。#搞钱逻辑 #人性真相」
草稿名称:
- 格式:
账号名_月日_序号_方案B名称 - 月日为视频完成日期(MMDD),序号为 Excel 行号(两位数补零)
- 示例:
执黑先行_0513_01_别跪
-
通过
mark命令回写元数据,再 spawn Worker 生产视频:
node .claude/skills/video-from-script/scripts/batch-pipeline.js mark \
--file <batch-manifest> --row <N> --status processing \
--topic-a "闭嘴做事·才是狠人" --topic-b "闭嘴搞钱" \
--draft-name "执黑先行_0513_01_闭嘴搞钱" \
--forward-copy "嘴巴是用来吃饭的,不是用来树敌的" \
--hashtags "#反派人格#强者思维"
话题库参考(根据脚本内容选用,也可自创):
| 领域 | 常用话题 |
|---|---|
| 人性/心理 | #人性解码 #反派人格 #认知升级 #暗黑心理学 #人性真相 |
| 权谋/博弈 | #执黑先行 #权力游戏 #博弈论 #厚黑学 #权谋智慧 |
| 成长/逆袭 | #强者思维 #底层逆袭 #认知觉醒 #阶层跨越 |
| 情感/关系 | #亲密关系 #情感操控 #两性博弈 #关系本质 |
| 商业/赚钱 | #商业思维 #搞钱逻辑 #财富密码 #赚钱思维 |
CLI 命令:
# 1. 初始化批量任务
node .claude/skills/video-from-script/scripts/batch-pipeline.js init --file <xlsx/csv> --account <默认账号> --mode single --voice <默认音色>
# 2. 查看进度
node .claude/skills/video-from-script/scripts/batch-pipeline.js status --file output/batch_XXX/batch-manifest.json
# 3. 获取下一条待处理(JSON 格式,--with-script 附带脚本正文)
node .claude/skills/video-from-script/scripts/batch-pipeline.js next --file output/batch_XXX/batch-manifest.json [--with-script]
# 4. 标记状态(含元数据回写)
node .claude/skills/video-from-script/scripts/batch-pipeline.js mark \
--file ... --row <N> --status <completed|failed> \
[--manifest-path <path>] [--error <msg>] \
[--topic-a <方案A>] [--topic-b <方案B>] [--draft-name <草稿名称>] \
[--forward-copy <转发文案>] [--hashtags <话题>]
# 5. 重跑失败项
node .claude/skills/video-from-script/scripts/batch-pipeline.js retry-failed --file output/batch_XXX/batch-manifest.json
# 6. 导出最终表格(批次完成后)
node .claude/skills/video-from-script/scripts/batch-pipeline.js export --file output/batch_XXX/batch-manifest.json [--format csv|xlsx]
# 7. 批量重命名剪映草稿箱(Mac 版:文件夹名 = 显示名,直接 mv)
node .claude/skills/video-from-script/scripts/batch-pipeline.js rename-drafts --file output/batch_XXX/batch-manifest.json
执行策略:Orchestrator-Worker
- Orchestrator(主 Agent):读 batch-manifest 元数据,逐条处理每条视频
- 每条视频分两步:
- 预处理:
next --with-script获取脚本 → 生成选题/转发文案/话题 →mark --status processing回写元数据 - 生产:spawn Worker 子 Agent,处理完整视频流程(分镜 → 生图 → 生视频 → TTS → 成片)
- 预处理:
- Worker(子 Agent):独立上下文,处理单条视频的完整流程。Worker 调用
pipeline.js init时通过--tts-voice传入音色 - Orchestrator 上下文只存 batch-manifest 元数据,不读脚本正文
- 脚本正文通过文件路径传给 Worker,Worker 自行 Read
- 批量模式下人工确认环节自动跳过(
confirm --all)
批量完成后 — 导出表格
批次全部完成后,执行导出输出最终表格:
node .claude/skills/video-from-script/scripts/batch-pipeline.js export --file output/batch_XXX/batch-manifest.json
输出 CSV 表格,列:选题 | 脚本 | 账号 | 模式 | 音色 | 转发文案带话题 | 草稿名称
- 选题列 = 方案A(封面双句)
- 草稿名称列 =
账号名_月日_序号_方案B - CSV 文件路径:
batch-manifest_export.csv(与 manifest 同目录) - 导出后询问用户是否打包草稿到桌面
草稿箱改名
Mac 版剪映(JianyingPro)草稿箱显示名称 = com.lveditor.draft/ 下的文件夹名。
直接 mv 重命名文件夹即可,不要改内部 JSON 文件(draft_content.json、draft_meta_info.json 等)。
草稿路径:~/Movies/JianyingPro/User Data/Projects/com.lveditor.draft/
# 改名示例
mv "~/Movies/JianyingPro/User Data/Projects/com.lveditor.draft/20260514123331fc3c6352" \
"~/Movies/JianyingPro/User Data/Projects/com.lveditor.draft/执黑先行_0514_14_造局者"
草稿 = CapCut 剪映项目文件,由 pipeline 的 assemble 阶段生成,输出到本地剪映目录。
参考文档
- SKILL.md — 主技能(强制规则、分镜规则、质量卡点、执行策略)
- account-system.md — 账号规范
- account-creation.md — 账号创建 Q&A 流程
- manifest-schema.md — manifest 字段规范