Skip to main content
Gunakan POST /v1/videos untuk membuat tugas pembuatan video Seedance secara asinkron. Pantau tugas hingga selesai, lalu unduh video dari URL Flatkey yang dikembalikan. Model yang didukung adalah seedance-2.0, seedance-2.0-fast, seedance-2.0-mini, dan seedance-2.5. Ketersediaan bergantung pada akun Anda; gunakan GET /v1/models untuk mengambil daftar model terkini.

Endpoint

Flatkey juga menerima POST /v1/video/generations dan GET /v1/video/generations/{task_id}. Gunakan /v1/videos untuk struktur respons standar dan data usage natif.

Permintaan

Parameter body

string
wajib
ID model Seedance: "seedance-2.0", "seedance-2.0-fast", "seedance-2.0-mini", atau "seedance-2.5".
array
wajib
Item input multimodal. Sertakan setidaknya satu item teks yang tidak kosong, gambar, video, atau audio. Lihat item content.
string
Resolusi output. Default: "720p".
string
Rasio aspek output: "16:9", "4:3", "1:1", "3:4", "9:16", "21:9", atau "adaptive". Default: "adaptive". Dengan "adaptive", model memilih rasio berdasarkan gambar atau video input Anda. Untuk seedance-2.5, tugas frame pertama dan frame pertama/terakhir hanya mendukung "adaptive".
integer
Durasi video dalam detik. Default: 5. Model Seedance 2.0 menerima 4 hingga 15; seedance-2.5 menerima 4 hingga 30.
Selalu kirim duration bernilai positif. Flatkey menagih Seedance per detik, sehingga -1 (membiarkan model memilih durasi) ditolak dengan video_price_not_configured. Satu-satunya pengecualian adalah pengeditan video seedance-2.5, yang mewajibkan -1.
boolean
Menambahkan tanda air “AI generated” di pojok kanan bawah. Default: false.
boolean
Menghasilkan trek audio mono yang tersinkronisasi. Default: true. Atur ke false jika Anda hanya membutuhkan video; audio yang dihasilkan sesekali dapat gagal dalam pemeriksaan hak cipta.
boolean
Mengembalikan frame terakhir dari video yang dihasilkan sebagai gambar. Default: false. Jika true, tugas yang telah selesai menyertakan metadata.last_frame_url, yang mengunduh JPEG berdimensi sama dengan video dan tanpa tanda air. Gunakan gambar ini sebagai first_frame untuk tugas berikutnya guna menyambung klip. Seperti metadata.url, URL ini tidak memerlukan header otorisasi; perlakukan sebagai privat.
string
Khusus seedance-2.5. Kontainer video yang dihasilkan: "mp4" atau "mov". Default: "mp4". MOV mempertahankan presisi warna yang lebih tinggi untuk color grading dan compositing (H.264, YUV 4:4:4, audio PCM), tetapi beberapa pemutar tidak dapat membukanya. Endpoint konten mengembalikan video/quicktime untuk hasil MOV.
string
Khusus seedance-2.5, untuk tugas mode referensi. Memberi tahu model tugas yang ingin Anda jalankan: "auto" (default), "reference", "edit", atau "extend". Menetapkannya secara eksplisit memindahkan pemeriksaan jenis tugas ke saat pengiriman, sehingga kombinasi yang tidak valid langsung gagal alih-alih gagal setelah tugas dimulai. "reference", "edit", dan "extend" semuanya memerlukan item referensi di content; permintaan yang hanya berisi teks dengan "reference" akan ditolak. Lihat pengeditan dan perpanjangan video.
integer
Prioritas antrean dari 0 hingga 9. Default: 0. Nilai yang lebih tinggi menempatkan tugas di depan tugas berprioritas lebih rendah yang menunggu model yang sama. Didukung di semua model Seedance 2.0 dan seedance-2.5. Nilai di luar 0–9 ditolak dengan 400.
integer
Jumlah detik tugas boleh menunggu dan berjalan sebelum kedaluwarsa. Default: 172800 (48 jam). Gunakan nilai yang lebih pendek jika hasil yang terlambat tidak berguna bagi Anda.
string
URL HTTPS publik yang menerima POST setiap kali status tugas berubah. Lihat Callback tugas. Harus menggunakan https, tidak berisi kredensial pengguna, panjangnya maksimal 2.048 karakter, dan di-resolve ke alamat publik; jika tidak, permintaan ditolak dengan 400.

