Cara Menggunakan Seedance 2.0 API 2026

Ashley Innocent

Ashley Innocent

4 April 2026

Cara Menggunakan Seedance 2.0 API 2026

Ringkasan

API Seedance 2.0 diluncurkan pada 2 April 2026, melalui Volcengine Ark. Anda mengirimkan tugas pembuatan video dengan permintaan POST, lalu melakukan polling titik akhir GET hingga status mencapai "succeeded" (berhasil). API ini mendukung teks-ke-video, gambar-ke-video, kontrol bingkai awal-dan-akhir, referensi multimodal, dan pembuatan audio asli. Video 1080p berdurasi 5 detik berharga sekitar $0.93. Unduh video dalam waktu 24 jam. URL tersebut akan kedaluwarsa setelah itu.

Hypereal AI

Pendahuluan

Pada 2 April 2026, platform Volcengine Ark milik ByteDance merilis API resmi Seedance 2.0. Sebelum tanggal tersebut, satu-satunya cara untuk menghasilkan video Seedance 2.0 adalah melalui konsol web. Jika Anda pernah melihat tutorial yang menunjukkan panduan UI, tutorial tersebut ditulis untuk konsol. Panduan ini mencakup API nyata yang dapat dipanggil oleh pengembang secara terprogram.

💡
API ini mengikuti pola tugas asinkron: POST untuk membuat tugas, menerima ID tugas, lalu melakukan polling titik akhir GET hingga tugas selesai. Pola ini layak diuji secara menyeluruh sebelum Anda meluncurkan produk. Skenario Uji Apidog memungkinkan Anda merangkai pengiriman POST, mengekstrak ID tugas, mengulang polling GET, dan memastikan bahwa respons akhir berisi URL video yang valid. Unduh Apidog gratis untuk mengikuti langkah-langkah pengujian di bagian Apidog di bawah ini.

Artikel ini membahas setiap jenis input yang didukung, perhitungan harga dari jumlah token respons, dan kesalahan yang akan Anda temui dalam produksi.

Apa itu Seedance 2.0?

Seedance 2.0 adalah model pembuatan video dari ByteDance. Ini berjalan di Volcengine Ark di bawah ID model doubao-seedance-2-0-260128 (standar) dan doubao-seedance-2-0-fast-260128 (lebih cepat, kualitas lebih rendah).

Model ini mendukung lebih banyak jenis input daripada versi 1.5. Versi 1.5 menangani teks-ke-video dan gambar-ke-video. Versi 2.0 menambahkan:

Model ini menghasilkan video 24 fps dengan rasio aspek dari 1:1 hingga 21:9. Anda memilih resolusi pada saat permintaan.

Apa yang berubah: panduan vs API resmi

Artikel-artikel sebelumnya tentang Seedance 2.0, termasuk panduan Februari 2026 di situs ini, menjelaskan konsol web Seedance 2.0 di Volcengine. Belum ada API pada saat itu. Panduan-panduan tersebut menunjukkan cara mengisi kolom prompt di halaman web dan mengklik tombol buat.

Rilis API pada 2 April 2026 mengubahnya sepenuhnya. Anda sekarang dapat memanggil API dari bahasa apa pun, mengotomatiskan alur pembuatan video, dan mengintegrasikan Seedance ke dalam produk Anda sendiri. Panduan ini menggantikan panduan UI untuk kasus penggunaan pengembang apa pun.

Prasyarat

Anda memerlukan akun Volcengine untuk memulai. Buat satu di volcengine.com. Setelah akun Anda aktif, buka konsol Ark di:

https://console.volcengine.com/ark/region:ark+cn-beijing/apikey

Buat kunci API di sana. Kemudian ekspor sebagai variabel lingkungan:

export ARK_API_KEY="your-api-key-here"

Setiap permintaan ke API menggunakan kunci ini dalam header token Bearer:

Authorization: Bearer YOUR_ARK_API_KEY

