统一视频生成 API

视频模型 API

使用 OpenAI 兼容的异步接口调用视频模型。任务创建后通过轮询接口获取最终视频地址。

POST /v1/videosGET /v1/videos/{task_id}Bearer Token

认证与地址

在 Tokencookie 控制台创建 API 密钥。请求必须使用 Authorization: Bearer 认证。

Base URL: https://www.tokencookie.com
Authorization: Bearer YOUR_TK_API_KEY
Content-Type: application/json

模型列表

模型名必须使用下表中的 Tokencookie 模型名。模型分辨率固定,省略 resolution 时系统会自动补齐。

模型固定分辨率
sd-2.0-g1-480p480p
sd-2.0-g1-720p720p
sd-2.0-g1-1080p1080p
sd-2.5-g1-480p480p
sd-2.5-g1-720p720p
sd-2.5-g1-1080p1080p

请求字段

字段类型必填说明
modelstring是使用模型列表中的名称。
promptstring是视频生成提示词,不能为空。
durationinteger否整数 1-15 秒,默认 4 秒。
secondsinteger否duration 的兼容字段;同时存在时使用 duration。
ratiostring否默认 16:9;支持 16:9、9:16、1:1、3:4、4:3。
aspect_ratiostring否ratio 的兼容字段;优先使用 ratio。
sizestring否如 1920x1080,仅在未传比例字段时推导比例。
resolutionstring否必须与所选模型固定分辨率一致。
first_imagestring否首帧图片公网 HTTP(S) URL。
last_imagestring否尾帧图片公网 HTTP(S) URL。
reference_imagesstring[]否参考图片 URL 数组。
reference_videosstring[]否参考视频 URL 数组。
reference_audiosstring[]否参考音频 URL 数组。
不要传入 mode。兼容层会根据参考素材自动决定模式;客户端传入 mode 会被拒绝。

创建任务

文生视频

curl -X POST https://www.tokencookie.com/v1/videos -H "Authorization: Bearer YOUR_TK_API_KEY" -H "Content-Type: application/json" -d '{"model":"sd-2.0-g1-720p","prompt":"城市夜景中的霓虹灯倒映在雨后街道,镜头缓慢推进。","duration":5,"ratio":"16:9","resolution":"720p"}'

带参考素材

{
  "model": "sd-2.5-g1-1080p",
  "prompt": "保持人物外观一致,让人物从室内走向窗边。",
  "duration": 8,
  "ratio": "9:16",
  "first_image": "https://example.com/first.png",
  "reference_images": ["https://example.com/character.png"],
  "resolution": "1080p"
}

创建成功

{"id":"task_px_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","status":"queued"}

保存返回的 id,随后用于查询任务结果。

查询与结果

curl https://www.tokencookie.com/v1/videos/TASK_ID -H "Authorization: Bearer YOUR_TK_API_KEY"

建议每隔 10-20 秒查询一次,直到状态为 completed 或 failed。

处理中

{"id":"TASK_ID","status":"processing","progress":48}

生成成功

{
  "id": "TASK_ID",
  "status": "completed",
  "progress": 100,
  "video_url": "https://tccdn.shenzhengyun.cn/video/2026/09/25/task_px_xxx.mp4",
  "result_url": "https://tccdn.shenzhengyun.cn/video/2026/09/25/task_px_xxx.mp4"
}
video_url 和 result_url 优先返回七牛 CDN 地址,客户端无需访问上游地址。

七牛上传失败时

{
  "id": "TASK_ID",
  "status": "completed",
  "progress": 100,
  "video_url": "https://proxy.tokencookie.com/trxdoc1/v1/videos/media/m_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "result_url": "https://proxy.tokencookie.com/trxdoc1/v1/videos/media/m_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

兼容层内部拉取上游视频,不会把上游真实 URL 返回给客户端。

错误处理

参数校验错误

{"error":{"message":"resolution must be 720p for sd-2.0-g1-720p","code":"invalid_request"}}

上游提交失败

{"detail":"余额不足或当前模型不可用"}

上游 JSON 错误会原样透传,具体字段以实际响应为准。

生成失败

{
  "id": "TASK_ID",
  "status": "failed",
  "progress": 0,
  "error": {"message":"上游返回的具体失败原因","code":"上游错误码"}
}

生成失败时会保留上游错误信息;七牛上传失败信息由服务端日志记录,客户端不会看到上游视频地址。