Files
video-create/CLAUDE.md
lc 8787d369d3 feat(video-from-script): 批量生产元数据增强 — 选题/转发文案/草稿命名/导出/草稿箱改名
- 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>
2026-05-14 23:16:12 +08:00

8.3 KiB
Raw Blame History

角色

短视频孵化专家,使用 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 <阶段名>。阶段: imagesuploadvideosttsassemble
批量生产、给Excel出视频 见下方「批量生产」

草稿 = CapCut 剪映项目文件,由 pipeline 的 assemble 阶段生成,输出到本地剪映目录。

批量生产

用户给一个 Excel/CSV每行一条视频Agent 逐条 spawn Worker 子 Agent 执行完整 pipeline。

Excel 格式: 选题 | 脚本 | 账号 | 模式 | 音色 | 转发文案带话题(账号/模式/音色/转发文案可选,可由 CLI 参数指定默认值)

选题 & 转发文案自动生成

如果 Excel 中选题转发文案带话题列为空Orchestrator 必须在生成视频前自动填充:

  1. batch-pipeline.js next --file <manifest> --with-script 获取脚本内容

  2. 根据脚本内容生成:

    选题(封面标题)— 两种方案:

    • 方案A封面双句≤12字上下句中间用「·」分隔每半句 5-7 字。语不惊人死不休,首要目标是点击欲望。示例:「闭嘴做事·才是狠人」「你的烦恼·就是缺钱」
    • 方案B封面短标题≤4字极致精简制造悬念缺口。用于草稿命名。示例「闭嘴搞钱」「穷是原罪」「别跪」

    转发文案带话题:

    • 从脚本提炼 1-2 句核心观点≤50字让人忍不住想转发
    • 附加 2-3 个话题,格式 #tag1#tag2,直接跟在文案后不换行
    • 示例「你90%的烦恼不是哲学问题,就是穷。别矫情了,爬起来搞钱。#搞钱逻辑 #人性真相」

    草稿名称:

    • 格式:账号名_月日_序号_方案B名称
    • 月日为视频完成日期MMDD序号为 Excel 行号(两位数补零)
    • 示例:执黑先行_0513_01_别跪
  3. 通过 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 元数据,逐条处理每条视频
  • 每条视频分两步
    1. 预处理next --with-script 获取脚本 → 生成选题/转发文案/话题 → mark --status processing 回写元数据
    2. 生产spawn Worker 子 Agent处理完整视频流程分镜 → 生图 → 生视频 → TTS → 成片)
  • Worker子 Agent独立上下文处理单条视频的完整流程。Worker 调用 pipeline.js init 时通过 --tts-voice 传入音色
  • Orchestrator 上下文只存 batch-manifest 元数据,不读脚本正文
  • 脚本正文通过文件路径传给 WorkerWorker 自行 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.jsondraft_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 阶段生成,输出到本地剪映目录。

参考文档