Akun baru menerima kredit uji coba gratis. Ini mencakup sekitar 8 generasi penuh 15 detik pada 1080p sebelum Anda membayar apa pun.

Teks-ke-video: permintaan pertama Anda

URL dasar untuk semua panggilan API Seedance adalah:

https://ark.cn-beijing.volces.com/api/v3

Untuk mengirimkan tugas teks-ke-video, POST ke /v1/contents/generations/tasks.

Contoh cURL

curl -X POST "https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{
    "model": "doubao-seedance-2-0-260128",
    "content": [
      {
        "type": "text",
        "text": "A golden retriever running through a sunlit wheat field, wide tracking shot, cinematic"
      }
    ],
    "resolution": "1080p",
    "ratio": "16:9",
    "duration": 5,
    "watermark": false
  }'

API segera mengembalikan ID tugas:

{"id": "cgt-2025xxxxxxxx-xxxx"}

Contoh Python (SDK resmi)

Instal SDK terlebih dahulu:

pip install volcenginesdkarkruntime

Kemudian kirimkan tugas:

import os
from volcenginesdkarkruntime import Ark

client = Ark(api_key=os.environ.get("ARK_API_KEY"))

resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {
            "type": "text",
            "text": "A golden retriever running through a sunlit wheat field, wide tracking shot, cinematic"
        }
    ],
    resolution="1080p",
    ratio="16:9",
    duration=5,
    watermark=False,
)

print(resp.id)

Simpan ID tugas. Anda akan membutuhkannya untuk langkah polling.

Pola tugas asinkron: kirim, polling, unduh

Pembuatan Seedance tidak instan. Video 1080p berdurasi 5 detik biasanya memakan waktu 60 hingga 120 detik. API menanganinya dengan siklus hidup tugas asinkron:

queued -> running -> succeeded
                  -> failed
                  -> expired
                  -> cancelled

Anda melakukan polling titik akhir GET hingga status berubah dari queued (mengantre) atau running (berjalan).

Loop polling Python lengkap

import os
import time
import requests
from volcenginesdkarkruntime import Ark

client = Ark(api_key=os.environ.get("ARK_API_KEY"))

# Step 1: submit
resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {"type": "text", "text": "Aerial shot of a mountain lake at sunrise, slow dolly forward"}
    ],
    resolution="1080p",
    ratio="16:9",
    duration=5,
    watermark=False,
)

task_id = resp.id
print(f"Task submitted: {task_id}")

# Step 2: poll with exponential backoff
wait = 10
while True:
    result = client.content_generation.tasks.get(task_id=task_id)
    status = result.status
    print(f"Status: {status}")

    if status == "succeeded":
        video_url = result.content.video_url
        print(f"Video URL: {video_url}")
        break
    elif status in ("failed", "expired", "cancelled"):
        print(f"Task ended with status: {status}")
        break

    time.sleep(wait)
    wait = min(wait * 2, 60)  # cap at 60 seconds

# Step 3: download immediately
if status == "succeeded":
    response = requests.get(video_url, stream=True)
    with open("output.mp4", "wb") as f:
        for chunk in response.iter_content(chunk_size=8192):
            f.write(chunk)
    print("Downloaded: output.mp4")

Penundaan eksponensial (exponential backoff) mencegah penyerangan pada API. Batas 60 detik menjaga polling cukup sering untuk penggunaan praktis.

Gambar-ke-video (I2V): menganimasikan gambar diam

Untuk menganimasikan gambar, tambahkan objek image_url ke array content di samping prompt teks Anda. Gambar tersebut akan menjadi bingkai pertama video.

resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {
            "type": "text",
            "text": "The woman slowly turns her head and smiles at the camera"
        },
        {
            "type": "image_url",
            "image_url": {"url": "https://example.com/portrait.jpg"}
        }
    ],
    ratio="adaptive",
    duration=5,
    watermark=False,
)

Mengatur ratio ke "adaptive" memberitahu model untuk menggunakan rasio aspek asli gambar masukan. Ini menghindari pemotongan atau letterboxing yang tidak diinginkan.

