S
Seedance 2.0 API 指南

Seedance 2.0 影片生成 API

透過 TokenHub 統一 API 存取 ByteDance Seedance 2.0 影片生成 model。支援文字轉影片、圖片轉影片、影片編輯、音訊驅動生成等功能。本指南將帶您完成完整的整合流程。

Text → VideoImage → VideoVideo → VideoAudio Reference480p / 720p4–15 秒

1取得您的 API Key

  1. 造訪 tokenhub.store 建立帳號(支援 GitHub / Google 登入)
  2. 前往 Dashboard → API Keys,點擊「Create New Key」
  3. 前往 Dashboard → Billing 以新增 Credits(1 Credit = $1 USD)
  4. 複製你的 API Key(格式: th-xxxxxxxxxxxx...
⚠️ API Key 只會在建立時顯示一次,請妥善保存。若遺失,需重新建立新的 API Key。

2API 概覽

Base URL

https://tokenhub.store/api/v1

驗證

所有請求都需要在標頭中包含 API Key:

Header
Authorization: Bearer th-your-api-key

兩個端點

POST
/videos/generations

建立影片生成任務,回傳任務 ID

GET
/videos/generations/{task_id}

查詢任務狀態,成功時回傳影片 URL

3模型與定價

Model ID解析度輸出速率說明
doubao-seedance-2.0720p$0.20/s旗艦 model,最高品質
480p$0.12/s標準品質,成本效益高
doubao-seedance-2.0-fast720p$0.16/s快速 model,生成更快
480p$0.10/s最實惠的選項

計費詳情:

  • 輸出影片:依實際時長 × 速率計費
  • 輸入圖片:免費(不收費)
  • 輸入影片:依輸入影片時長 × 速率計費
  • 總費用 =(輸入影片時長 + 輸出影片時長)× 速率

範例:doubao-seedance-2.0(720p),5 秒輸入影片 + 10 秒輸出 → 費用 = (5+10)×$0.20 = $3.00

4請求參數

參數類型必填說明
modelstring必填Model ID,例如 "doubao-seedance-2.0"
promptstring必填影片描述文字。英文提示通常能獲得更好的效果
durationnumber選填影片時長(秒),範圍 4–15,預設 5
resolutionstring選填"480p" 或 "720p"(預設 720p)
aspect_ratiostring選填長寬比:"adaptive"(預設)、"16:9"、"9:16"、"1:1" 等
image_urlstring選填參考圖片 URL(image-to-video)
image_urlsstring[]選填多個參考圖片 URL 陣列
video_urlstring選填參考影片 URL(影片編輯 / video-to-video)
video_urlsstring[]選填多個參考影片 URL 陣列(最多 3 個)
video_durationsnumber[]選填每個影片的時長陣列,單位秒,例如 [3, 5]
input_video_durationnumber選填輸入影片總時長,單位秒(video_durations 的替代欄位)
audio_urlstring選填參考音訊 URL(背景音樂 / SFX)
audio_urlsstring[]選填多個參考音訊 URL 陣列(最多 3 個)
generate_audioboolean選填是否生成音訊,預設為 true
watermarkboolean選填是否添加浮水印,預設為 false
contentarray選填媒體資產陣列。每個項目:{ type: "image_url", image_url: { url }, role }。支援的角色:first_frame(最多 1 個)、last_frame(最多 1 個)、reference_image、reference_video、reference_audio

5輸入限制

你可以自由組合文字、圖片、影片和音訊作為輸入。請注意以下限制:

圖片:每次請求 0–9 張
影片:每次請求 0–3 個,每個 2–15s,總時長 ≤ 15s
音訊:每次請求 0–3 個,每個 2–15s,總時長 ≤ 15s
❌ 不支援僅「Text + Audio only」和「Pure Audio」輸入

支援的格式

  • 圖片格式:JPEG、PNG、WebP、BMP、TIFF、GIF(每個最大 30MB)
  • 影片格式:MP4、MOV(H.264/H.265,每個最大 50MB)
  • 音訊格式:WAV、MP3(每個最大 15MB)
⚡ 提示:只有影片時長會影響計費。總費用 =(輸入影片時長 + 輸出影片時長)× 費率。輸入圖片免費。

6完整 API 範例

最基本的用法——用文字描述場景來生成影片。

bash
curl -X POST https://tokenhub.store/api/v1/videos/generations \
  -H "Authorization: Bearer th-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2.0",
    "prompt": "A golden retriever running on a sunny beach, waves crashing in the background, cinematic slow motion, 4K quality",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "watermark": false
  }'

回應:

json
{
  "id": "xxxxxx-task-id",
  "object": "video.generation.task",
  "model": "doubao-seedance-2.0",
  "status": "queued",
  "created": 1719900000
}

影片生成是非同步的——請輪詢狀態直到完成。

bash
# Poll task status using the task_id from creation response
curl https://tokenhub.store/api/v1/videos/generations/YOUR_TASK_ID \
  -H "Authorization: Bearer th-your-api-key"

任務進行中:

json
{
  "id": "YOUR_TASK_ID",
  "object": "video.generation.task",
  "model": "doubao-seedance-2.0",
  "status": "running",
  "created": 1719900000
}

任務已完成(已收到影片 URL):

