Seedance 视频生成 API 使用说明
概述
本服务提供 AI 视频生成能力,请求 / 响应采用类火山方舟(Volcengine Ark)的结构,支持三种生成模式:
文生视频
图生视频
多模态参考生视频
快速开始
认证方式
所有接口均需在请求头中传入 API Key:
Authorization: Bearer <你的 API Key>
⚠️ 请妥善保管 API Key,不要泄露给他人。
基础信息
| 项目 | 值 |
|---|---|
| 服务器地址 | https://sd.boosterai.cn |
| 接口基础路径 | /api/v3/contents/generations/tasks |
| 请求 / 响应格式 | application/json |
计费与余额
本服务采用预付费余额模式,请求前请确保账户余额充足。
计费规则
- 计费单位:积分。
每个任务费用 = 视频时长(秒)× 该模型单价(积分/秒)。
冻结与扣费流程
- 下单冻结:提交任务时,按预估费用冻结相应积分。
- 成功扣费:任务成功后才实际扣费。
- 解冻退回:任务失败 / 取消 / 超时则全额解冻,不扣费。
可用余额
可用余额 = 账户总余额 − 冻结中金额
下单时若「可用余额 < 本次预估费用」,接口返回 402 insufficient_balance,任务不会提交。
余额查询与充值
- 余额查询:用你的 API Key 登录工作台 https://sd.boosterai.cn/#bill,查看实时余额、冻结金额与消费明细。
- 充值:请联系管理员。余额不足时请及时充值,否则无法继续提交任务。
可用模型列表
| 模型名 | 分辨率 | 时长范围 | 支持的宽高比 |
|---|---|---|---|
seedance-2 | 720p | 4–15 秒 | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 |
seedance-2-1080p | 1080p | 4–15 秒 | 16:9, 9:16, 1:1 |
seedance-2-fast | 720p | 4–15 秒 | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 |
seedance-2-mini | 720p | 4–15 秒 | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 |
分辨率由模型决定,无法在请求中修改。duration 为必填参数(无默认值),须在该模型时长范围内。
接口详情
1. 提交视频生成任务
POST/api/v3/contents/generations/tasks
请求体参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型名,见上方模型列表 |
content | array | 是 | 输入内容,见下方说明;必须包含且仅包含一个 type=text 项作为提示词 |
duration | int | 是 | 视频时长(秒),必须在该模型允许的时长范围内 |
ratio | string | 是 | 宽高比,取值见上方模型列表 |
火山方舟其它字段(如 seed、watermark、generate_audio、return_last_frame、resolution、frames 等)本服务不支持,传入会被忽略,不报错。
content 数组元素说明
content 是一个数组,每个元素按 type 区分,本服务支持以下四种 type:
| type | 字段 | 说明 |
|---|---|---|
text | text | 提示词。必须且仅能有一个,长度 ≥ 1 |
image_url | image_url.url | 参考图片 URL,最多9张,图片、视频、音频参考媒体合计最多12个 |
video_url | video_url.url | 参考视频 URL,最多3个,总时长 ≤ 15s,图片、视频、音频参考媒体合计最多12个 |
audio_url | audio_url.url | 参考音频 URL,最多3个,总时长 ≤ 15s,图片、视频、音频参考媒体合计最多12个 |
完整请求示例
下例演示文本 + 图片 + 视频 + 音频的多模态参考请求,可直接运行。文生视频、图生视频等场景只需按需增减 content 中的元素(text 项必填,其余参考媒体可选)。
多模态参考(seedance-2-fast,9:16,15 秒):
curl -X POST https://sd.boosterai.cn/api/v3/contents/generations/tasks \
-H "Authorization: Bearer 你的APIKey" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-fast",
"content": [
{ "type": "text", "text": "保持视频中的动作和场景,参考图片中的人物风格,画面节奏跟随音频律动" },
{
"type": "image_url",
"image_url": { "url": "https://example.com/reference.jpg" }
},
{
"type": "video_url",
"video_url": { "url": "https://example.com/source.mp4" }
},
{
"type": "audio_url",
"audio_url": { "url": "https://example.com/beat.mp3" }
}
],
"duration": 15,
"ratio": "9:16"
}'
响应示例
{
"id": "task_01KWBW73D7WCN1PFZN9S1QQCK2"
}
HTTP 状态码
| 状态码 | 说明 |
|---|---|
| 200 | 任务提交成功 |
| 400 | 请求参数错误(模型不存在、prompt 缺失、ratio 不支持、时长超出范围、未配置定价等) |
| 401 | API Key 无效或未传入 |
| 402 | 余额不足(insufficient_balance),请联系管理员充值 |
| 500 | 服务器内部错误 |
| 502 | 上游服务异常,稍后重试 |
2. 查询单个任务状态
GET/api/v3/contents/generations/tasks/{taskId}
将提交任务时返回的 id 填入路径。
请求示例
curl https://sd.boosterai.cn/api/v3/contents/generations/tasks/task_01KWBW73D7WCN1PFZN9S1QQCK2 \
-H "Authorization: Bearer 你的APIKey"
响应示例(成功)
{
"id": "task_01KWBW73D7WCN1PFZN9S1QQCK2",
"model": "seedance-2",
"status": "succeeded",
"created_at": 1748900000,
"updated_at": 1748900120,
"content": {
"video_url": "https://cdn.example.com/output/video.mp4"
},
"duration": 10,
"resolution": "1080p",
"ratio": "16:9"
}
响应字段说明
| 字段 | 说明 |
|---|---|
id | 任务 ID |
model | 提交时使用的模型名 |
status | 任务状态,见下方状态说明 |
created_at / updated_at | 创建 / 更新时间,Unix 秒(UTC+8) |
content.video_url | 生成的视频下载地址(24 小时有效) |
duration | 视频时长(秒) |
resolution | 分辨率,如 720p / 1080p |
ratio | 宽高比,如 16:9 |
error.message | 失败时的错误描述 |
响应示例(失败)
{
"id": "task_01KWBW73D7WCN1PFZN9S1QQCK2",
"status": "failed",
"error": {
"message": "模型处理失败,请重新提交"
}
}
任务状态说明
| 状态 | 说明 |
|---|---|
queued | 排队等待处理 |
running | 正在生成中 |
succeeded | 生成成功,可获取视频链接 |
failed | 生成失败 |
expired | 任务超时 |
cancelled | 已取消 |
HTTP 状态码
| 状态码 | 说明 |
|---|---|
| 200 | 查询成功 |
| 401 | API Key 无效 |
| 404 | 任务不存在 |
3. 查询任务列表
GET/api/v3/contents/generations/tasks
支持分页,返回当前 API Key 下的所有任务,按创建时间倒序排列。
查询参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
page_num | int | 否 | 1 | 页码(从 1 开始) |
page_size | int | 否 | 10 | 每页条数 |
请求示例
curl "https://sd.boosterai.cn/api/v3/contents/generations/tasks?page_num=1&page_size=20" \
-H "Authorization: Bearer 你的APIKey"
响应示例
{
"total": 42,
"items": [
{
"id": "task_01KWBW73D7WCN1PFZN9S1QQCK2",
"model": "seedance-2",
"status": "succeeded",
"created_at": 1748900000,
"updated_at": 1748900120,
"content": {
"video_url": "https://cdn.example.com/output/video.mp4"
},
"duration": 10,
"resolution": "1080p",
"ratio": "16:9"
}
]
}
错误码参考
| 错误码 | HTTP | 含义 | 处理建议 |
|---|---|---|---|
invalid_api_key | 401 | API Key 无效或已禁用 | 检查 Authorization 头 |
invalid_model | 400 | 模型名不存在或已禁用 | 参考模型列表使用正确的模型名 |
invalid_duration | 400 | 时长超出模型允许范围 | 调整 duration 至模型允许范围内 |
invalid_ratio | 400 | 宽高比不被该模型支持 | 参考模型列表的「支持的宽高比」 |
invalid_request | 400 | 请求参数错误(如缺少 prompt、多个 text 项) | content 必须且仅含一个非空 type=text 项 |
pricing_not_configured | 400 | 未配置该模型的定价 | 联系管理员开通权限 |
insufficient_balance | 402 | 余额不足(可用余额 = 余额 − 冻结 < 本次预估费用) | 联系管理员充值后重试 |
task_not_found | 404 | 任务不存在 | 确认 task id 正确,且属于当前 API Key |
bad_request | 400 | 缺少必填请求头等 | 检查请求头与请求体 |
not_found | 404 | 路径不存在 | 检查请求 URL |
upstream_error | 502 | 上游服务异常 | 稍后重试,若持续报错联系管理员 |
internal_error | 500 | 服务器内部错误 | 稍后重试,若持续报错联系管理员 |