From short-video-director
Submits pending video generation tasks to dreamina CLI, updating tasks.json with submit_id and status. Handles state transition from pending to submitted/failed.
How this skill is triggered — by the user, by Claude, or both
Slash command
/short-video-director:creator-video-dreaminasonnetcreatorThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- `config.md` — 必须读取(获取 `## 视频生成配置` 中的即梦视频模型版本、视频比例、视频分辨率)
config.md — 必须读取(获取 ## 视频生成配置 中的即梦视频模型版本、视频比例、视频分辨率)story/episodes/$ARGUMENTS[0]/videos/tasks.json — 必须读取(由 generate-video 预登记创建)$ARGUMENTS[0] — 集数(如 ep01)$ARGUMENTS[1] — 目标镜头编号列表(如 1 3 5 或 all)从 tasks.json 加载 pending 镜头,读取其 prompt / images / duration,调用脚本提交视频生成任务,将结果(submit_id / status / fail_reason)写回 tasks.json。
scripts/ 目录下的现有脚本。scripts/xxx.sh 找不到,使用 Glob 工具搜索 **/scripts/xxx.sh 找到插件目录下的脚本绝对路径。pending → submitted / failed 状态转移。严禁:(a) 处理 tasks.json 中不存在的 shot(视为上游 bug,输出错误提示并跳过该 shot 继续下一个,不得尝试提交);(b) 处理 status ≠ pending 的 shot(submitted/done/failed 由 check-video 处理);(c) 以测试、验证、调试名义提交任何任务;(d) 修改 tasks.json 的 prompt / images / duration(本 skill 仅更新 submit_id / status / fail_reason)。视频生成成本高,任何灰色操作直接烧钱。文件路径:story/episodes/{集数}/videos/tasks.json
每条记录包含以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| shot | number | 镜头编号(主键,从 1 开始) |
| submit_id | string | dreamina 返回的任务 ID(未提交时为 "") |
| status | string | pending(已登记未提交)/ submitted(等待结果)/ done(视频已下载)/ failed(生成失败) |
| prompt | string | 提交时使用的完整 prompt 文本 |
| images | string | 逗号分隔的参考图片路径列表 |
| duration | number | 视频时长(秒) |
| fail_reason | string | 失败原因(成功时为 "") |
完整示例:
[
{"shot": 1, "submit_id": "0a7fdfa1711442ee", "status": "submitted", "prompt": "### 镜头 1\n- **镜头类型:** 特写\n...", "images": "assets/images/characters/林知意.png,assets/images/locations/郊外泥地.png", "duration": 15, "fail_reason": ""},
{"shot": 2, "submit_id": "", "status": "failed", "prompt": "### 镜头 2\n...", "images": "assets/images/characters/林知意.png", "duration": 15, "fail_reason": "ExceedConcurrencyLimit"}
]
写入规则:
bash scripts/read-config.sh "即梦视频模型版本" 等获取配置值(即梦视频模型版本、视频比例、视频分辨率)dreamina user_credit 检查登录状态并显示当前积分余额
dreamina login 完成登录"并结束mkdir -p story/episodes/{集数}/videosstory/episodes/{集数}/videos/tasks.json(由 generate-video 预登记创建)/generate-video {集数}",结束$ARGUMENTS[1] 过滤目标镜头:
all → 使用 tasks.json 中所有 status == pending 的记录1 3 5)→ 在 tasks.json 中匹配这些 shotpending → 本次要提交submitted, done, failed} → 跳过,输出一行提示"shot {N} status={status},跳过(由 check-video 处理)"/generate-video",跳过该 shot 继续下一个对阶段 2 筛出的每个 pending 镜头:
从 tasks.json 该 shot 记录读取 prompt / images / duration
提交视频生成:bash scripts/video-gen-dreamina.sh "{prompt}" "story/episodes/{集数}/videos/shot{NN}.mp4" "{images}" "{duration}" "{比例}" "{模型版本}"
根据退出码处理:
SUBMITTED 开头 → 提取 submit_id,状态转移 pending → submittedFAIL 开头 → 提取失败原因,状态转移 pending → failed用 Read 读取 tasks.json 最新内容,按 shot 编号找到对应条目,只更新 submit_id / status / fail_reason 三个字段(prompt / images / duration 保持不变),然后用 Write 写回完整 JSON
提交失败 → 写入 failed + fail_reason → 继续下一个 shot,本次运行中不得再次尝试该 shot
若提交失败原因为并发限制 → 立即停止本次提交,且把所有剩余 pending shot(status==pending 且尚未在本次 run 中提交过的)在 tasks.json 中状态转移 pending → failed,fail_reason 设为 ExceedConcurrencyLimit,submit_id 保持 ""。已在本次 run 中标为 submitted 或 failed 的 shot 不动。批量标记规则:用 Read 读取 tasks.json 最新内容,批量更新后用 Write 写回完整 JSON。输出"已达并发上限,剩余 N 个 pending 镜头已标为 failed (ExceedConcurrencyLimit),将由 auto-video cron 自动重试"。
设计意图:把"剩余 pending"转移到"failed-retryable",复用 check-video phase 5a auto-retry 机制把它们逐步推进。failure-classification.md 已规定并发限制为 retryable,无需修改分类逻辑。
dreamina user_credit,显示提交后的积分余额npx claudepluginhub wddxh/shortvideodirectorReads storyboard shots and asset images, registers video generation tasks to a tracking JSON, and delegates submission to the dreamina skill. Invoke via /generate-video ep01 or /generate-video ep01 镜头3 镜头5.
Generates AI videos from text or images using ByteDance Seedance models via the Volcengine Ark API. Supports multiple models with audio, draft mode, and reference images.
Acts as AI creative director for video production including product ads, short films, montages, TikTok e-commerce. Analyzes inputs, writes English prompts, generates assets, submits tasks.