S
Seedance 2.0 API Qo‘llanmasi

Seedance 2.0 Video yaratish API

TokenHub yagona API orqali ByteDance Seedance 2.0 video yaratish modelariga murojaat qiling. Text-to-video, image-to-video, video tahrirlash, audio asosidagi yaratish va boshqalarni qo‘llab-quvvatlaydi. Ushbu qo‘llanma sizni to‘liq integratsiya jarayoni bilan tanishtiradi.

Joriy e’lon qilingan modellar va narxlarni Modellar va Narxlar sahifalarida ko‘ring. Sahifalar avtomatik yangilanadi.

Using Gemini to write prompts or scripts? See the text-generation API examples. For an unlisted model, use the model ID provided by your account administrator. Gemini API

Responses API oqimli javoblari va hisob-kitob

Query your balance and usage or manage API keys with an access token generated in Settings. View account API documentation

API kalitlarini nom yoki prefiks boʻyicha qidiring va har sahifada 20 ta kalitni koʻring. Yangi kalitlar birinchi sahifada koʻrinadi. Boshqa oynada yoki API orqali yaratilgan kalitlarni koʻrish uchun roʻyxatni yangilang. API Keys

Text → VideoImage → VideoVideo → VideoAudio Reference480p / 720p / 1080p4–15 soniya

1API Key’ingizni oling

  1. Tashrif buyuring tokenhub.store akkaunt yaratish uchun (GitHub / Google orqali kirish qo‘llab-quvvatlanadi)
  2. Dashboard → API Keys ga o‘ting, "Create New Key" ni bosing
  3. Credits qo‘shish uchun Dashboard → Billing ga o‘ting (1 Credit = $1 USD)
  4. API Key ni nusxalang (format: th-xxxxxxxxxxxx...)
⚠️ API Key faqat yaratilgan paytda bir marta ko‘rsatiladi. Uni xavfsiz saqlang. Yo‘qotib qo‘ysangiz, yangisini yaratishingiz kerak bo‘ladi.

2API umumiy ko‘rinishi

Base URL

https://tokenhub.store/api/v1

Autentifikatsiya

Barcha so‘rovlar headerda API Key ni talab qiladi:

Header
Authorization: Bearer th-your-api-key

Ikki endpoint

POST
/videos/generations

Video generatsiya vazifasini yaratadi, task ID qaytaradi

GET
/videos/generations/{task_id}

Vazifa holatini so‘raydi, muvaffaqiyatli bo‘lsa video URL qaytaradi

3Model va narxlar

Model IDKirishNarxTavsif
doubao-seedance-2.0Video kiritmasdan$6.970/1M (1080p $7.727)Flagman model, eng yuqori sifat. 1080p qo'llab-quvvatlanadi.
Video kiritish bilan$4.242/1M (1080p $4.697)Video kiritish bilan flagman, tejamkor.
doubao-seedance-2.0-fastVideo kiritmasdan$5.606/1MTezkor model, yanada tezroq yaratish.
Video kiritish bilan$3.333/1MVideo kiritish bilan tezkor model, eng arzon.

