curl -X POST https://www.geeknow.top/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=doubao-seedance-1-5-pro_720p" \
-F "prompt=雨夜街头,一位穿红色雨衣的女孩慢跑,镜头缓慢跟拍,电影感光影" \
-F "seconds=8" \
-F "size=16:9"
curl -X POST https://www.geeknow.top/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=doubao-seedance-1-5-pro_720p" \
-F "prompt=让图片中的人物自然抬头,微笑,看向镜头" \
-F "seconds=8" \
-F "size=9:16" \
-F "first_frame_image=https://example.com/images/first-frame.png"
curl -X POST https://www.geeknow.top/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=doubao-seedance-1-5-pro_1080p" \
-F "prompt=从首帧自然过渡到尾帧,保持主体一致,动作连贯" \
-F "seconds=8" \
-F "size=16:9" \
-F "first_frame_image=https://example.com/images/opening-frame.png" \
-F "last_frame_image=https://example.com/images/ending-frame.png"
import requests
resp = requests.post(
"https://www.geeknow.top/v1/videos",
headers={"Authorization": "Bearer YOUR_API_KEY"},
data={
"model": "doubao-seedance-1-5-pro_720p",
"prompt": "雨夜街头,一位穿红色雨衣的女孩慢跑,镜头缓慢跟拍,电影感光影",
"seconds": "8",
"size": "16:9",
},
timeout=120,
)
print(resp.json())
import requests
resp = requests.post(
"https://www.geeknow.top/v1/videos",
headers={"Authorization": "Bearer YOUR_API_KEY"},
data={
"model": "doubao-seedance-1-5-pro_720p",
"prompt": "让图片中的人物自然抬头,微笑,看向镜头",
"seconds": "8",
"size": "9:16",
"first_frame_image": "https://example.com/images/first-frame.png",
},
timeout=120,
)
print(resp.json())
const form = new FormData();
form.append("model", "doubao-seedance-1-5-pro_720p");
form.append("prompt", "雨夜街头,一位穿红色雨衣的女孩慢跑,镜头缓慢跟拍,电影感光影");
form.append("seconds", "8");
form.append("size", "16:9");
const response = await fetch("https://www.geeknow.top/v1/videos", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
body: form,
});
console.log(await response.json());
const form = new FormData();
form.append("model", "doubao-seedance-1-5-pro_720p");
form.append("prompt", "让图片中的人物自然抬头,微笑,看向镜头");
form.append("seconds", "8");
form.append("size", "9:16");
form.append("first_frame_image", "https://example.com/images/first-frame.png");
const response = await fetch("https://www.geeknow.top/v1/videos", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
body: form,
});
console.log(await response.json());
{
"id": "video_abc123",
"task_id": "video_abc123",
"object": "video",
"model": "doubao-seedance-1-5-pro_720p",
"status": "queued",
"progress": 0,
"created_at": 1735689600,
"video_url": ""
}
{
"error": {
"message": "prompt is required",
"type": "invalid_request_error",
"param": "prompt",
"code": "invalid_request_error"
}
}
{
"error": {
"message": "invalid token",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
{
"error": {
"message": "insufficient quota",
"type": "insufficient_quota",
"code": "insufficient_quota"
}
}
{
"error": {
"message": "rate limit exceeded",
"type": "rate_limit_error",
"code": "rate_limit_exceeded"
}
}
Seedance 1.5
Seedance 1.5 视频生成
使用 POST /v1/videos 调用 Seedance 1.5 的 480p、720p、1080p 模型。
POST
https://www.geeknow.top
/
v1
/
videos
curl -X POST https://www.geeknow.top/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=doubao-seedance-1-5-pro_720p" \
-F "prompt=雨夜街头,一位穿红色雨衣的女孩慢跑,镜头缓慢跟拍,电影感光影" \
-F "seconds=8" \
-F "size=16:9"
curl -X POST https://www.geeknow.top/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=doubao-seedance-1-5-pro_720p" \
-F "prompt=让图片中的人物自然抬头,微笑,看向镜头" \
-F "seconds=8" \
-F "size=9:16" \
-F "first_frame_image=https://example.com/images/first-frame.png"
curl -X POST https://www.geeknow.top/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=doubao-seedance-1-5-pro_1080p" \
-F "prompt=从首帧自然过渡到尾帧,保持主体一致,动作连贯" \
-F "seconds=8" \
-F "size=16:9" \
-F "first_frame_image=https://example.com/images/opening-frame.png" \
-F "last_frame_image=https://example.com/images/ending-frame.png"
import requests
resp = requests.post(
"https://www.geeknow.top/v1/videos",
headers={"Authorization": "Bearer YOUR_API_KEY"},
data={
"model": "doubao-seedance-1-5-pro_720p",
"prompt": "雨夜街头,一位穿红色雨衣的女孩慢跑,镜头缓慢跟拍,电影感光影",
"seconds": "8",
"size": "16:9",
},
timeout=120,
)
print(resp.json())
import requests
resp = requests.post(
"https://www.geeknow.top/v1/videos",
headers={"Authorization": "Bearer YOUR_API_KEY"},
data={
"model": "doubao-seedance-1-5-pro_720p",
"prompt": "让图片中的人物自然抬头,微笑,看向镜头",
"seconds": "8",
"size": "9:16",
"first_frame_image": "https://example.com/images/first-frame.png",
},
timeout=120,
)
print(resp.json())
const form = new FormData();
form.append("model", "doubao-seedance-1-5-pro_720p");
form.append("prompt", "雨夜街头,一位穿红色雨衣的女孩慢跑,镜头缓慢跟拍,电影感光影");
form.append("seconds", "8");
form.append("size", "16:9");
const response = await fetch("https://www.geeknow.top/v1/videos", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
body: form,
});
console.log(await response.json());
const form = new FormData();
form.append("model", "doubao-seedance-1-5-pro_720p");
form.append("prompt", "让图片中的人物自然抬头,微笑,看向镜头");
form.append("seconds", "8");
form.append("size", "9:16");
form.append("first_frame_image", "https://example.com/images/first-frame.png");
const response = await fetch("https://www.geeknow.top/v1/videos", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
body: form,
});
console.log(await response.json());
{
"id": "video_abc123",
"task_id": "video_abc123",
"object": "video",
"model": "doubao-seedance-1-5-pro_720p",
"status": "queued",
"progress": 0,
"created_at": 1735689600,
"video_url": ""
}
{
"error": {
"message": "prompt is required",
"type": "invalid_request_error",
"param": "prompt",
"code": "invalid_request_error"
}
}
{
"error": {
"message": "invalid token",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
{
"error": {
"message": "insufficient quota",
"type": "insufficient_quota",
"code": "insufficient_quota"
}
}
{
"error": {
"message": "rate limit exceeded",
"type": "rate_limit_error",
"code": "rate_limit_exceeded"
}
}
Seedance 1.5
Seedance 1.5 使用multipart/form-data 请求提交异步视频任务。模型名中的 480p、720p、1080p 表示输出清晰度档位。
- 接口路径是
POST /v1/videos。 - 请求格式是
multipart/form-data。 - 可用模型为
doubao-seedance-1-5-pro_480p、doubao-seedance-1-5-pro_720p、doubao-seedance-1-5-pro_1080p。 seconds支持4到11秒。size传宽高比,例如16:9、9:16、1:1、4:3、3:4、21:9。- 首帧图使用
first_frame_image,尾帧图使用last_frame_image,字段值传服务端可访问的图片 URL。
方法与路径
POST /v1/videos
请求示例
curl -X POST https://www.geeknow.top/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=doubao-seedance-1-5-pro_720p" \
-F "prompt=雨夜街头,一位穿红色雨衣的女孩慢跑,镜头缓慢跟拍,电影感光影" \
-F "seconds=8" \
-F "size=16:9"
curl -X POST https://www.geeknow.top/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=doubao-seedance-1-5-pro_720p" \
-F "prompt=让图片中的人物自然抬头,微笑,看向镜头" \
-F "seconds=8" \
-F "size=9:16" \
-F "first_frame_image=https://example.com/images/first-frame.png"
curl -X POST https://www.geeknow.top/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=doubao-seedance-1-5-pro_1080p" \
-F "prompt=从首帧自然过渡到尾帧,保持主体一致,动作连贯" \
-F "seconds=8" \
-F "size=16:9" \
-F "first_frame_image=https://example.com/images/opening-frame.png" \
-F "last_frame_image=https://example.com/images/ending-frame.png"
import requests
resp = requests.post(
"https://www.geeknow.top/v1/videos",
headers={"Authorization": "Bearer YOUR_API_KEY"},
data={
"model": "doubao-seedance-1-5-pro_720p",
"prompt": "雨夜街头,一位穿红色雨衣的女孩慢跑,镜头缓慢跟拍,电影感光影",
"seconds": "8",
"size": "16:9",
},
timeout=120,
)
print(resp.json())
import requests
resp = requests.post(
"https://www.geeknow.top/v1/videos",
headers={"Authorization": "Bearer YOUR_API_KEY"},
data={
"model": "doubao-seedance-1-5-pro_720p",
"prompt": "让图片中的人物自然抬头,微笑,看向镜头",
"seconds": "8",
"size": "9:16",
"first_frame_image": "https://example.com/images/first-frame.png",
},
timeout=120,
)
print(resp.json())
const form = new FormData();
form.append("model", "doubao-seedance-1-5-pro_720p");
form.append("prompt", "雨夜街头,一位穿红色雨衣的女孩慢跑,镜头缓慢跟拍,电影感光影");
form.append("seconds", "8");
form.append("size", "16:9");
const response = await fetch("https://www.geeknow.top/v1/videos", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
body: form,
});
console.log(await response.json());
const form = new FormData();
form.append("model", "doubao-seedance-1-5-pro_720p");
form.append("prompt", "让图片中的人物自然抬头,微笑,看向镜头");
form.append("seconds", "8");
form.append("size", "9:16");
form.append("first_frame_image", "https://example.com/images/first-frame.png");
const response = await fetch("https://www.geeknow.top/v1/videos", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
body: form,
});
console.log(await response.json());
响应示例
{
"id": "video_abc123",
"task_id": "video_abc123",
"object": "video",
"model": "doubao-seedance-1-5-pro_720p",
"status": "queued",
"progress": 0,
"created_at": 1735689600,
"video_url": ""
}
{
"error": {
"message": "prompt is required",
"type": "invalid_request_error",
"param": "prompt",
"code": "invalid_request_error"
}
}
{
"error": {
"message": "invalid token",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}
{
"error": {
"message": "insufficient quota",
"type": "insufficient_quota",
"code": "insufficient_quota"
}
}
{
"error": {
"message": "rate limit exceeded",
"type": "rate_limit_error",
"code": "rate_limit_exceeded"
}
}
认证
使用 Bearer Token 鉴权:Authorization: Bearer YOUR_API_KEY
Form Fields
模型名称。可选
doubao-seedance-1-5-pro_480p、doubao-seedance-1-5-pro_720p、doubao-seedance-1-5-pro_1080p。视频生成提示词。
视频时长。支持
4 到 11 秒,建议按字符串传入,例如 "8"。宽高比。常用值包括
16:9、9:16、1:1、4:3、3:4、21:9、keep_ratio、adaptive。首帧图片 URL。用于首帧生视频或首尾帧模式,需传服务端可访问的公网 URL。
尾帧图片 URL。通常与
first_frame_image 一起用于首尾帧模式,需传服务端可访问的公网 URL。Response
视频任务 ID。后续可用于
GET /v1/videos/{id} 查询。视频任务 ID 的兼容字段。通常与
id 相同。对象类型,通常为
video。本次任务使用的模型,例如
doubao-seedance-1-5-pro_720p。任务状态。常见值为
queued、in_progress、completed、failed。任务进度,常见范围为
0 到 100。任务完成后的视频地址。也可以使用
GET /v1/videos/{id}/content 下载结果。任务失败或接口错误时返回的错误对象,通常包含
message 和 code。模型选择
| 模型 | 清晰度 |
|---|---|
doubao-seedance-1-5-pro_480p | 480p |
doubao-seedance-1-5-pro_720p | 720p |
doubao-seedance-1-5-pro_1080p | 1080p |
使用场景
720p 文生视频
{
"model": "doubao-seedance-1-5-pro_720p",
"prompt": "雨夜街头,一位穿红色雨衣的女孩慢跑,镜头缓慢跟拍,电影感光影",
"seconds": "8",
"size": "16:9"
}
竖屏首帧生视频
model=doubao-seedance-1-5-pro_720p
prompt=让图片中的人物自然抬头,微笑,看向镜头
seconds=8
size=9:16
first_frame_image=https://example.com/images/first-frame.png
首尾帧过渡
model=doubao-seedance-1-5-pro_1080p
prompt=从首帧自然过渡到尾帧,保持主体一致,动作连贯
seconds=8
size=16:9
first_frame_image=https://example.com/images/opening-frame.png
last_frame_image=https://example.com/images/ending-frame.png
注意事项
- 请求格式为
multipart/form-data。 - 图片通过
first_frame_image、last_frame_image传入 URL;本地文件需先上传到服务端可访问的公网地址。 seconds支持4到11秒。- 模型名里的
480p、720p、1080p决定输出清晰度。 - 不推荐用于“参考生视频”模式;需要图片约束时优先使用首帧或首尾帧。
相关接口
⌘I