视频生成(异步三步)
接口概述
视频生成耗时较长,采用异步任务:提交 → 轮询状态 → 取结果 三步。全部视频模型都用下面这三个地址,参数差异按各模型说明填写即可。
按秒计费的模型在提交时即扣费(按时长 × 秒单价);按 token 计费的模型在取到结果时结算(分辨率与是否含视频输入决定档位)。每次费用都会记入控制台「费用中心」。
任务失败时,已扣的按秒费用会自动原路退回,无需申请;同一任务不会重复退。任务的累计费用以控制台「费用中心」的记录为准。
按分辨率档计价的模型,最终费用以实际出片的档位与时长为准:提交时按请求档先结,出片后如果与实际不符,差额自动补扣或退回(同一次调用不会重复结算)。
接口地址
POST https://openai.jw-info.com/v1/videos/submit
GET https://openai.jw-info.com/v1/videos/{id}/status
GET https://openai.jw-info.com/v1/videos/{id}/result
请求头
| 请求头 | 是否必填 | 说明 |
|---|---|---|
| Content-Type | 是 | application/json(提交与查询都需要) |
| Authorization | 是 | Bearer {API_KEY},或 x-api-key |
请求参数
提交任务
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 视频模型名,见模型广场(如 wan3.0-video) |
| prompt | string | 是 | 视频描述。不同模型上限 1500–5000 字符 |
| duration | integer | 否 | 时长(秒),按时长计费的模型必传 |
| resolution | string | 否 | 分辨率档位,如 720P/1080P/480P;按档计价的模型(万相 wan3.0、HappyHorse、Seedance 等)请用这个字段传档位(它同时决定价格档),不要用 size 传档——部分模型不认 size,会按自己的默认档出片 |
| input_modality | string | 否 | 输入模态,如 含视频输入/不含视频输入(Seedance 系档位) |
未列出的参数按各模型原生字段填写即可(如图片首帧、比例、水印、种子等)。
轮询与取结果
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | integer | 提交接口返回的任务 id |
请求示例
# 1. 提交
curl https://openai.jw-info.com/v1/videos/submit \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{"model": "wan3.0-video", "prompt": "海浪拍打礁石", "duration": 5}'
# -> {"id": 12, "status": "submitted"}
# 2. 轮询(建议间隔 5–15 秒)
curl https://openai.jw-info.com/v1/videos/12/status -H "Authorization: Bearer sk-你的密钥"
# -> {"id": 12, "status": "running"}
# 3. 取结果
curl https://openai.jw-info.com/v1/videos/12/result -H "Authorization: Bearer sk-你的密钥"
响应参数
状态接口
| 字段 | 类型 | 说明 |
|---|---|---|
| id | integer | 任务 id |
| status | string | submitted 已提交 / pending 排队 / running 处理中 / succeeded 成功 / failed 失败 |
结果接口
| 字段 | 类型 | 说明 |
|---|---|---|
| id | integer | 任务 id |
| status | string | 固定 succeeded |
| result | object | 任务结果,视频地址字段随模型而异(常见 video_url、output.video_url) |
任务未完成时返回 409。平台不落盘存储文件,返回的是可直接下载或播放的地址(有效期以服务返回为准,通常 24 小时),请及时转存。
响应示例
{
"id": 12,
"status": "succeeded",
"result": {
"output": { "video_url": "https://cdn.example.com/v/12.mp4" },
"usage": { "completion_tokens": 108000 }
}
}