视频 API
SDKMAX 支持视频生成任务的统一接入,聚合了 Sora、可灵(Kling)、即梦、海螺、Vidu 等多个视频模型渠道。由于视频生成通常耗时较长,接口采用提交任务 + 轮询结果的异步模式,而非同步返回。
提交生成任务
POST /v1/videosbash
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,具体原因见任务对象的错误字段)、内容审核拦截等,完整错误码见 错误码。
