Skip to content

视频 API

SDKMAX 支持视频生成任务的统一接入,聚合了 Sora、可灵(Kling)、即梦、海螺、Vidu 等多个视频模型渠道。由于视频生成通常耗时较长,接口采用提交任务 + 轮询结果的异步模式,而非同步返回。

提交生成任务

POST /v1/videos
bash
curl https://api.sdkmax.com/v1/videos \
  -H "Authorization: Bearer sk-你的密钥" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2",
    "prompt": "无人机航拍雪山日出的延时视频"
  }'

响应会返回一个任务对象,包含任务 ID 与初始状态(如 queued / processing):

json
{
  "id": "video_xxx",
  "status": "queued",
  "model": "sora-2"
}

兼容路径

POST /v1/video/generations 是等价的兼容路径,行为与 POST /v1/videos 相同。

查询任务状态

GET /v1/videos/{task_id}
bash
curl https://api.sdkmax.com/v1/videos/video_xxx \
  -H "Authorization: Bearer sk-你的密钥"

轮询直到 status 变为 completed(成功)或 failed(失败)。建议采用间隔递增的轮询策略(如 2s、4s、8s...),避免过于频繁请求。

获取生成结果

任务完成后,通过内容接口下载实际视频文件:

GET /v1/videos/{task_id}/content

该接口支持 Authorization: Bearer 或控制台会话方式鉴权。

视频混剪 / remix

POST /v1/videos/{video_id}/remix

对已生成的视频提交二次编辑/混剪任务,返回新的任务对象,流程与初次生成一致(提交 → 轮询 → 获取内容)。

典型调用流程

python
import time

task = client.post("/videos", body={"model": "sora-2", "prompt": "..."})
task_id = task["id"]

while True:
    status = client.get(f"/videos/{task_id}")
    if status["status"] in ("completed", "failed"):
        break
    time.sleep(4)

if status["status"] == "completed":
    video = client.get(f"/videos/{task_id}/content")

(以上为示意代码,实际字段以接口真实返回为准;目前主流语言官方 OpenAI SDK 对视频接口的封装程度不一,建议必要时用 HTTP 客户端直接调用。)

模型可用性

具体可用的视频模型(如 sora-2、可灵、即梦等对应的 model 取值)以控制台模型广场或 /v1/models 返回为准,不同模型支持的时长、分辨率、参数差异较大,请以所选模型的实际能力为准。

错误处理

常见错误包括所选模型不支持请求参数(400)、任务失败(status: failed,具体原因见任务对象的错误字段)、内容审核拦截等,完整错误码见 错误码

SDKMAX — Enterprise AI Gateway, Aggregating Global AI Resources