Skip to content

异步视频生成 API

视频生成不是单次长连接。客户端先创建任务,再按固定间隔查询状态,完成后获取文件。

01创建任务POST /v1/videos
02轮询状态GET /v1/videos/{task_id}
03获取文件GET /v1/videos/{task_id}/content

1. 创建任务

bash
curl --fail-with-body --max-time 60 https://api.rtoc.cc/v1/videos \
  -H "Authorization: Bearer ${RTOC_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d "{
    \"model\": \"${RTOC_VIDEO_MODEL:-video-ds-2.0-fast}\",
    \"prompt\": \"晨雾中的海岸灯塔,镜头缓慢向前推进,电影感宽景\",
    \"seconds\": 15,
    \"size\": \"1920x1080\"
  }"

从响应读取任务标识;服务端可能使用 id 或任务结构中的等价字段,调用方应按当前响应校验后保存为 task_id

2. 轮询状态

调用 GET /v1/videos/{task_id}。建议每 5 秒查询一次,总等待时间设为有限值,例如 15 分钟。常见状态包括:

状态处理方式
queued / in_progress继续等待,避免高频轮询
completed停止轮询,进入下载步骤
failed停止并输出受控长度的错误信息
未知状态明确报错,不无限等待

3. 获取文件

任务完成后请求 GET /v1/videos/{task_id}/content。检查 HTTP 状态与 Content-Type 后再写入文件;不要把错误 JSON 当作视频保存。

bash
curl --fail-with-body --max-time 300 \
  -H "Authorization: Bearer ${RTOC_API_KEY}" \
  "https://api.rtoc.cc/v1/videos/${TASK_ID}/content" \
  --output output.mp4

完整的 cURL、Python 与 Node.js 视频示例 都包含有限轮询、失败状态和安全下载逻辑。模型名称及参数能力请以 模型广场生产文档 为准。