文档OriHub
创建视频生成任务
提交视频任务拿 task_id,再轮询出片。
提交一个视频生成任务,接口立刻返回 task_id,成片要自己轮询。
请求
curl https://api.lk888.ai/v1/media/generate \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "viduq3",
"prompt": "阳光洒在湖面上,一只白鹭贴着水面缓缓滑过",
"params": {
"aspect_ratio": "16:9",
"duration": "4",
"resolution": "1080p"
}
}'
| 字段 | 必填 | 说明 |
|---|---|---|
model |
是 | 模型名,从 GET /v1/skills/models 取 |
prompt |
是 | 画面描述 |
params |
否 | 这个模型自己的参数,不传就用默认值 |
notify_url |
否 | 任务到终态时平台回调这个地址 |
响应
{
"code": 200,
"data": { "task_id": 12345 },
"msg": "Task created successfully"
}
读 data.task_id。响应里还有 任务ids / 对话组ID / 成功数量 这几个中文字段,是给老 SDK 兼容用的,将来会下线 —— 新接入只用 task_id。
params 从哪来
每个模型的参数不一样,先查再用:
curl https://api.lk888.ai/v1/skills/models/viduq3 \
-H "Authorization: Bearer $OPENAI_API_KEY"
params 数组里逐个写着参数名、类型、是否必填、可选值。type=select 的值必须从 options 里挑,不能自己编;required=false 的不用就整个省略,平台不填默认值。
轮询
curl "https://api.lk888.ai/v1/skills/task-status?task_id=12345" \
-H "Authorization: Bearer $OPENAI_API_KEY"
间隔 5 秒,is_final = true 就停。成片在 result_url(.mp4),result_type 是 video,cost 是实际扣的算力点。
轮询超过 7200 秒(2 小时)还没完成,当超时处理,停下来告知用户。
回调
提交时带 notify_url(公网 http/https,内网地址不行),任务到终态平台会主动 POST 给你,body 跟 task-status 一样,含 state、is_final、result_url、cost,失败时也带 error_code。
投递失败会重试 4 次(立即、10 秒、30 秒、1 分钟),你返回 2xx 才算成功。回调是尽力而为 —— 长时间没收到,还是拿 task_id 自己轮询兜底。
视频特有的几件事
- 文件必须用公网直链 URL —— 视频、参考图、首尾帧都不能内联 base64
- 时长、分辨率、比例看
options—— 4/6/8/10 秒、1–15 秒、3–10 秒、30 秒长视频都有;480p 到 4K、16:9 到 3:4 都有,但每个模型给的值不一样 - 按次还是按秒,模型名里就写着 —— 「Seedance 2.5 文生视频按秒」按实际时长扣费,「按次」的一次一个价
- 一个请求建一个任务 —— 没有 count 参数,要多条就并发提交、分别轮询
出错了
error_code 决定能不能重试:内容违规、参数不对、余额不足、配额用完、密钥没配线路 —— 改了再来;线路没了、上游抽风、服务端错误 —— 5–30 秒后重试,最多 3 次。完整对照见错误码查询。