与官方文档的对照请见火山方舟官方网址。
本文只说明 tokenlibs 网关层引入的差异,未提及的字段一律原样透传。
| 项 | 官方 火山方舟 | tokenlibs 下游 |
|---|---|---|
| Host | https://ark.cn-beijing.volces.com | https://api.tokenlibs.com |
| 路径前缀 | /api/v3/contents/generations/tasks | /byteplus/api/v3/contents/generations/tasks |
| 鉴权 | 火山方舟 API Key | tokenlibs 令牌(Authorization: Bearer sk-xxxx) |
id / model)外,请求与响应的所有字段Authorization: Bearer <你的 tokenlibs 令牌>
Content-Type: application/json| 操作 | 方法与路径 |
|---|---|
| 创建任务 | POST /byteplus/api/v3/contents/generations/tasks |
| 查询任务 | GET /byteplus/api/v3/contents/generations/tasks/{task_id} |
| 取消 / 删除任务(国内版暂不支持) | DELETE /byteplus/api/v3/contents/generations/tasks/{task_id} |
| 结果回调(Webhook) | 由 tokenlibs 主动 POST 到你的 callback_url(见 §5) |
| 真人 / 仿真人参考图素材审核 | POST /byteplus/api/asset/upload/sync(见 §8) |
POST /byteplus/api/v3/contents/generations/tasksmodel + content[] 多模态数组 + resolution /ratio / duration / seed / generate_audio 等参数)。完整字段见官方{
"model": "doubao-seedance-2-0-260128",
"content": [
{
"type": "text",
"text": "A kitten yawns at the camera"
}
],
"resolution": "720p",
"ratio": "16:9",
"duration": 5,
"callback_url": "https://your-server.example.com/byteplus/webhook"
}id 为 tokenlibs 颁发的 task_xxxx。{
"id": "task_a1b2c3d4e5f6..."
}id 后通过 §3 查询状态;成功后从 content.video_url 取结果。task_id,后续查询 / 取消 / Webhook 均以它为准。GET /byteplus/api/v3/contents/generations/tasks/{task_id}{task_id} 为创建时返回的 task_xxxx。响应体与官方id 已改写为对外形态)。{
"id": "task_a1b2c3d4e5f6...",
"model": "doubao-seedance-2-0-260128",
"status": "succeeded",
"content": {
"video_url": "https://.../output.mp4"
},
"usage": {
"completion_tokens": 1234,
"total_tokens": 1234
},
"created_at": 1717142400,
"updated_at": 1717142460
}| status | 含义 |
|---|---|
queued | 排队中 |
running | 生成中 |
succeeded | 成功(终态,content.video_url 可用) |
failed | 失败(终态,error 含原因) |
cancelled | 已取消(终态;仅 queued 任务被取消后出现) |
expired | 超时(终态;任务长期处于 queued/running 超过过期阈值) |
content.video_url由 火山方舟 CDN 直出,tokenlibs 不代理;请在有效期内(官方约 24h)及时保存。
DELETE /byteplus/api/v3/contents/generations/tasks/{task_id}DELETE 的行为取决于任务当前状态:| 任务状态 | 是否可操作 | 行为 | 操作后 |
|---|---|---|---|
queued | 可 | 从队列移除,状态置为 cancelled | cancelled(仍可查询) |
running | 否 | —(返回 409) | — |
succeeded / failed / expired | 可 | 删除任务记录,不再可查询 | 记录被物理删除 |
cancelled | 否 | — | — |
callback_url,tokenlibs 将在任务产生明确结果时,向该地址 POST 结果。| 状态变化 | 官方 火山方舟 回调 | tokenlibs Webhook |
|---|---|---|
→ queued | 推送 | 不推送 |
→ running | 推送 | 不推送 |
→ succeeded | 推送 | ✅ 推送 |
→ failed | 推送 | ✅ 推送 |
→ cancelled | —(不推送) | ✅ 推送(终态) |
→ expired | 推送 | ✅ 推送 |
POST,Content-Type: application/jsonX-tokenlibs-Task-Id: task_xxxx(便于校验 / 关联){
"id": "task_a1b2c3d4e5f6...",
"model": "doubao-seedance-2-0-260128",
"status": "succeeded",
"content": {
"video_url": "https://.../output.mp4"
},
"usage": {
"completion_tokens": 1234,
"total_tokens": 1234
}
}0s / 2s / 4s(首次立即)。返回 2xx 视为成功并停止重试。你的回调端点应尽快返回 2xx,并对同一task_id的重复投递做幂等处理(重试或边界情况下可能重复收到)。
charge = X × cellRatio × completion_tokens × group_ratio,cellRatio 按*-fastusage.completion_tokens 为基准完成。POST /byteplus/api/asset/upload/syncAuthorization: Bearer sk-xxxx(tokenlibs 令牌,非上游密钥)、Content-Type: application/json{images, asset_type},无需携带 model。{
"images": [
"https://XXX11.png",
"https://XXX2.png"
],
"asset_type": "Image"
}{
"track_id": "5208a2ec6ce266dbf898a967d8561ba8",
"status": "completed",
"task_id": "task-20260617095644-d9236ee8",
"asset_urls": [
"Asset://asset-20260617175337-krnp7",
"Asset://asset-20260617175647-p7p8m"
]
}⚠️ 此处 task_id/track_id为上传素材文件请求任务的参数,不可轮询、无对应任务记录,
请勿用于查询 / 取消接口。
{
"message": "第1条URL文件类型不受支持,请确保URL包含受支持的扩展名...",
"status": "failed"
}| 场景 | HTTP | 响应体 |
|---|---|---|
| 成功 | 200 | 成功格式(见上) |
| 失败 | 400 | {message, status:"failed"} |
| 无可用渠道 / 请求体非法 JSON | 400 | {message, status:"failed"} |
| 网络异常 | 500 | {message, status:"failed"} |