Seedance 视频入站协议
豆包 Seedance 系列(doubao-seedance-*)除标准视频协议外,还可以用火山方舟(Ark)原厂路径调用, 请求体与响应体按 Ark 内容生成协议书写:
| 方法 | 路径 | 用途 |
|---|---|---|
POST | /ark/api/v3/contents/generations/tasks | 创建内容生成任务(视频) |
GET | /ark/api/v3/contents/generations/tasks/{task_id} | 查询任务状态与结果 |
DELETE | /ark/api/v3/contents/generations/tasks/{task_id} | 取消未完成的任务并退回预扣(取决于上游是否支持,见下) |
这是平台托管通道:路径是 Ark 自己的,但请求走的是网关标准的异步任务流水线,与 通用异步内容生成任务完全同一条链路,只是换了 Ark 的路径拼写。因此它同样享受 维度计费、任务落库、产物持久化与预扣/结算的全部保障。
创建任务
请求体按 Ark 内容生成协议书写,model 填平台逻辑模型名(如 doubao-seedance-2.0-mini):
curl https://api.modelgo.com/ark/api/v3/contents/generations/tasks \
-H "Authorization: Bearer $MODELGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<model>",
"content": [
{ "type": "text", "text": "一只霓虹都市里的猫" },
{ "type": "image_url", "image_url": { "url": "https://example.com/first.jpg" } }
],
"resolution": "720p",
"ratio": "16:9",
"duration": 5
}'resolution / ratio / duration 的合法取值随模型而异(例如 Seedance 2.0 的 Fast 与 Mini 不支持 1080p,duration 下限是 4 秒),请以对应模型的能力说明为准;超出范围会在创建时被拒。
查询任务
curl https://api.modelgo.com/ark/api/v3/contents/generations/tasks/{task_id} \
-H "Authorization: Bearer $MODELGO_API_KEY"创建与查询返回的就是通用异步内容生成任务那一种 Ark 任务对象——同一条流水线, 响应报文与字段语义(status 取值、content.video_url、error、usage 缺省规则)与那一页完全一致, 此处不再重复。
取消任务
curl -X DELETE https://api.modelgo.com/ark/api/v3/contents/generations/tasks/{task_id} \
-H "Authorization: Bearer $MODELGO_API_KEY"取消成功后预扣会被退回(void),不产生结算。
但取消不是所有上游都支持。 能否取消取决于承接该任务的供应商是否实现了取消能力,而这条通道 不锁定上游 family,所以同一个逻辑模型的两次调用可能一次能取消、一次不能。两种失败:
| 情况 | 响应 |
|---|---|
| 承接该任务的供应商不支持取消 | 400 / 4003 provider_unsupported,endpoint not supported by provider |
任务已到终态(succeeded / failed) | 409 task_already_terminal,task already finished; nothing to cancel |
取消失败时预扣不会提前退回,会等任务到终态或预扣过期后按正常结算/释放流程处理。所以不要把 「先创建、再取消」当成一种可靠的止损手段。
关键约定
id是网关任务 ID,不是上游任务 ID。 查询、取消都只认这个 ID,请以创建响应里的id为准。- 响应形态是固定的。 无论实际由哪家上游承接,创建与查询都返回同一种 Ark 任务对象,
- 该通道不锁定上游 family。 路径拼写不参与选路:
model对应的逻辑模型路由到谁,就由谁承接。 - 产物内容接口只有 OpenAI 兼容那一条(
GET /v1/videos/{task_id}/content),Ark 路径下没有对应端点; - 该模型是否开放本通道,取决于它在模型目录里声明的
public_protocols是否含
不会因为路由到不同供应商而变形。
Seedance 在平台上由多家供应商共同承接,同一个逻辑模型的两次调用可能落到不同上游,这是正常的。
直接使用响应里的 content.video_url 即可。
content_generation;未声明则返回 4005。可用 GET https://api.modelgo.com/v1/models 核对。
如果你不需要 Ark 的路径与字段风格,OpenAI 兼容视频流是更标准化的选择。