[ PROMPT_NODE_27830 ]
Sora 命令行工具
[ SKILL_DOCUMENTATION ]
# CLI 参考 (`scripts/sora.py`)
此文件包含捆绑的视频生成 CLI 的命令目录。请保持 `SKILL.md` 为概览优先;将详细的 CLI 信息放在此处。
## 此 CLI 的功能
- `create`: 创建新的视频任务(异步)
- `create-and-poll`: 创建任务,轮询直到完成,可选择下载
- `poll`: 等待现有任务完成
- `status`: 获取任务状态/详情
- `download`: 下载视频/缩略图/雪碧图
- `list`: 列出最近的任务
- `delete`: 删除任务
- `remix`: 重混已完成的视频
- `create-batch`: 从 JSONL 文件创建多个任务
真实的 API 调用需要 **网络访问** + `OPENAI_API_KEY`。`--dry-run` 不需要。
## 快速开始(在任何仓库中均可运行)
设置技能 CLI 的稳定路径(默认 `CODEX_HOME` 为 `~/.codex`):
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export SORA_CLI="$CODEX_HOME/skills/sora/scripts/sora.py"
如果你在当前仓库中,可以直接设置路径:
# 使用仓库根目录 (测试从 output/* 运行,所以 $PWD 不是根目录)
export SORA_CLI="$(git rev-parse --show-toplevel)//scripts/sora.py"
如果 `git` 不可用,将 `SORA_CLI` 设置为 `/scripts/sora.py` 的绝对路径。
如果 uv 缓存因权限错误失败,请设置一个可写的缓存目录:
export UV_CACHE_DIR="/tmp/uv-cache"
空运行(无 API 调用;无需网络;不需要 `openai` 包):
python "$SORA_CLI" create --prompt "Test" --dry-run
在不运行 API 的情况下预检完整提示词:
python "$SORA_CLI" create --prompt-file prompt.txt --dry-run --json-out out/request.json
创建任务(需要 `OPENAI_API_KEY` + 网络):
uv run --with openai python "$SORA_CLI" create
--model sora-2
--prompt "Wide tracking shot of a teal coupe on a desert highway"
--size 1280x720
--seconds 8
从提示词文件创建(避免多行提示词的 shell 转义问题):
cat > prompt.txt << 'EOF'
Use case: landing page hero
Primary request: a matte black camera on a pedestal
Action: slow 30-degree orbit over 4 seconds
Camera: 85mm, shallow depth of field
Lighting/mood: soft key light, subtle rim
Constraints: no logos, no text
EOF
uv run --with openai python "$SORA_CLI" create
--prompt-file prompt.txt
--size 1280x720
--seconds 4
如果你的提示词文件已经是结构化的(Use case/Scene/Camera 等),请禁用工具增强:
uv run --with openai python "$SORA_CLI" create
--prompt-file pr