To‘lov tafsilotlari:

  • Chiqarilgan video: 1M tokens uchun hisoblanadi (tokens soni aniqlik va davomiylikka bog'liq)
  • Kirish rasmi: bepul (to‘lov olinmaydi)
  • Kirish videosi: 1M tokens uchun with-video-input tarifida hisoblanadi
  • Jami narx = jami sarflangan tokens × har bir token uchun tarif (yuqoridagi jadvalga qarang)

Misol: doubao-seedance-2.0 video kiritmasdan (≤720p) ishlatib, ~1M tokens bilan 5 soniyalik video yaratganda → narx ≈ $6.970

4So‘rov parametrlari

ParametrTuriMajburiyTavsif
modelstringMajburiyModel ID, masalan "doubao-seedance-2.0"
promptstringMajburiyVideo tavsifi matni. Odatda inglizcha promptlar yaxshiroq natija beradi
durationnumberIxtiyoriyVideo davomiyligi (sek), diapazon 4–15, standart 5
resolutionstringIxtiyoriy"480p", "720p" yoki "1080p" (standart 720p; 1080p faqat doubao-seedance-2.0 uchun)
aspect_ratiostringIxtiyoriyAspekt nisbati: "adaptive" (standart), "16:9", "9:16", "1:1" va hokazo.
image_urlstringIxtiyoriyMa’lumot uchun rasm URL manzili (image-to-video)
image_urlsstring[]IxtiyoriyBir nechta ma’lumot uchun rasm URL manzillari massivi
video_urlstringIxtiyoriyMa’lumot uchun video URL manzili (video editing / video-to-video)
video_urlsstring[]IxtiyoriyBir nechta ma’lumot uchun video URL manzillari massivi (maks. 3)
video_durationsnumber[]IxtiyoriyHar bir video uchun sekundlarda davomiyliklar massivi, masalan [3, 5]
input_video_durationnumberIxtiyoriySekundlarda kirish videosining umumiy davomiyligi (video_durations ga muqobil)
audio_urlstringIxtiyoriyMa’lumot uchun audio URL manzili (background music / SFX)
audio_urlsstring[]IxtiyoriyBir nechta ma’lumot uchun audio URL manzillari massivi (maks. 3)
generate_audiobooleanIxtiyoriyOvoz yaratish kerakmi, sukut bo‘yicha true
watermarkbooleanIxtiyoriySuv belgisi qo‘shilsinmi, sukut bo‘yicha false
contentarrayIxtiyoriyMedia resurslari massivi. Har bir element: { type: "image_url", image_url: { url }, role }. Qo‘llab-quvvatlanadigan rollar: first_frame (max 1), last_frame (max 1), reference_image, reference_video, reference_audio

5Kiritish cheklovlari

Siz matn, rasm, video va audioni kirish sifatida erkin birlashtirishingiz mumkin. Quyidagi cheklovlarga e’tibor bering:

Rasmlar: har bir so‘rovda 0–9 ta
Videolar: har bir so‘rovda 0–3 ta, har biri 2–15 soniya, jami davomiylik ≤ 15 soniya
Audio: har bir so‘rovda 0–3 ta, har biri 2–15 soniya, jami davomiylik ≤ 15 soniya
❌ Faqat "Matn + Audio" va "Faqat Audio" kiritish usullari qo‘llab-quvvatlanmaydi

Qo‘llab-quvvatlanadigan formatlar

  • Rasm formatlari: JPEG, PNG, WebP, BMP, TIFF, GIF (har biri maksimal 30MB)
  • Video formatlari: MP4, MOV (H.264/H.265, har biri maksimal 50MB)
  • Audio formatlari: WAV, MP3 (har biri maksimal 15MB)
⚡ Maslahat: Faqat video davomiyligi hisob-kitobga ta’sir qiladi. Jami narx = (kirish videosi davomiyligi + chiqish videosi davomiyligi) × tarif. Kirish rasmlari bepul.

6To‘liq API misollari

Eng asosiy foydalanish — videoni yaratish uchun sahnani matn bilan tavsiflang.

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
  }'

Javob:

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

Video yaratish asinxron — jarayon tugaguncha holatini tekshirib turing.

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"

Topshiriq jarayonda:

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

Topshiriq yakunlandi (video URL olindi):

json
{
  "id": "YOUR_TASK_ID",
  "object": "video.generation.task",
  "model": "doubao-seedance-2.0",
  "status": "succeeded",
  "created": 1719900000,
  "data": [
    {
      "video_url": "https://tokenhub-data.tos-cn-hongkong.volces.com/user_sd_file/YOUR_TASK_ID.mp4",
      "cover_image_url": "https://tokenhub-data.tos-cn-hongkong.volces.com/user_sd_file/YOUR_TASK_ID_cover.jpg"
    }
  ],
  "usage": {
    "video_duration": 5
  }
}
💡 Tavsiya etilgan tekshirish oralig‘i: har 3-5 soniyada. Holat qiymatlari: queued → waiting, running → generating, succeeded → done, failed → error

7Python to‘liq misoli

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 to‘liq misoli

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();

9Rasmni videoga aylantirish uchun Python misoli

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)

10Haqiqiy odam rasmi -> video