json
{
  "id": "YOUR_TASK_ID",
  "object": "video.generation.task",
  "model": "doubao-seedance-2.0",
  "status": "succeeded",
  "created": 1719900000,
  "data": [
    {
      "video_url": "https://xxx.volces.com/output-video.mp4",
      "cover_image_url": "https://xxx.volces.com/cover.jpg"
    }
  ],
  "usage": {
    "video_duration": 5
  }
}
💡 建議輪詢間隔:每 3-5 秒一次。狀態值:queued → waiting,running → generating,succeeded → done,failed → error

7Python 完整範例

python
import requests
import time

API_BASE = "https://tokenhub.store/api/v1"
API_KEY = "th-your-api-key"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# Step 1: Create video generation task
payload = {
    "model": "doubao-seedance-2.0",
    "prompt": "A majestic eagle soaring over snow-capped mountains, golden hour lighting, cinematic aerial shot",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "watermark": False
}

resp = requests.post(f"{API_BASE}/videos/generations", json=payload, headers=headers)
task = resp.json()
task_id = task["id"]
print(f"Task created: {task_id}, status: {task['status']}")

# Step 2: Poll for result
while True:
    resp = requests.get(f"{API_BASE}/videos/generations/{task_id}", headers=headers)
    result = resp.json()
    status = result["status"]
    print(f"Status: {status}")

    if status == "succeeded":
        video_url = result["data"][0]["video_url"]
        duration = result["usage"]["video_duration"]
        print(f"Video ready! Duration: {duration}s")
        print(f"URL: {video_url}")
        break
    elif status == "failed":
        print(f"Failed: {result.get('error', {}).get('message', 'Unknown error')}")
        break

    time.sleep(5)

8JavaScript / Node.js 完整範例

javascript
const API_BASE = "https://tokenhub.store/api/v1";
const API_KEY = "th-your-api-key";

const headers = {
  "Authorization": `Bearer ${API_KEY}`,
  "Content-Type": "application/json"
};

// Step 1: Create task
const createResp = await fetch(`${API_BASE}/videos/generations`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "doubao-seedance-2.0",
    prompt: "A majestic eagle soaring over snow-capped mountains, cinematic aerial shot",
    duration: 5,
    resolution: "720p",
    aspect_ratio: "16:9",
    watermark: false,
  }),
});
const task = await createResp.json();
console.log("Task created:", task.id);

// Step 2: Poll for result
const poll = async () => {
  while (true) {
    const resp = await fetch(`${API_BASE}/videos/generations/${task.id}`, { headers });
    const result = await resp.json();
    console.log("Status:", result.status);

    if (result.status === "succeeded") {
      console.log("Video URL:", result.data[0].video_url);
      console.log("Duration:", result.usage.video_duration, "seconds");
      return result;
    }
    if (result.status === "failed") {
      console.error("Failed:", result.error?.message);
      return result;
    }
    await new Promise(r => setTimeout(r, 5000));
  }
};

await poll();

9圖片轉影片 Python 範例

python
import requests, time

API_BASE = "https://tokenhub.store/api/v1"
headers = {
    "Authorization": "Bearer th-your-api-key",
    "Content-Type": "application/json"
}

# Image-to-Video with a single reference image
payload = {
    "model": "doubao-seedance-2.0",
    "prompt": "The woman in the photo turns to face the camera and smiles warmly, her hair gently blowing in the wind",
    "duration": 5,
    "resolution": "720p",
    "image_url": "https://your-bucket.com/portrait.jpg",
    "watermark": False
}

resp = requests.post(f"{API_BASE}/videos/generations", json=payload, headers=headers)
task_id = resp.json()["id"]
print(f"Task: {task_id}")

# Poll for result
while True:
    r = requests.get(f"{API_BASE}/videos/generations/{task_id}", headers=headers).json()
    if r["status"] == "succeeded":
        print(f"Done: {r['data'][0]['video_url']}")
        break
    elif r["status"] == "failed":
        print(f"Error: {r.get('error', {}).get('message')}")
        break
    time.sleep(5)

10Prompt 提示

基本結構

建議格式:[主體] + [動作] + [環境/背景] + [攝影機/風格]

優質 Prompt 範例

  • "A young woman walking through a cherry blossom garden, petals falling in slow motion, soft natural lighting, cinematic 35mm film look"
  • "Close-up of hands pouring latte art into a ceramic cup, steam rising, warm cafe ambiance, shallow depth of field"
  • "Aerial drone shot of a winding river through autumn forest, golden and red leaves, morning mist, 4K cinematic"

參考圖片/影片提示

  • 在 prompt 中使用 "image 1"、"image 2"、"video 1"、"audio 1" 來引用你的資產
  • 按時間段指定場景內容(例如:"0-2s: xxx, 2-4s: xxx")
  • 指定起止幀(例如:"first frame is image 1"、"end frame freezes on image 2")
  • 指定攝影構圖來源(例如:"use video 1 POV throughout")
  • 指定音訊用法(例如:"use audio 1 as background music throughout")

提示

  • 英文 prompt 通常效果更好;也支援中文
  • 描述越具體、越生動,效果通常越好
  • 避免過於抽象的描述(例如:「一個不錯的影片」)
  • 攝影機語言能大幅提升品質(慢動作、特寫、航拍、跟拍……)

11FAQ

準備開始了嗎?

註冊 TokenHub,立即開始使用 Seedance 2.0 影片生成 API

© 2026 TokenHub · Powered by ByteDance Seedance 2.0 · support@tokenhub.store