豆包 Seedance 1.x 创建视频生成任务 API
本页为 Seedance 1.x 的 /volc/v1 异步协议。当前 Seedance 2.x 目录使用 /api/v3;任务 ID、创建参数和查询路径按协议分开。
提交任务 → 查询状态 → 获取结果
2026-09-30 更新。适用于本页 /volc/v1 接口;不同版本的任务不能混用查询地址。模型权限和实际费用以账户控制台为准。
验证范围:Python 标准库示例,本地模拟验证任务轮询与错误处理;未使用付费密钥生成视频,不提供真实生成耗时、费用或成功率。
POST https://api.apizt.com/volc/v1/contents/generations/tasks,保存响应中的id。GET https://api.apizt.com/volc/v1/contents/generations/tasks/{id},按间隔查询status。succeeded后读取content.video_url,及时下载或转存;不要把临时链接当永久地址。
下载完整 Python 示例(无第三方依赖) · 查询状态接口
最小文生视频请求体
先用文本请求跑通任务流程。图生视频的图片字段及其他参数按下方模型文档填写;示例模型 ID 请先在控制台核对可用性。
{
"model": "doubao-seedance-1-5-pro-251215",
"content": [
{
"type": "text",
"text": "一只纸船在平静的水面缓缓漂动,固定镜头。"
}
]
}
# Python 3.10+,仅用标准库;先在本机安全设置 tokenba_API_KEY
# 将下面的请求体保存为 request.json,核对模型权限、价格后再运行(会创建付费任务)。
python3 seedance-task.py create --api legacy --payload request.json --state video-task.json
# 已有任务或等待超时:继续查询,不重新提交
python3 seedance-task.py query --state video-task.json
# 仅有任务 ID:必须选择创建时相同的 API 版本
python3 seedance-task.py query --api legacy --task-id YOUR_TASK_ID --timeout 600 --interval 5
首次提交需要一个不存在的 state 文件;脚本先保留提交记录,再发送一次 POST。若记录为 submission_unconfirmed 或网络超时,请核对任务历史,拿到 ID 后用 query 继续。不要删除记录后盲目重试创建。
状态与结果示例(模拟数据)
{
"id": "cgt-example-not-real",
"status": "succeeded",
"content": {
"video_url": "https://example.com/generated-video.mp4"
}
}
| 状态或错误 | 下一步 |
|---|---|
| queued / running | 继续等待;脚本默认每 5 秒查询,最多等待 600 秒。 |
| succeeded | 核对 content.video_url;脚本输出结果 JSON,不携带 API Key 请求视频下载地址。 |
| failed / expired | 停止轮询,保留任务 ID 与脱敏错误码;费用以账单为准。 |
| HTTP 401 / 403 / 404 | 停止查询;核对 Key、模型权限、任务 ID 与接口版本。 |
| 查询 HTTP 429 / 5xx | 等待后重试 GET,受总时限约束;不会重试 POST。 |
| 本地等待超时 | 远端任务未取消,稍后用同一个 ID 查询;不等于任务失败。 |
提交前核对价格;失败、过期、网络错误是否计费需看账单。发布问题时保留时间、模型、接口版本、任务 ID 与错误码,删除 API Key、私有素材和签名 URL。
状态字段参考:火山引擎查询视频生成任务文档。apizt 路径以本页为准。
在 Header 添加参数 Authorization,其值为 Bearer 之后拼接 Token
Authorization: Bearer ********************
官方文档:https://www.volcengine.com/docs/82379/1520757
请求参数
{
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
}
请求示例代码
curl --location --request POST 'https://api.apizt.com/volc/v1/contents/generations/tasks' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
}'
var myHeaders = new Headers();
myHeaders.append("Accept", "application/json");
myHeaders.append("Authorization", "Bearer YOUR_API_KEY");
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.apizt.com/volc/v1/contents/generations/tasks", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
import java.io.*;
import java.net.*;
import java.util.*;
URL url = new URL("https://api.apizt.com/volc/v1/contents/generations/tasks");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Accept", "application/json");
conn.setRequestProperty("Authorization", "Bearer YOUR_API_KEY");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
String jsonInputString = "{
\"model\": \"doubao-seedance-1-0-pro-fast-251015\",
\"content\": [
{
\"type\": \"text\",
\"text\": \"写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1\"
}
]
}";
try(OutputStream os = conn.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
int responseCode = conn.getResponseCode();
System.out.println("Response Code: " + responseCode);
import Foundation
let urlString = "https://api.apizt.com/volc/v1/contents/generations/tasks"
guard let url = URL(string: urlString) else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.addValue("Bearer YOUR_API_KEY", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let httpBody = "{
\"model\": \"doubao-seedance-1-0-pro-fast-251015\",
\"content\": [
{
\"type\": \"text\",
\"text\": \"写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1\"
}
]
}"
request.httpBody = httpBody.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8)!)
}
}
task.resume()
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
body := strings.NewReader(`{
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
}`)
req, _ := http.NewRequest("POST", "https://api.apizt.com/volc/v1/contents/generations/tasks", body)
req.Header.Set("Accept", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
bodyBytes, _ := io.ReadAll(resp.Body)
fmt.Println(string(bodyBytes))
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.apizt.com/volc/v1/contents/generations/tasks',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => '{
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
}',
CURLOPT_HTTPHEADER => array(
"Accept: application/json",
"Authorization: Bearer YOUR_API_KEY",
"Content-Type: application/json",
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import http.client
import json
conn = http.client.HTTPSConnection("api.apizt.com")
payload = json.dumps({
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
})
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
}
conn.request("POST", "/volc/v1/contents/generations/tasks", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
POST https://api.apizt.com/volc/v1/contents/generations/tasks HTTP/1.1
Accept: application/json
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
}
CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.apizt.com/volc/v1/contents/generations/tasks");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Accept: application/json");
headers = curl_slist_append(headers, "Authorization: Bearer YOUR_API_KEY");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{
\"model\": \"doubao-seedance-1-0-pro-fast-251015\",
\"content\": [
{
\"type\": \"text\",
\"text\": \"写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1\"
}
]
}");
CURLcode ret = curl_easy_perform(hnd);
var client = new RestClient("https://api.apizt.com/volc/v1/contents/generations/tasks");
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "application/json");
request.AddHeader("Authorization", "Bearer YOUR_API_KEY");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", @"{
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
#import <Foundation/Foundation.h>
NSURL *url = [NSURL URLWithString:@"https://api.apizt.com/volc/v1/contents/generations/tasks"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"Bearer YOUR_API_KEY" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[@"{
\"model\": \"doubao-seedance-1-0-pro-fast-251015\",
\"content\": [
{
\"type\": \"text\",
\"text\": \"写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1\"
}
]
}" dataUsingEncoding:NSUTF8StringEncoding]];
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
}];
[task resume];
require "uri"
require "net/http"
require "json"
url = URI("https://api.apizt.com/volc/v1/contents/generations/tasks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept"] = "application/json"
request["Authorization"] = "Bearer YOUR_API_KEY"
request["Content-Type"] = "application/json"
request.body = '{
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
}'
response = http.request(request)
puts response.read_body
(* Requires cohttp and lwt *)
let url = "https://api.apizt.com/volc/v1/contents/generations/tasks" in
let headers = Cohttp.Header.of_list [
("Accept", "application/json");
("Authorization", "Bearer YOUR_API_KEY");
("Content-Type", "application/json");
] in
let body = Cohttp_lwt.Body.of_string '{
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
}' in
Lwt_main.run (
Cohttp_lwt_unix.Client.request ?body:(Some body) ~method_:`POST ~headers (Uri.of_string url)
>>= fun (resp, body) ->
Cohttp_lwt.Body.to_string body >|= fun s -> print_endline s
)
import 'package:http/http.dart' as http;
import 'dart:convert';
var headers = {
"Accept": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
};
var body = json.encode({
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
});
var response = await http.post(Uri.parse("https://api.apizt.com/volc/v1/contents/generations/tasks"), headers: headers, body: body);
print(response.body);
library(httr)
url <- "https://api.apizt.com/volc/v1/contents/generations/tasks"
body <- '{
"model": "doubao-seedance-1-0-pro-fast-251015",
"content": [
{
"type": "text",
"text": "写实风格,晴朗的蓝天之下,一大片白色的雏菊花田,镜头逐渐拉近,最终定格在一朵雏菊花的特写上,花瓣上有几颗晶莹的露珠 --resolution 480p --ratio 16:9 --duration 2 --camera_fixed false --watermark false --seed 1"
}
]
}'
response <- post(url, body = body, add_headers("Accept" = "application/json", "Authorization" = "Bearer YOUR_API_KEY", "Content-Type" = "application/json"))
content(response, "text", encoding = "UTF-8")
返回响应
{
"id": "cgt-20250918165243-bfpzb",
"status": "submitted"
}
当前模型与版本
依据 apizt 价格页,同步于 。以下型号按目录声明的协议与本页用途筛选;不代表所有参数和功能通用。切换前请核对型号说明、令牌分组与参数差异。Gemini 原生接口需同时替换 URL 中的模型 ID。
| 模型 ID | 能力标签 | 支持分组 |
|---|---|---|
doubao-seedance-1-5-pro-251215 | 异步,视频,首尾帧 | 分组(2)
|
doubao-seedance-1-0-pro-fast-251015 | 异步,视频,首帧 | 分组(2)
|
doubao-seedance-1-0-pro-250528 | 异步,视频,首尾帧 | 分组(2)
|
共列入 3 个候选型号。查看完整模型、版本与接口目录。