Seedance Video API
当你要通过 Exchange Token 创建或查询 Seedance 视频生成任务时,看这一页即可。
支持的模型与接口
| 项目 | 值 |
|---|---|
| 对外模型 | doubao-seedance-2-0-260128、seedance-2.0、seedance-2.0-fast |
| 创建任务 | POST /api/v3/contents/generations/tasks |
| 查询任务 | GET /api/v3/contents/generations/tasks/{id} |
| Base URL 示例 | https://api.exchangetoken.ai |
| 推荐鉴权 | Authorization: Bearer <YOUR_API_KEY> |
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 账号已开通的精确模型名,例如 doubao-seedance-2-0-260128 或 seedance-2.0 |
content | object[] | 是 | 输入数组 |
generate_audio | boolean | 否 | 默认 true |
tools | object[] | 否 | 环境相关能力 |
resolution | string | 否 | 480p 或 720p |
ratio | string | 否 | 21:9、16:9、4:3、1:1、3:4、9:16、adaptive |
duration | integer | 否 | 4 到 15,或 -1 |
watermark | boolean | 否 | 按上游能力执行 |
当前不建议依赖 service_tier、draft、frames、camera_fixed。
模型选择
如果你需要兼容国内豆包 / Seedance 2.0 原厂模型 ID,使用 doubao-seedance-2-0-260128。如果你的账号配置的是 Exchange Token 通用 Seedance 别名,可以使用 seedance-2.0。seedance-2.0-fast 是否可用取决于账号是否开通 fast 池。
国内兼容池和海外兼容池建议使用不同的对外模型名。除非你的账号已经明确开通对应工作流,否则不要默认认为某个兼容池里创建的素材或任务可以跨池使用。
国内 2.0 使用素材
如果你要在 doubao-seedance-2-0-260128 中使用自己的图片、视频或音频素材,需要先通过 Exchange Token 的 Seedance Asset API 创建素材,再在视频任务中用 asset://<ASSET_ID> 引用。
CreateAssetGroup / CreateAsset 是 Exchange Token 提供的 Seedance 素材网关接口,不是 OpenAI 通用上传接口,也不是 multipart 文件上传接口。CreateAsset 当前接收一个上游可访问的公网 HTTPS URL,返回的 Result.Id 才是后续视频请求要使用的稳定素材 ID。
最小流程:
- 调用
POST /open/CreateAssetGroup创建素材组,拿到GROUP_ID - 调用
POST /open/CreateAsset,传入GroupId和公网URL,拿到ASSET_ID - 轮询
POST /open/GetAsset,直到Result.Status = "Active" - 创建视频任务时传
asset://$ASSET_ID
示例视频请求:
curl -sS "$ET_BASE/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer $ET_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"model\":\"doubao-seedance-2-0-260128\",
\"content\":[
{\"type\":\"text\",\"text\":\"让人物自然微笑并轻轻挥手,镜头轻微推进\"},
{\"type\":\"image_url\",\"image_url\":{\"url\":\"asset://$ASSET_ID\"},\"role\":\"first_frame\"}
],
\"duration\":5,
\"watermark\":false
}"支持的内容类型与角色
内容类型
type | 说明 |
|---|---|
text | 文本提示词 |
image_url | 图片输入 |
video_url | 视频输入 |
audio_url | 音频输入 |
角色
| 输入类型 | 角色 | 说明 |
|---|---|---|
image_url | first_frame | 首帧图生视频 |
image_url | last_frame | 尾帧图生视频 |
image_url | reference_image | 多模态参考图 |
video_url | reference_video | 参考视频 |
audio_url | reference_audio | 参考音频 |
URL 支持形式
| 输入类型 | URL 形式 |
|---|---|
image_url | 公网 URL、Base64、asset://<ASSET_ID> |
video_url | 公网 URL、asset://<ASSET_ID> |
audio_url | 公网 URL、Base64、asset://<ASSET_ID> |
如果你要使用 asset://<ASSET_ID>,先去 Seedance Asset API 页面创建素材。
合法请求组合
| 场景 | 最小输入 |
|---|---|
| 文生视频 | text |
| 首帧图生视频 | image_url(first_frame) + 可选 text |
| 首尾帧图生视频 | image_url(first_frame) + image_url(last_frame) + 可选 text |
| 多模态参考生视频 | reference_image、reference_video、reference_audio 的合法组合 + 可选 text |
| 视频编辑 | reference_video + 可选 reference_image + 可选 text |
| 视频延长 | reference_video + 可选 text |
请求规则与媒体限制
规则
first_frame/last_frame模式不能和reference_image模式混用- 音频不能单独提交
asset://<ASSET_ID>只有在素材状态变成Active后才能使用tools=[{"type":"web_search"}]建议在生产接入前先验证
媒体限制
| 输入 | 限制 |
|---|---|
| 图片 | jpeg、png、webp、bmp、tiff、gif;宽高比 (0.4, 2.5);300 到 6000 px;单张 < 30 MB;请求体 <= 64 MB |
| 视频 | mp4、mov;480p 或 720p;单段 2 到 15 秒;最多 3 段;总时长 <= 15 秒;24 到 60 FPS;单段 <= 50 MB |
| 音频 | wav、mp3;单段 2 到 15 秒;最多 3 段;总时长 <= 15 秒;单段 <= 15 MB;请求体 <= 64 MB |
任务返回
创建任务返回
{
"id": "sg_vid_m9xk3g_0f8a4c0d3a2b4e9f1c20"
}Exchange Token 会返回自己的可查询任务 ID,后续轮询统一使用它。
查询任务返回
{
"id": "sg_vid_m9xk3g_0f8a4c0d3a2b4e9f1c20",
"model": "doubao-seedance-2-0-260128",
"status": "succeeded",
"content": {
"video_url": "https://example.com/output.mp4?sig=foo&x=1"
},
"usage": {
"completion_tokens": 108900,
"total_tokens": 108900
},
"created_at": 1776209922,
"updated_at": 1776210072,
"resolution": "720p",
"ratio": "16:9",
"duration": 5,
"generate_audio": true
}常见状态:
queuedrunningsucceededfailedcancelled
查询响应里的 model 可能显示提交时的模型名,也可能显示上游版本化模型 ID。
错误格式
{
"error": {
"type": "invalid_request",
"message": "..."
}
}| HTTP 状态码 | error.type | 常见含义 |
|---|---|---|
400 | invalid_request | 参数非法或 JSON 非法 |
401 | unauthorized | API Key 缺失或无效 |
402 | quota_exhausted | 视频额度耗尽 |
403 | forbidden | token 被禁用、过期或无权限 |
404 | task_not_found | 任务不存在 |
429 | rate_limited | 请求过快 |
502 | upstream_error | 上游提交或解析失败 |
503 | no_channel / async_task_unavailable | 无可用渠道或异步任务不可用 |
示例
运行下面示例前,建议先设置:
export ET_BASE='https://api.exchangetoken.ai'
export ET_TOKEN='sk-xxxxxx'
export ASSET_ID='asset-xxxxxxxx'
export TASK_ID='sg_vid_xxxxxxxx'文生视频
curl -sS "$ET_BASE/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer $ET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model":"doubao-seedance-2-0-260128",
"content":[
{"type":"text","text":"一位短发女生在街头回头微笑,电影感,镜头稳定推进"}
],
"duration":5,
"resolution":"720p",
"watermark":false
}'使用素材作为首帧
curl -sS "$ET_BASE/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer $ET_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"model\":\"doubao-seedance-2-0-260128\",
\"content\":[
{\"type\":\"text\",\"text\":\"让人物轻微点头并向镜头挥手\"},
{\"type\":\"image_url\",\"image_url\":{\"url\":\"asset://$ASSET_ID\"},\"role\":\"first_frame\"}
],
\"duration\":5,
\"watermark\":false
}"查询任务
curl -sS "$ET_BASE/api/v3/contents/generations/tasks/$TASK_ID" \
-H "Authorization: Bearer $ET_TOKEN"视频扩展
curl -sS "$ET_BASE/api/v3/contents/generations/tasks" \
-H "Authorization: Bearer $ET_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-fast",
"content": [
{
"type": "text",
"text": "Generate the content after [Video1]: the two men who are late run towards them, the five people finally meet and have a friendly chat."
},
{
"type": "video_url",
"video_url": {
"url": "https://ark-doc.tos-ap-southeast-1.bytepluses.com/doc_image/video_edit_prolong_ref_video.mp4"
},
"role": "reference_video"
}
],
"generate_audio": true,
"ratio": "16:9",
"duration": 5,
"watermark": true
}'