Seedance 2.x 视频生成 API#
最后更新:2026-10-27
本文说明如何在曜智枢调用 Seedance 2.0 和 2.5,完成文生视频、参考素材生成、查询及下载。请使用有「生视频」分组权限的站内 API 密钥;模型权限以当前密钥的 /v1/models 返回结果为准。
基本信息#
| 项目 | 值 |
|---|---|
| Base URL | https://www.yotopivot.top |
| 鉴权 | Authorization: Bearer <YOTOPIVOT_API_KEY> |
| 请求格式 | application/json |
| 推荐创建接口 | POST /v1/videos |
| 查询接口 | GET /v1/videos/{id} |
| 下载接口 | GET /v1/videos/{id}/content |
| 兼容创建接口 | POST /v1/video/generations |
使用本站控制台创建的站内 API 密钥。视频任务为异步处理:创建得到任务 ID,再查询状态,完成后下载。
| 模型 | 模型名 | API 支持的分辨率 |
|---|---|---|
| Seedance 2.0 | doubao-seedance-2-0-260128 |
480p、720p、1080p、4k |
| Seedance 2.5 | doubao-seedance-2-5-260628 |
480p、720p、1080p |
调用前可用 GET /v1/models 核对当前密钥是否有权访问模型。工作流页面的时长、分辨率及参考附件选项可能少于 API 支持范围;以下以直接调用 API 为准。
创建文生视频任务#
先使用 5 秒、720p 开始测试。以下为 Bash / curl 示例:
curl -sS https://www.yotopivot.top/v1/videos \
-H "Authorization: Bearer <YOTOPIVOT_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0-260128",
"prompt": "海边悬崖,夕阳落入海平面,镜头缓慢向前推进,电影感",
"duration": 5,
"size": "720p",
"metadata": {
"ratio": "16:9",
"generate_audio": false
}
}'
成功响应的关键字段示例:
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"object": "video",
"model": "doubao-seedance-2-0-260128",
"status": "queued",
"progress": 0
}
保存响应中的公开 id,后续查询和下载均使用它。不要根据 ID 的外形拼接其他接口地址。
请求参数#
统一格式#
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model |
string | 是 | 上表中的完整模型名 |
prompt |
string | 是 | 非空视频描述 |
duration |
integer | 否 | 生成秒数,默认 5;也可使用字符串 seconds,例如 "5" |
size |
string | 否 | 分辨率,默认 720p |
metadata.ratio |
string | 否 | 默认 adaptive;还支持 16:9、9:16、1:1、4:3、3:4、21:9 |
metadata.generate_audio |
boolean | 否 | 是否生成音频;显式 false 会保留 |
metadata.content |
array | 否 | 参考图片、视频或音频,见下节 |
metadata.seed |
integer | 否 | 随机种子;显式 0 会保留 |
metadata.watermark |
boolean | 否 | 是否添加水印 |
建议时长为 4–15 秒,这不是保证所有模型均接受的硬性范围。本站接口接受 1–3600 秒的正整数,具体模型仍可能拒绝不支持的时长;首次测试推荐 5 秒。-1 等自动时长写法不受支持。
Seedance 的 size 表示分辨率,画幅单独放在 metadata.ratio。不要把 Wan 的 "size":"16:9" 写法直接用于这两款模型。768P 会兼容转换为 720p;Seedance 2.5 的 4k 请求会在提交前被拒绝。
内容数组格式#
也可把 content、resolution、ratio、generate_audio 等参数直接放在顶层。下面的纯文本请求与前面的统一格式等价:
{
"model": "doubao-seedance-2-0-260128",
"content": [
{"type": "text", "text": "海边悬崖,夕阳落入海平面,镜头缓慢向前推进,电影感"}
],
"duration": 5,
"resolution": "720p",
"ratio": "16:9",
"generate_audio": false
}
每个请求选用一种格式更容易排查。混用时,prompt 优先于 content 内的文本;size 优先于 resolution;duration 优先于 seconds。顶层内容参数优先于 metadata 内同名字段。省略 prompt 时,content 至少要含一项非空文本。
使用参考图片、视频和音频#
参考素材必须是可公开读取的 HTTP(S) 地址,或由管理员提供且适用于当前服务的 asset://asset-... 素材 ID。URL 在任务处理期间应持续有效。当前不接受本地文件上传、文件路径或 data: / Base64 URI。
{
"model": "doubao-seedance-2-5-260628",
"prompt": "参考图片中的场景与视频中的镜头运动,生成一段自然连贯的短片",
"duration": 5,
"size": "720p",
"metadata": {
"ratio": "16:9",
"generate_audio": true,
"content": [
{
"type": "image_url",
"image_url": {"url": "https://your-public-cdn.example/scene.png"},
"role": "reference_image"
},
{
"type": "video_url",
"video_url": {"url": "https://your-public-cdn.example/motion.mp4"},
"role": "reference_video"
}
]
}
}
示例素材域名为占位地址,调用时请换成实际可读取的素材 URL。
| 素材 | type |
URL 字段 | role |
|---|---|---|---|
| 图片 | image_url |
image_url.url |
reference_image、first_frame 或 last_frame |
| 视频 | video_url |
video_url.url |
reference_video |
| 音频 | audio_url |
audio_url.url |
reference_audio |
每项只能包含一个与 type 对应的媒体字段。省略 role 时自动使用该素材类型的 reference_* 角色。使用 asset:// 时仅将相应 URL 值替换为管理员提供的素材 ID;本站尚未开放素材库创建或管理接口。
查询状态#
curl -sS "https://www.yotopivot.top/v1/videos/<TASK_ID>" \
-H "Authorization: Bearer <YOTOPIVOT_API_KEY>"
status |
含义 | 下一步 |
|---|---|---|
queued |
排队中 | 继续轮询 |
in_progress |
生成中 | 继续轮询 |
completed |
已完成 | 下载视频 |
failed |
已失败 | 停止轮询并记录错误 |
建议每 5–10 秒查询一次。遇到 429、网络错误或 5xx 时增加间隔并采用指数退避。查询使用创建任务的同一用户身份;收到任务 ID 后,只查询原任务,不要反复发送创建请求。
完成响应的关键字段示例:
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"object": "video",
"model": "doubao-seedance-2-0-260128",
"status": "completed",
"progress": 100
}
以 status 判断是否完成,其他时间或进度字段不能替代终态。任务响应可能包含临时结果地址;请使用下面的本站下载接口。
下载视频#
仅在任务状态为 completed 后调用:
curl -sS "https://www.yotopivot.top/v1/videos/<TASK_ID>/content" \
-H "Authorization: Bearer <YOTOPIVOT_API_KEY>" \
-o output.mp4
视频结果地址有有效期,生成后请及时下载并自行保存。本站下载接口不表示永久保存视频。当前不保证 HTTP Range 或 206 Partial Content,客户端应按完整下载处理。
价格与结算#
标准价格如下表,单位均为人民币 / 百万 token。表中「有视频输入」指请求包含参考视频;参考图片、参考音频或开启音频生成不会单独改变这个价阶。
| 模型 | 输出分辨率 | 无视频输入 | 有视频输入 |
|---|---|---|---|
| Seedance 2.0 | 480p / 720p | ¥46 / M token | ¥28 / M token |
| Seedance 2.0 | 1080p | ¥51 / M token | ¥31 / M token |
| Seedance 2.0 | 4k | ¥26 / M token | ¥16 / M token |
| Seedance 2.5 | 480p / 720p | ¥70 / M token | ¥42 / M token |
| Seedance 2.5 | 1080p | ¥77 / M token | ¥46 / M token |
Seedance 2.5 不支持 4k。表中为分组倍率 1 的基础价;账号或分组折扣以模型广场和实际结算记录为准。
任务创建时会按模型、分辨率、时长及是否含参考视频估算并预扣额度。完成后使用实际 usage.total_tokens 多退少补;失败任务按任务退款流程退回预扣额度。
token 数大致随画面像素数、24 fps 和计费时长增加。有视频输入时计费时长包含输入与输出视频;预扣无法得知实际输入时长时,先按与输出相同时长估算。画幅、实际素材时长及额外帧会影响最终用量,所以「每秒价格」不是固定值。
例如无视频输入的 720p、16:9、5 秒视频,基础估算约为 108,000 token:2.0 约 ¥4.968,2.5 约 ¥7.56。以上仅用于理解价格,不是固定任务报价,最终请以本站任务记录和使用日志为准;账号或分组折扣也可能影响实际金额。
错误与重试#
| 情况 | 处理 |
|---|---|
模型未出现在 /v1/models |
检查密钥分组及模型限制 |
| 分辨率、画幅、时长或素材角色不合法 | 修正参数后重新提交 |
| Seedance 2.5 请求 4k | 改用 480p、720p 或 1080p |
本地文件或 data: URI 被拒绝 |
改用任务期间可读取的 HTTP(S) 素材 URL |
| 素材无法读取或素材 ID 无效 | 检查 URL 有效期、公开可达性或向管理员核对素材 ID |
| 429、网络中断或 5xx | 查询请求退避重试;创建请求先核对是否已生成任务 |
任务状态为 failed |
保存任务 ID、错误内容和请求编号,核对使用日志中的退款记录 |
客户端应同时处理顶层 code / message 与 error.code / error.message 两类错误结构,并首先判断 HTTP 状态码。
创建接口未承诺幂等键。若创建响应丢失,盲目重发可能产生额外任务及费用。先用响应头中的 X-Oneapi-Request-Id 核对使用日志;未收到响应头时,按调用时间、模型名和当前密钥的记录核对。
需要反馈时提供公开任务 ID、请求编号、调用时间和脱敏请求参数,请勿发送完整 API 密钥。