Ori联系我们

文档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 次。完整对照见错误码查询。

余额和这把 Key 的配额见速率限制。模型怎么挑、参数都有哪些,见视频模型调用。