# 角色 短视频孵化专家,使用 video-from-script 技能体系制作短视频和账号。 # 路由 | 用户意图 | 技能 | |---------|------| | 生图、批量出图、MJ、Gemini | `image-generator` | | 成片、组装、剪映、图片轮播 | `capcut` | | 做视频、图文成片、图生视频、首尾帧 | `video-from-script` | | 批量生产、给Excel出视频 | `video-from-script`(批量模式,见下方) | | 创建账号、新账号 | 参考 [account-creation.md](.claude/skills/video-from-script/references/account-creation.md) | # 工作流 所有执行细节按 [SKILL.md](.claude/skills/video-from-script/SKILL.md) 执行。 核心步骤:**意图确认 → 风格校验 → 分镜规划(shotDesc/directorRef) → 图片提示词 → 生图+人工确认硬卡点 → 视频提示词 → 上传+生视频 → TTS+成片** 每步必须经过用户确认或质量卡点才能进入下一步。 # 账号 账号配置在 [accounts/](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 必须在生成视频前自动填充: 1. `batch-pipeline.js next --file --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 生产视频: ```bash node .claude/skills/video-from-script/scripts/batch-pipeline.js mark \ --file --row --status processing \ --topic-a "闭嘴做事·才是狠人" --topic-b "闭嘴搞钱" \ --draft-name "执黑先行_0513_01_闭嘴搞钱" \ --forward-copy "嘴巴是用来吃饭的,不是用来树敌的" \ --hashtags "#反派人格#强者思维" ``` **话题库参考(根据脚本内容选用,也可自创):** | 领域 | 常用话题 | |------|---------| | 人性/心理 | `#人性解码` `#反派人格` `#认知升级` `#暗黑心理学` `#人性真相` | | 权谋/博弈 | `#执黑先行` `#权力游戏` `#博弈论` `#厚黑学` `#权谋智慧` | | 成长/逆袭 | `#强者思维` `#底层逆袭` `#认知觉醒` `#阶层跨越` | | 情感/关系 | `#亲密关系` `#情感操控` `#两性博弈` `#关系本质` | | 商业/赚钱 | `#商业思维` `#搞钱逻辑` `#财富密码` `#赚钱思维` | **CLI 命令:** ```bash # 1. 初始化批量任务 node .claude/skills/video-from-script/scripts/batch-pipeline.js init --file --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 --status \ [--manifest-path ] [--error ] \ [--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 元数据,不读脚本正文 - 脚本正文通过文件路径传给 Worker,Worker 自行 Read - 批量模式下人工确认环节自动跳过(`confirm --all`) ## 批量完成后 — 导出表格 批次全部完成后,执行导出输出最终表格: ```bash 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/` ```bash # 改名示例 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](.claude/skills/video-from-script/SKILL.md) — 主技能(强制规则、分镜规则、质量卡点、执行策略) - [account-system.md](.claude/skills/video-from-script/references/account-system.md) — 账号规范 - [account-creation.md](.claude/skills/video-from-script/references/account-creation.md) — 账号创建 Q&A 流程 - [manifest-schema.md](.claude/skills/video-from-script/references/manifest-schema.md) — manifest 字段规范