Setiap gambar harus kurang dari 30MB. Anda dapat memasok hingga 9 gambar dalam satu permintaan.

Bingkai awal dan akhir: mengontrol titik awal dan akhir

Seedance 2.0 mendukung kontrol bingkai pembatas. Anda menyediakan gambar bingkai pertama, gambar bingkai terakhir, dan prompt teks. Model ini menghasilkan gerakan di antaranya.

Ini berguna untuk transisi produk, efek morphing, atau urutan apa pun di mana Anda mengetahui status awal dan akhir Anda.

resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {
            "type": "text",
            "text": "The flower blooms from bud to full open, macro lens, soft light"
        },
        {
            "type": "image_url",
            "image_url": {"url": "https://example.com/flower-bud.jpg"}
        },
        {
            "type": "image_url",
            "image_url": {"url": "https://example.com/flower-open.jpg"}
        }
    ],
    ratio="adaptive",
    duration=8,
    watermark=False,
)

Model menyimpulkan bahwa dua gambar berarti mode bingkai awal-dan-akhir ketika prompt teks juga ada. Sertakan kedua gambar secara berurutan: bingkai pertama terlebih dahulu, bingkai terakhir kedua.

Anda juga dapat menggunakan return_last_frame: true saat membuat klip. Ini akan mengembalikan gambar bingkai akhir bersama dengan URL video. Berikan gambar tersebut sebagai bingkai pertama dari permintaan berikutnya untuk merangkai beberapa klip menjadi urutan yang lebih panjang.

Referensi multimodal: menggabungkan gambar, video, dan audio

Salah satu tambahan terkuat di Seedance 2.0 adalah penerimaan video dan audio sebagai input referensi dalam permintaan yang sama dengan gambar dan teks.

Array konten dapat berisi:

Batas per permintaan:

Contoh referensi gabungan:

resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {
            "type": "text",
            "text": "Match the visual style of the reference clip and add the provided background audio"
        },
        {
            "type": "image_url",
            "image_url": {"url": "https://example.com/style-reference.jpg"}
        },
        {
            "type": "video_url",
            "video_url": {"url": "https://example.com/motion-reference.mp4"}
        },
        {
            "type": "audio_url",
            "audio_url": {"url": "https://example.com/background-music.mp3"}
        }
    ],
    duration=10,
    ratio="16:9",
    watermark=False,
)

Ketika Anda menyertakan referensi video, tarif penagihan turun ke tingkat V2V: sekitar $3.90 per juta token dibandingkan $6.40.

Pembuatan audio asli

Atur generate_audio: true agar Seedance menghasilkan trek audio bersamaan dengan video. Model ini melakukan pembuatan audio-video bersama, sehingga suara cocok dengan aksi di layar daripada ditumpuk setelahnya.

Pembuatan audio mencakup dialog, efek suara, suara ambien, dan musik latar. Sinkronisasi bibir bekerja dalam lebih dari 8 bahasa.

resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {
            "type": "text",
            "text": "A street musician plays guitar outside a cafe in Paris, crowds passing by, city sounds"
        }
    ],
    resolution="1080p",
    ratio="16:9",
    duration=10,
    generate_audio=True,
    watermark=False,
)

Pembuatan audio asli sedikit meningkatkan konsumsi token dibandingkan video tanpa suara. Pertimbangkan ini dalam perkiraan biaya Anda.

Mengontrol resolusi, rasio, dan durasi

Tiga parameter membentuk output:

resolusi menerima "480p", "720p", "1080p", atau "2K". Defaultnya adalah "1080p". Resolusi yang lebih tinggi berarti lebih banyak token yang dikonsumsi dan biaya yang lebih tinggi.

rasio menerima "16:9", "9:16", "4:3", "3:4", "21:9", "1:1", atau "adaptive". Gunakan "adaptive" ketika gambar masukan Anda memiliki rasio aspek yang tidak biasa. Model membaca dimensi gambar dan mengatur rasio sesuai.

