cURL
curl https://api.apipod.ai/v1/videos/generations \
-H "Authorization: Bearer $APIPOD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5-extend",
"prompt": "延长@视频1,窗户打开后进入@视频2的美术馆室内,最后镜头进入@视频3的画内",
"video_urls": ["https://arkdocs.tos-cn-beijing.volces.com/videos/video-generation/r2v_extend_video1_75.mov", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"],
"duration": 11,
"resolution": "480p",
"web_search": false,
"generate_audio": true
}'import os
import requests
payload = {
"model": "seedance-2.5-extend",
"prompt": "延长@视频1,窗户打开后进入@视频2的美术馆室内,最后镜头进入@视频3的画内",
"video_urls": ["https://arkdocs.tos-cn-beijing.volces.com/videos/video-generation/r2v_extend_video1_75.mov", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"],
"duration": 11,
"resolution": "480p",
"web_search": False,
"generate_audio": True
}
response = requests.post(
"https://api.apipod.ai/v1/videos/generations",
headers={
"Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
"Content-Type": "application/json",
},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
payload := map[string]any{}
if err := json.Unmarshal([]byte(`{
"model": "seedance-2.5-extend",
"prompt": "延长@视频1,窗户打开后进入@视频2的美术馆室内,最后镜头进入@视频3的画内",
"video_urls": ["https://arkdocs.tos-cn-beijing.volces.com/videos/video-generation/r2v_extend_video1_75.mov", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"],
"duration": 11,
"resolution": "480p",
"web_search": false,
"generate_audio": true
}`), &payload); err != nil {
panic(err)
}
body, err := json.Marshal(payload)
if err != nil {
panic(err)
}
req, err := http.NewRequest(http.MethodPost, "https://api.apipod.ai/v1/videos/generations", bytes.NewReader(body))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("APIPOD_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println(resp.Status)
}use reqwest::Client;
use serde_json::json;
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let payload = json!({
"model": "seedance-2.5-extend",
"prompt": "延长@视频1,窗户打开后进入@视频2的美术馆室内,最后镜头进入@视频3的画内",
"video_urls": ["https://arkdocs.tos-cn-beijing.volces.com/videos/video-generation/r2v_extend_video1_75.mov", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"],
"duration": 11,
"resolution": "480p",
"web_search": false,
"generate_audio": true
});
let response = Client::new()
.post("https://api.apipod.ai/v1/videos/generations")
.bearer_auth(env::var("APIPOD_API_KEY")?)
.json(&payload)
.send()
.await?
.error_for_status()?;
println!("{}", response.text().await?);
Ok(())
}const response = await fetch("https://api.apipod.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.APIPOD_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(
{
"model": "seedance-2.5-extend",
"prompt": "延长@视频1,窗户打开后进入@视频2的美术馆室内,最后镜头进入@视频3的画内",
"video_urls": ["https://arkdocs.tos-cn-beijing.volces.com/videos/video-generation/r2v_extend_video1_75.mov", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"],
"duration": 11,
"resolution": "480p",
"web_search": false,
"generate_audio": true
}
),
});
if (!response.ok) {
throw new Error(`APIPod request failed: ${response.status} ${await response.text()}`);
}
console.log(await response.json());{
"code": 200,
"message": "success",
"data": {
"task_id": "vid_task_01JEXAMPLE"
}
}Seedance 2.5 折扣版
Seedance 2.5 视频延长
Seedance 2.5 视频延长将全模态参考子任务固定为视频延长:传入源视频并描述向前或向后延续,输出 4-30 秒,画幅自动跟随源视频(不可设置)。
POST
https://api.apipod.ai
/
v1
/
videos
/
generations
cURL
curl https://api.apipod.ai/v1/videos/generations \
-H "Authorization: Bearer $APIPOD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5-extend",
"prompt": "延长@视频1,窗户打开后进入@视频2的美术馆室内,最后镜头进入@视频3的画内",
"video_urls": ["https://arkdocs.tos-cn-beijing.volces.com/videos/video-generation/r2v_extend_video1_75.mov", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"],
"duration": 11,
"resolution": "480p",
"web_search": false,
"generate_audio": true
}'import os
import requests
payload = {
"model": "seedance-2.5-extend",
"prompt": "延长@视频1,窗户打开后进入@视频2的美术馆室内,最后镜头进入@视频3的画内",
"video_urls": ["https://arkdocs.tos-cn-beijing.volces.com/videos/video-generation/r2v_extend_video1_75.mov", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"],
"duration": 11,
"resolution": "480p",
"web_search": False,
"generate_audio": True
}
response = requests.post(
"https://api.apipod.ai/v1/videos/generations",
headers={
"Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
"Content-Type": "application/json",
},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
payload := map[string]any{}
if err := json.Unmarshal([]byte(`{
"model": "seedance-2.5-extend",
"prompt": "延长@视频1,窗户打开后进入@视频2的美术馆室内,最后镜头进入@视频3的画内",
"video_urls": ["https://arkdocs.tos-cn-beijing.volces.com/videos/video-generation/r2v_extend_video1_75.mov", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"],
"duration": 11,
"resolution": "480p",
"web_search": false,
"generate_audio": true
}`), &payload); err != nil {
panic(err)
}
body, err := json.Marshal(payload)
if err != nil {
panic(err)
}
req, err := http.NewRequest(http.MethodPost, "https://api.apipod.ai/v1/videos/generations", bytes.NewReader(body))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("APIPOD_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println(resp.Status)
}use reqwest::Client;
use serde_json::json;
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let payload = json!({
"model": "seedance-2.5-extend",
"prompt": "延长@视频1,窗户打开后进入@视频2的美术馆室内,最后镜头进入@视频3的画内",
"video_urls": ["https://arkdocs.tos-cn-beijing.volces.com/videos/video-generation/r2v_extend_video1_75.mov", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"],
"duration": 11,
"resolution": "480p",
"web_search": false,
"generate_audio": true
});
let response = Client::new()
.post("https://api.apipod.ai/v1/videos/generations")
.bearer_auth(env::var("APIPOD_API_KEY")?)
.json(&payload)
.send()
.await?
.error_for_status()?;
println!("{}", response.text().await?);
Ok(())
}const response = await fetch("https://api.apipod.ai/v1/videos/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.APIPOD_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(
{
"model": "seedance-2.5-extend",
"prompt": "延长@视频1,窗户打开后进入@视频2的美术馆室内,最后镜头进入@视频3的画内",
"video_urls": ["https://arkdocs.tos-cn-beijing.volces.com/videos/video-generation/r2v_extend_video1_75.mov", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video2.mp4", "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_extend_video3.mp4"],
"duration": 11,
"resolution": "480p",
"web_search": false,
"generate_audio": true
}
),
});
if (!response.ok) {
throw new Error(`APIPod request failed: ${response.status} ${await response.text()}`);
}
console.log(await response.json());{
"code": 200,
"message": "success",
"data": {
"task_id": "vid_task_01JEXAMPLE"
}
}必须至少提供一条参考视频(待延长的源视频)。
延长限制
Seedance 2.5 视频延长是官方折扣路由全模态参考家族的视频延长子任务。传入源视频和明确的延续措辞后,平台会在上游固定omni_reference_task_type=extend,子任务参数限制在提交时同步校验:参数不兼容立即返回 400,而不是等任务跑几分钟后异步失败。
- 源视频:必须至少一条参考视频。
- 时长:4-30 秒(默认 4),对应延长后的输出时长。
- 画幅:不可设置。输出画幅自动保持与源视频一致;契约不暴露该字段,传入任意值都会被忽略(固定按 adaptive 提交)。
- 参考素材:最多 30 张图、10 条视频、10 段音频;音频不能单独上传。
- 提示词写法:使用「向前延长 / 向后延长 / 续写」等明确的延续措辞,并用
@视频N/@图N显式指向素材(例如延长@视频1);歧义的延长或编辑意图仍可能被模型重新判定。
🔸注意🔸:启用带视频输入时,因计费计算公式不同,单价更低:无视频 = 单价 × 输出时长;带视频 = 单价 ×(输入时长 + 输出时长)。
授权
在 Authorization 头中使用你的 APIPod API Key 作为 Bearer 令牌。
请求体
application/json
APIPod 公开模型 ID。
Allowed value:
"seedance-2.5-extend"延续指令,最长 30000 字符。建议使用「向前延长 / 向后延长 / 续写」等明确的延续措辞,并用 @视频N / @图N 显式指向素材(例如:延长@视频1);提示词建议不超过 500 个汉字或 1000 个英文单词。
Maximum string length:
30000参考视频 URL。必须至少包含一个(待延长的源视频);最多支持 10 个。
Required array length:
1 - 10 elements可选参考图 URL(例如需要保持一致的人物或风格)。最多支持 30 张;单张图片小于 30 MB。
Maximum array length:
30可选参考音频 URL。最多支持 10 段;单个音频时长 2-30 秒。音频不能单独上传。
Maximum array length:
10输出视频时长,取值 4-30 秒。
可用选项:
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 必填范围:
4 <= x <= 30生成视频分辨率。
可用选项:
480p, 720p, 1080p 控制生成的视频是否包含与画面同步的音频。
此页面对您有帮助吗?