Item content

Setiap URL dapat berupa URL HTTPS publik, data URI data:<mime>;base64, (hanya untuk gambar dan audio), atau referensi asset:// dari pustaka aset. Seluruh body permintaan harus di bawah 64 MB. Pilih satu mode input per tugas. Mode-mode ini tidak dapat dicampur:

Pengeditan video

seedance-2.5 dapat mengedit atau memperpanjang video yang sudah ada dalam mode referensi. Jelaskan perubahannya di prompt dan sebut video tersebut sebagai @Video1.
Seperti setiap permintaan seedance-2.5 dengan video referensi, pengeditan ditagih dengan tarif dengan video untuk resolusi tersebut selama 30 detik tetap, berapa pun durasi input maupun output-nya.

Mode draf

seedance-2.5 dapat merender draf 480p yang murah terlebih dahulu, sehingga Anda dapat memeriksa adegan, pengambilan gambar, dan gerakan sebelum membayar video final. Diperlukan dua permintaan:
  1. Buat draf. Kirim permintaan biasa dengan "draft": true dan "resolution": "480p". Draf ditagih sebagai video 480p biasa.
  2. Hasilkan video final. Setelah draf selesai, kirim permintaan yang satu-satunya item content-nya adalah draft_task yang merujuk ke ID tugas draf, dengan "resolution": "1080p".
Video final menggunakan kembali prompt, media, durasi, rasio aspek, seed, pengaturan audio, dan jenis tugas dari draf. Jangan kirim duration, ratio, frames, seed, generate_audio, omni_reference_task_type, draft, atau item content lain bersama draft_task; permintaan akan ditolak dengan 400. Anda tetap dapat mengatur return_last_frame, output_format, watermark, priority, execution_expires_after, dan callback_url.
Seedance tidak menerima secara langsung gambar atau video yang menampilkan wajah manusia asli. Unggah sebagai aset orang-nyata lalu rujuk dengan asset://.

Contoh permintaan

Input frame pertama dan terakhir

Referensi multimodal

Respons

Kolom respons

string
ID tugas publik yang digunakan untuk memantau tugas dan mengunduh video yang telah selesai. task_id berisi nilai yang sama.
string
Status tugas: queued, in_progress, completed, atau failed.
integer
Kemajuan pembuatan dari 0 hingga 100.
integer
Timestamp Unix untuk pembuatan tugas.

Pantau status tugas

Selama pembuatan berlangsung, respons menyertakan kemajuan saat ini:
Ketika tugas selesai, respons menyertakan URL video dan penggunaan token:
Tugas yang gagal mengembalikan detail kesalahan beserta respons tugas:
Saldo yang telah dikonsumsi sebelumnya akan dikembalikan secara otomatis.

Nilai status

Callback tugas

Atur callback_url untuk menerima perubahan status sebagai pengganti polling, atau sebagai pelengkapnya. Flatkey mengirim POST dengan Content-Type: application/json saat tugas berpindah ke in_progress, completed, atau failed. Body-nya persis sama dengan yang dikembalikan GET /v1/videos/{task_id} pada saat itu, termasuk metadata.url dan metadata.last_frame_url untuk tugas yang telah selesai.
Balas dengan status 2xx apa pun dalam 5 detik. Jika tidak, Flatkey mencoba ulang dua kali, setelah 2 dan 8 detik, lalu berhenti. Redirect tidak diikuti. Callback tidak ditandatangani, jadi verifikasi hasilnya dengan memantau tugas sebelum menindaklanjutinya, dan tetap jadikan polling sebagai sumber kebenaran jika ada callback yang hilang.

Unduh video

Endpoint konten mengalirkan data video/mp4, atau video/quicktime jika tugas menggunakan output_format: "mov". Endpoint ini tidak memerlukan token Bearer dan dapat digunakan langsung sebagai sumber <video>.
Endpoint konten hanya berfungsi setelah tugas selesai dan dibatasi kecepatannya berdasarkan IP klien. Perlakukan URL sebagai informasi sensitif karena siapa pun yang memilikinya dapat mengunduh video.

Kesalahan

Kesalahan pada saat permintaan menggunakan amplop kesalahan standar Flatkey:

Contoh menyeluruh

Contoh ini membuat tugas, memantaunya setiap lima detik, dan mengunduh video yang telah selesai. Membutuhkan jq.