durasi menerima bilangan bulat dari 4 hingga 15. Unitnya adalah detik. Defaultnya adalah 5. Video yang lebih panjang biayanya secara proporsional lebih mahal.

Model cepat (doubao-seedance-2-0-fast-260128) menghasilkan kualitas yang lebih rendah tetapi selesai lebih cepat. Gunakan untuk prototipe atau saat Anda mengulang prompt. Beralih ke model standar untuk output produksi.

Kapan memilih Seedance 2.0 dibandingkan API video lainnya: pilih Seedance ketika Anda memerlukan pembuatan gabungan audio-video asli, kontrol bingkai pembatas, atau input referensi multimodal. Jika Anda hanya memerlukan teks-ke-video sederhana dan biaya adalah prioritas, model cepat pada 480p adalah pilihan termurah di kelas ini.

Membaca biaya dari respons

Setelah tugas berhasil, respons mencakup bidang usage:

{
  "usage": {
    "completion_tokens": 246840,
    "total_tokens": 246840
  }
}

Konsumsi token berkorelasi dengan panjang dan resolusi video. Titik referensi dari dokumen resmi: video 1080p berdurasi 15 detik mengonsumsi sekitar 308.880 token. Video 1080p berdurasi 5 detik menggunakan sekitar 102.960 token.

Harga untuk T2V dan I2V pada 1080p adalah 46 yuan per juta token (sekitar $6.40 per juta token pada kurs saat ini).

Estimasi cepat:

Untuk tugas V2V (permintaan yang menyertakan referensi video), tarif turun menjadi 28 yuan per juta token (sekitar $3.90 per juta token).

Anda dapat memeriksa jumlah token yang tepat pada setiap respons dan membangun pelacakan biaya ke dalam aplikasi Anda. Kalikan completion_tokens dengan tarif untuk jenis tugas Anda.

Penting: unduh video dalam waktu 24 jam

video_url dalam respons yang berhasil menunjuk ke penyimpanan objek Volcengine. URL tersebut kedaluwarsa 24 jam setelah tugas berhasil. Setelah itu, URL akan mengembalikan kesalahan 403 dan file hilang.

Selalu unduh file ke penyimpanan Anda sendiri segera setelah status berubah menjadi succeeded (berhasil). Loop polling di bagian sebelumnya mencakup langkah pengunduhan ini sebagai bagian dari alur standar.

Bidang execution_expires_after mengonfirmasi jendela kedaluwarsa dalam detik. 172800 berarti 48 jam untuk catatan tugas itu sendiri. URL video tetap kedaluwarsa pada 24 jam. Percayai aturan 24 jam.

Riwayat tugas juga terbatas pada 7 hari terakhir. Anda tidak dapat menanyakan tugas yang lebih lama dari itu.

Cara menguji API Seedance dengan Apidog

Pola tugas asinkron memiliki dua panggilan API yang saling bergantung. Anda tidak dapat menulis uji permintaan tunggal untuk itu. Skenario Uji Apidog menanganinya dengan alur berantai.

Berikut adalah pengaturan persisnya:

Langkah 1: Buat Skenario Uji

Di Apidog, buka modul Tests dan buat skenario baru bernama "Pembuatan video Seedance 2.0". Atur variabel lingkungan Anda ARK_API_KEY di pengaturan lingkungan Apidog. Gunakan {{ARK_API_KEY}} di mana pun Anda akan mereferensikan kunci.

Langkah 2: Tambahkan permintaan pengiriman

Tambahkan langkah permintaan POST kustom ke https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks. Atur header Otorisasi ke Bearer {{ARK_API_KEY}}. Tambahkan badan JSON Anda dengan bidang model dan konten.

Setelah langkah ini, tambahkan prosesor Extract Variable. Atur untuk mengekstrak dari badan respons menggunakan ekspresi JSONPath $.id. Simpan nilainya ke variabel lingkungan bernama TASK_ID.

Langkah 3: Tambahkan prosesor Tunggu (Wait)

