Skip to content

视频生成任务

视频生成使用异步任务接口:创建任务后返回 video_task_*,客户端通过查询接口轮询状态和结果。接口使用 API Key 鉴权,不使用控制台 JWT。

text
Base URL: https://llm.xiaoyue9527.xyz/v1
Authorization: Bearer sk-gtw-REPLACE_ME
Content-Type: application/json

接口列表

接口方法用途
/v1/video/generations/tasksPOST创建视频生成任务
/v1/video/generations/tasks/{task_id}GET查询单个任务
/v1/video/generations/tasksGET查询任务列表
/v1/video/generations/tasks/{task_id}/cancelPOST取消任务
/v1/video/generations/tasks/{task_id}DELETE取消任务

兼容短路径:/v1/video/tasks/v1/video/tasks/{task_id}/v1/video/tasks/{task_id}/cancel

创建任务

创建任务必须提供幂等键,推荐使用 Idempotency-Key。也可以使用 X-Request-ID 请求头或请求体里的 request_id;优先级依次为 Idempotency-KeyX-Request-IDrequest_id。失败重试时必须复用同一个键和相同请求体。

bash
curl -X POST https://llm.xiaoyue9527.xyz/v1/video/generations/tasks \
  -H 'Authorization: Bearer sk-gtw-REPLACE_ME' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: biz-video-20260707-0001' \
  -d '{
    "model": "seedance-2-0-fast",
    "content": [
      {
        "type": "text",
        "text": "A calm 3 second cinematic shot of a blue glass cube on a clean white desk."
      }
    ],
    "duration": 3,
    "ratio": "16:9",
    "resolution": "720p",
    "watermark": false
  }'

平台会先规范化 modelcontent、时长、比例和分辨率,再同时校验平台模型与实际渠道的能力合同。不支持的参数在产生上游费用前返回 400 video_parameter_not_supported;未知字段默认不会透传,渠道明确配置为 omit 的字段会在发往供应商前移除。

调用前可通过 GET /v1/model-catalog/{model}video 字段读取当前支持的任务模式、输入媒体、分辨率、比例、时长和素材数量。能力配置不可用时返回 503 video_capability_unavailable,平台不会绕过校验调用供应商。

图片或视频输入可以直接使用 HTTPS URL,也可以先通过视频素材库创建稳定的 llmgw_asset:// URI。素材 URI 会按实际路由供应商转换,平台任务中保留租户隔离的素材版本快照。

视频价格按模型、任务模式、输出分辨率桶、输入是否含视频、计费模式和计费单位匹配。选定实际渠道后,平台会把客户售价、该供应商 credential 的成本价和当前租户折扣写入不可变任务快照,再进行额度预留;价格组合不完整时返回 503 video_pricing_unavailable,不会创建上游任务。任务创建后的改价、停价、折扣或路由变化不影响该任务最终结算。

查询任务

bash
curl 'https://llm.xiaoyue9527.xyz/v1/video/generations/tasks/video_task_xxx?refresh=true' \
  -H 'Authorization: Bearer sk-gtw-REPLACE_ME'

非终态任务查询时会同步上游状态;终态任务如需强制再次同步,可传 refresh=true

成功任务会在 content.video_url 返回视频结果链接:

json
{
  "id": "video_task_xxx",
  "object": "video.generation.task",
  "created": 1783000000,
  "updated": 1783000010,
  "model": "seedance-2-0-fast",
  "status": "succeeded",
  "content": {
    "video_url": "https://example.com/video.mp4"
  },
  "usage": {
    "completion_tokens": 108900,
    "total_tokens": 108900
  },
  "billing": {
    "status": "settled",
    "billing_event_id": "8f3c...",
    "estimated_cost_units": 500000000,
    "user_cost_units": 108900000,
    "promo_credit_used_units": 0,
    "paid_credit_used_units": 0,
    "wallet_charged_units": 108900000
  }
}

字段说明

字段说明
id平台视频任务 ID
statuscreating / queued / running / cancelling / succeeded / failed / cancelled / expired / unknown
content.video_url成功后的视频结果链接
usage上游返回的 usage 原文
billing.statuspending / reserved / settled / not_charged
billing.estimated_cost_units创建任务时用于额度预占的预估费用,不是最终扣费
billing.user_cost_units结算后的客户实际费用;存在时应优先用于展示和对账
billing.promo_credit_used_units / billing.paid_credit_used_units / billing.wallet_charged_units结算后的赠金、付费包、钱包扣费拆分

金额字段使用平台统一高精度单位:1 元 = 100,000,000 units。任务创建时返回的预估费用用于预算预占,终态任务应以 billing.user_cost_units 为准。not_charged 表示终态任务未产生扣费,此时不要把预估值展示为实际费用。

列表和取消

查询列表:

bash
curl 'https://llm.xiaoyue9527.xyz/v1/video/generations/tasks?limit=20&status=succeeded&model=seedance-2-0-fast&scope=api_key' \
  -H 'Authorization: Bearer sk-gtw-REPLACE_ME'

列表参数:

参数默认值说明
from当前时间前 24 小时RFC3339 起始时间
to当前时间RFC3339 结束时间;时间窗最长 31 天
status按任务状态过滤
model按模型 ID 过滤
scopeapi_keyapi_key 仅当前 Key;account 查询当前账号下任务
limit50每页数量,最大 100
after使用上一页 next_cursor 继续分页

列表响应包含 object: "list"datahas_more,还有下一页时会返回 next_cursor

json
{
  "object": "list",
  "data": [],
  "has_more": true,
  "next_cursor": "cursor_xxx"
}

取消任务:

bash
curl -X POST https://llm.xiaoyue9527.xyz/v1/video/generations/tasks/video_task_xxx/cancel \
  -H 'Authorization: Bearer sk-gtw-REPLACE_ME'

终态任务重复取消会直接返回当前任务。

限制和错误

说明
请求体大小最大 4 MiB
单个字符串字段最大 2 MiB
内联 data:*;base64 素材最大 512 KiB;建议改用对象存储 URL
列表时间窗最大 31 天
活跃任务限制超限返回 429 video_task_limit_exceeded

常见错误包括 idempotency_key_requiredidempotency_conflictinsufficient_quotabudget_exceededmodel_not_foundtask_not_foundrequest_too_large

OpenAI-compatible API documentation.