Kiritilgan rasmingizda haqiqiy odam bo'lsa, TokenHub so'rovni real-person generation-ni qo'llab-quvvatlaydigan upstream'ga avtomatik yo'naltiradi. Client tomonda hech qanday o'zgarish talab qilinmaydi.

Agar upstream content filter kiritilgan rasmdagi haqiqiy odamni aniqlasa, avtomatik ishga tushadi.

So'rov shakli odatiy image-to-video bilan bir xil — POST /v1/videos/generations body ham aynan o'sha.

Javobning ikki mumkin bo'lgan shakli

  • Oddiy: { "id": "cgt-...", "status": "queued" } (mavjud xulq-atvor)
  • Haqiqiy odam yo'li: { "id": "pat-...", "status": "queued" } — qo'shimcha asset processing, 10-90 soniya qo'shimcha kechikish kutiladi

GET polling ham xuddi shunday — POST qaytargan istalgan id bilan /v1/videos/generations/{id} ga murojaat qiling, status succeeded yoki failed bo'lguncha. id qayta yozilishi server tomonda boshqariladi; siz request davomida doim bir xil id ni ko'rasiz.

Xato: unsupported_real_person_input

Hisobingiz uchun real-person-capable provider sozlanmagan bo'lsa, 400 status bilan qaytariladi. Qo'llab-quvvatlanadigan provider'ni yoqish uchun administratoringizga murojaat qiling.

Xato: asset processing vaqti tugadi

Upstream asset preparation 5 daqiqadan oshsa, GET orqali status: failed bilan qaytariladi. So'rovni xavfsiz qayta yuborish mumkin.

To'liq jarayon misoli

pat-id mijozingiz uchun shaffof emas — status o'zgarguncha pollingni davom ettiring.

bash
# POST
curl -X POST https://tokenhub.store/api/v1/videos/generations \
  -H "Authorization: Bearer $TH_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2.0",
    "prompt": "let her dance and spin",
    "duration": 8,
    "resolution": "480p",
    "content": [
      { "type": "image_url", "image_url": { "url": "https://example.com/portrait.png" }, "role": "first_frame" }
    ]
  }'
# → {"id":"pat-abc123","status":"queued"}

# GET (asset still uploading)
curl https://tokenhub.store/api/v1/videos/generations/pat-abc123 -H "Authorization: Bearer $TH_KEY"
# → {"id":"pat-abc123","status":"queued"}

# GET (upstream task running)
# → {"id":"pat-abc123","status":"running"}

# GET (complete — id stays pat-, video_url in data)
# → {"id":"pat-abc123","status":"succeeded","data":[{"video_url":"..."}]}

11Prompt bo‘yicha maslahatlar

Asosiy tuzilma

Tavsiya etilgan format: [Subject] + [Action] + [Environment/Background] + [Camera/Style]

Yaxshi prompt misollari

  • "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"

Reference image/video uchun maslahatlar

  • Promptda resurslaringizga murojaat qilish uchun "image 1", "image 2", "video 1", "audio 1" iboralaridan foydalaning
  • Har bir vaqt oralig‘i bo‘yicha sahna mazmunini aniqlang (masalan, "0-2s: xxx, 2-4s: xxx")
  • Boshlanish va tugash kadrlarini belgilang (masalan, "first frame is image 1", "end frame freezes on image 2")
  • Kamera kompozitsiyasi manbasini belgilang (masalan, "use video 1 POV throughout")
  • Audio ishlatilishini belgilang (masalan, "use audio 1 as background music throughout")

Maslahatlar

  • Inglizcha promptlar odatda yaxshiroq natija beradi; xitoycha ham qo‘llab-quvvatlanadi
  • Qanchalik aniq va jonli tavsif bo‘lsa, natija shunchalik yaxshi bo‘ladi
  • Haddan tashqari mavhum tavsiflardan saqlaning (masalan, "a nice video")
  • Kamera tili sifatni sezilarli yaxshilaydi (slow motion, close-up, aerial shot, tracking shot...)

12Tez-tez so'raladigan savollar

Boshlashga tayyormisiz?

TokenHub’ga ro‘yxatdan o‘ting va Seedance 2.0 Video Generation API’dan hoziroq foydalanishni boshlang

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