Sisipkan prosesor Tunggu setelah langkah ekstraksi. Atur penundaan menjadi 30 detik. Ini memberi model waktu untuk mulai memproses sebelum upaya polling pertama Anda.

Langkah 4: Tambahkan permintaan polling dalam loop For

Tambahkan blok kontrol loop For dengan maksimum 20 iterasi. Di dalam loop:

  1. Tambahkan langkah permintaan GET ke https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks/{{TASK_ID}} dengan header Otorisasi yang sama.
  2. Tambahkan prosesor Tunggu dengan penundaan 10 detik setelah permintaan GET.
  3. Atur kondisi Break If loop: $.status == "succeeded" atau $.status == "failed".

Langkah 5: Tambahkan pernyataan (assertions)

Setelah loop keluar, tambahkan prosesor Assertion yang memeriksa:

Jalankan skenario dan Apidog menghasilkan laporan uji lengkap yang menunjukkan setiap langkah, ID tugas yang diekstraksi, semua respons polling, dan apakah pernyataan akhir lolos.

Anda juga dapat mengimpor titik akhir Seedance langsung dari perintah cURL ke dalam langkah-langkah skenario uji. Pendekatan ini berfungsi dengan baik ketika Anda ingin dengan cepat menambahkan permintaan pengiriman dan polling tanpa harus memasukkan setiap header dan parameter secara manual.

Rincian harga: biaya video 10 detik

API Seedance menggunakan harga token bayar-sesuai-pakai. Tidak ada biaya bulanan atau kredit yang perlu dikelola di luar saldo uji coba awal.

Jenis Tugas Tarif (per 1 Juta token)
T2V / I2V pada 1080p 46 yuan (~$6.40)
V2V (input referensi video) 28 yuan (~$3.90)

Perkiraan biaya untuk durasi umum pada 1080p:

Durasi Perkiraan Token Biaya (T2V/I2V)
5 detik ~103.000 ~$0.66 yuan / ~$0.93
10 detik ~206.000 ~$9.48 yuan / ~$1.32
15 detik ~309.000 ~$14.21 yuan / ~$1.97

Akun baru dimulai dengan kredit uji coba gratis yang mencakup sekitar 8 generasi penuh 15 detik. Gunakan jatah ini untuk bereksperimen dengan prompt dan pengaturan sebelum beralih ke beban kerja produksi.

Resolusi yang lebih rendah secara signifikan mengurangi konsumsi token. Video 480p dengan durasi yang sama biayanya jauh lebih rendah daripada 1080p. Mulai pengembangan pada 720p, lalu tingkatkan resolusi hanya untuk output akhir Anda.

Kesalahan umum dan perbaikan

429 Terlalu Banyak Permintaan

Ini berarti Anda telah mencapai batas konkurensi, bukan batas kecepatan pada permintaan per menit. Terlalu banyak tugas berjalan secara bersamaan. Gunakan penundaan eksponensial (exponential backoff) saat Anda melihat kode status ini. Mulailah dengan menunggu 10 detik dan gandakan pada setiap percobaan ulang, dengan batas 60 detik. Loop polling yang ditunjukkan sebelumnya mencakup pola ini.

status: "gagal"

Tugas yang gagal berarti model tidak dapat menghasilkan video. Penyebab umum: prompt berisi konten yang melanggar filter keamanan, gambar masukan rusak atau terlalu besar, atau kombinasi parameter tidak valid. Periksa file masukan dan prompt Anda, lalu kirim ulang.

status: "kedaluwarsa"

Tugas kedaluwarsa jika tetap dalam antrean terlalu lama tanpa selesai. Ini bisa terjadi selama periode beban puncak. Kirim ulang tugas. Tidak ada cara untuk memulai kembali tugas yang kedaluwarsa.

403 pada video_url

URL telah kedaluwarsa. Jendela 24 jam berlalu sebelum Anda mengunduh file. Catatan tugas mungkin masih ada di API hingga 7 hari, tetapi file video sudah hilang. Anda perlu membuatnya kembali menggunakan parameter dan nilai seed yang sama jika Anda menyimpannya.

Reproduksibilitas seed

Jika Anda menyimpan nilai seed dari respons sebelumnya, kembalikan dalam permintaan berikutnya dengan parameter yang sama. Model akan mencoba mereproduksi output yang sama. Ini berguna untuk membuat ulang video yang kedaluwarsa dengan hasil yang identik.

Kesimpulan

API Seedance 2.0 memberi Anda akses terprogram ke salah satu model pembuatan video paling canggih yang tersedia saat ini. Pola tugas asinkronnya mudah: POST untuk membuat tugas, polling hingga berhasil, unduh segera. Input multimodal, pembuatan audio asli, dan kontrol bingkai pembatas memungkinkan pembangunan alur kerja video yang tidak mungkin dilakukan dari konsol web.

Siapkan cakupan pengujian Anda di Apidog sebelum Anda beralih ke produksi. Rantai Skenario Uji menangkap logika polling yang rusak, langkah ekstraksi yang hilang, dan masalah kedaluwarsa URL sebelum memengaruhi pengguna nyata.

button

FAQ

T: Apa perbedaan antara doubao-seedance-2-0-260128 dan doubao-seedance-2-0-fast-260128?

Model standar menghasilkan output berkualitas lebih tinggi dan merupakan default untuk produksi. Model cepat menyelesaikan pekerjaan lebih cepat dengan kualitas visual yang lebih rendah. Gunakan model cepat saat mengulang prompt dan beralih ke standar untuk render akhir.

T: Bisakah saya menggunakan Seedance 2.0 di luar Tiongkok?

Titik akhir API di-hosting di wilayah Beijing. Pengembang di luar Tiongkok dapat memanggilnya, tetapi latensi akan lebih tinggi. Periksa ketentuan layanan Volcengine untuk batasan geografis apa pun pada jenis akun Anda.

T: Bagaimana cara saya merangkai beberapa klip menjadi video yang lebih panjang?

Atur return_last_frame: true pada setiap generasi. Respons akan menyertakan gambar bingkai terakhir bersama dengan URL video. Berikan gambar tersebut sebagai bingkai pertama dari permintaan Anda berikutnya. Ulangi hingga Anda memiliki semua klip yang Anda butuhkan, lalu gabungkan menggunakan pustaka pengeditan video.

T: Apakah pembuatan audio asli memerlukan biaya lebih?

Pembuatan audio asli sedikit meningkatkan konsumsi token karena model menjalankan pembuatan audio-video bersama daripada hanya video. Harapkan peningkatan moderat dalam completion_tokens dibandingkan dengan permintaan yang sama tanpa generate_audio: true.

T: Bisakah saya mengatur webhook alih-alih polling?

Ya. Kirim parameter callback_url dalam permintaan pengiriman Anda. API akan melakukan POST hasil tugas yang selesai ke URL tersebut ketika status berubah. Ini lebih efisien daripada polling untuk alur volume tinggi.

T: Apa yang terjadi jika saya melebihi batas 9 gambar?

API mengembalikan kesalahan validasi 400 sebelum tugas dibuat. Kurangi jumlah gambar dalam array konten Anda menjadi 9 atau kurang.

T: Apakah parameter seed dijamin untuk mereproduksi video yang persis sama?

Parameter seed membuat output lebih dapat direproduksi. Reproduksi yang tepat tidak dijamin jika parameter berbeda atau versi model di sisi server berubah. Ini adalah perkiraan terdekat yang tersedia.

T: Bagaimana cara saya melacak pengeluaran di berbagai tugas?

Baca bidang completion_tokens dari respons setiap tugas dan kalikan dengan tarif token tingkatan Anda. Catat nilai-nilai ini ke database untuk pelacakan biaya. Tidak ada dasbor pengeluaran bawaan dalam API, jadi bangun pelacakan Anda sendiri dari awal.

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.