Dokumentasi
Bina dengan API Seevio
Tambahkan ciri penjanaan video ke dalam produk anda. Pilih model, hantar permintaan dan dapatkan hasilnya melalui pengundian (polling) atau webhook.
Pilih model
Setiap rujukan model menyertakan parameter lengkap, harga dan contohnya yang tersendiri. Anda boleh melengkapkan integrasi terus dari satu halaman model.
Pengesahan
Cipta kunci API dalam papan pemuka. Kunci lengkap hanya akan dipaparkan sekali sahaja. Simpan kunci ini pada pelayan anda dan hantarkannya sebagai token Bearer dalam setiap permintaan.
URL asas
https://api.seevio.aiAuthorization: Bearer sk_live_your_api_key
Content-Type: application/jsonTetapkan pemboleh ubah persekitaran SEEVIO_API_KEY sebelum menjalankan contoh ini. Contoh JavaScript dijalankan pada pelayan anda dengan Node.js; contoh Python menggunakan pakej requests.
Mula cepat
Contoh ini menjana video 720p berdurasi 5 saat menggunakan Seedance 2.5. Buka rujukan model untuk melihat semua mod penjanaan dan had parameter.
curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEVIO_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-5",
"input": {
"prompt": "A cat surfing at sunset, cinematic lighting",
"duration": 5,
"resolution": "720p",
"generation_type": "text-to-video",
"aspect_ratio": "16:9",
"generate_audio": true
}
}'Contoh respons cipta tugasan
Selepas permintaan di atas diterima, API akan mengembalikan respons JSON ini. taskId ialah pengecam tugasan yang digunakan untuk pertanyaan status seterusnya; credits pula ialah jumlah kredit yang dikuntukkan bagi tugasan ini. Respons ini hanya mengesahkan penciptaan tugasan dan tidak bermakna video tersebut sudah sedia. Anda perlu menyemak status tugasan secara berkala atau menggunakan Webhook untuk menerima hasil video.
{
"taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"credits": 100
}Tanya status tugasan
GET https://api.seevio.ai/v1/tasks/{taskId}Gantikan ID contoh dengan taskId yang dikembalikan semasa penciptaan. Pertanyaan hanya mengembalikan tugasan milik pengguna kunci API tersebut; ID yang tidak boleh diakses atau tidak dikenali akan mengembalikan ralat HTTP 404.
Lakukan pengundian (polling) setiap 10–20 saat sebagai permulaan, kurangkan kekerapan jika menerima ralat HTTP 429, dan hentikan apabila status bertukar kepada completed atau failed. Sebaik-baiknya gunakan webhook untuk persekitaran pengeluaran. Setiap contoh kod di bawah melakukan satu pertanyaan.
curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
-H "Authorization: Bearer $SEEVIO_API_KEY"| Status | Penerangan & had |
|---|---|
queued | Diterima dan sedang menunggu untuk dihantar. |
generating | Penjanaan sedang dijalankan. |
completed | Berjaya sepenuhnya. Muat turun data.results sebelum tamat tempoh. |
failed | Gagal sepenuhnya. Periksa failed_reason dan billing_status. |
| Medan | Jenis | Penerangan & had |
|---|---|---|
id | string | Pengecam tugasan. Ini ialah taskId daripada respons cipta. |
created_at | number | Masa penciptaan tugasan dalam saat Unix. |
model | string | ID model awam yang digunakan untuk tugasan ini. |
billing_status | string | reserved, charged, refunded atau refund_failed. |
credits | number | Kredit yang ditempah untuk tugasan ini. Nilai ini dikekalkan selepas bayaran balik; periksa billing_status untuk menentukan hasil pengebilan. |
failed_reason | string | null | Punca kegagalan bagi tugasan yang gagal; bernilai null jika sebaliknya. Respons pertanyaan yang gagal mengabaikan bahagian data. |
data | object | Ada pada pertanyaan tugasan yang tidak gagal. Mengandungi butiran output dan pemprosesan. |
data.results | string[] | Tatasusunan URL video. Kosong sehinggalah tugasan selesai atau selepas video tamat tempoh. |
data.video_expires_at | string | null | Masa tamat tempoh video sebagai penanda masa ISO 8601, atau null sebelum ia tersedia. Simpan hasil sebelum waktu ini. |
data.last_frame_url | string | null | URL bingkai terakhir apabila diminta dan tersedia, jika tidak nilainya adalah null. |
data.processing_time | number | null | Durasi pemprosesan penyedia dalam saat apabila tersedia, jika tidak nilainya adalah null. |
Tugasan selesai: respons pertanyaan dengan hasil video
Apabila pertanyaan mengembalikan status=completed, ini bermakna penjanaan video telah selesai. Baca URL video daripada data.results dan muat turun video tersebut sebelum data.video_expires_at. billing_status=charged menunjukkan bahawa kredit yang diketepikan telah ditolak.
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1788652800,
"model": "seedance-2-5",
"status": "completed",
"billing_status": "charged",
"credits": 100,
"failed_reason": null,
"data": {
"results": [
"https://cdn.seevio.ai/api/videos/example.mp4"
],
"video_expires_at": "2026-09-07T00:00:00Z",
"last_frame_url": null,
"processing_time": 48
}
}Tugasan gagal: respons pertanyaan dengan butiran kegagalan dan pengebilan
Apabila pertanyaan mengembalikan status=failed, ini bermakna penjanaan telah tamat tetapi gagal. Rujuk failed_reason untuk mengetahui punca kegagalan dan billing_status untuk status bayaran balik. Dalam contoh ini, refunded bermakna kredit telah dikembalikan semula. credits mengekalkan amaun asal yang diketepikan, dan respons ini tidak mengandungi data.
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1788652800,
"model": "seedance-2-5",
"status": "failed",
"billing_status": "refunded",
"credits": 100,
"failed_reason": "provider_failed"
}Webhook
Untuk integrasi pengeluaran, sediakan callback_url semasa mencipta tugasan. Setiap rujukan model menyertakan data muatan (payload) panggilan semula dan contoh penerima.
Tetapkan callback_url dalam permintaan cipta untuk menerima POST JSON apabila tugasan selesai atau gagal. Kembalikan respons 2xx dalam masa 15 saat. Penghantaran yang gagal akan dicuba semula; proses penghantaran berulang secara idempotensi menggunakan ID tugasan.
Pangkalan akhir (endpoint) panggilan balik anda mesti menerima permintaan POST dengan badan permintaan JSON (Content-Type: application/json).
Cipta tugasan dengan panggilan semula
curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEVIO_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2-5",
"input": {
"prompt": "A cat surfing at sunset, cinematic lighting",
"duration": 5,
"resolution": "720p",
"generation_type": "text-to-video",
"aspect_ratio": "16:9",
"generate_audio": true
},
"callback_url": "https://example.com/webhooks/seevio"
}'Muatan webhook berbeza daripada respons pertanyaan tugasan: ia mengabaikan billing_status dan credits; butiran kegagalan berada di dalam data.failed_reason dan data.credits_refunded. Nilai created_at webhook ialah masa penciptaan acara dalam saat Unix.
Tugasan selesai: muatan panggilan balik yang berjaya
Apabila penjanaan berjaya, panggilan balik akan mengandungi status=completed. Gunakan id untuk mengenal pasti tugasan dan data.results untuk mendapatkan URL video. Muat turun dan simpan keputusan sebelum data.video_expires_at.
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1788652800,
"model": "seedance-2-5",
"status": "completed",
"data": {
"results": [
"https://cdn.seevio.ai/api/videos/example.mp4"
],
"video_expires_at": "2026-09-07T00:00:00Z",
"last_frame_url": null,
"processing_time": 48
}
}Tugasan gagal: muatan panggilan balik yang gagal
Apabila penjanaan gagal, panggilan balik akan mengandungi status=failed. Gunakan id untuk mengenal pasti tugasan, data.failed_reason untuk mengetahui punca kegagalan dan data.credits_refunded untuk jumlah kredit yang dikembalikan.
{
"id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
"created_at": 1788652800,
"model": "seedance-2-5",
"status": "failed",
"data": {
"failed_reason": "provider_failed",
"credits_refunded": 100
}
}Contoh penerima
export async function POST(request: Request) {
const callbackData = await request.json();
if (callbackData.status === "completed") {
const videoUrls = callbackData.data.results;
// Save the video URLs and mark this task as completed in your application.
console.log(callbackData.id, videoUrls);
}
if (callbackData.status === "failed") {
const { failed_reason, credits_refunded } = callbackData.data;
// Record the failure reason and refunded credits for this task.
console.error(callbackData.id, failed_reason, credits_refunded);
}
return new Response(null, { status: 200 });
}Contoh Next.js ini membaca badan panggilan balik JSON dan mengendalikan tugasan yang selesai serta gagal secara terus. Tambahkan fungsi persistensi dan penyahduplikasian ID tugasan untuk aplikasi anda; masukkan kerja yang lambat ke dalam giliran (queue) sebelum mengesahkan panggilan balik.
Ralat
Ralat HTTP mengandungi objek ralat dengan kod dan mesej. Tugasan yang berjaya diterima masih boleh gagal kemudian; tanya status tugasan atau kendalikan panggilan semula kegagalannya.
{
"error": {
"code": "invalid_request",
"message": "input.prompt is required."
}
}| HTTP | Medan | Tindakan yang perlu diambil |
|---|---|---|
| 400 | invalid_request | Betulkan fail JSON, prom yang hilang, julat parameter atau URL media sebelum mencuba semula. |
| 401 | invalid_api_key | Semak token Bearer dan pastikan kunci API adalah aktif. |
| 402 | insufficient_credits | Tambah kredit atau kurangkan kos tugasan. Respons mungkin menyertakan amaun yang diperlukan dan amaun yang tersedia. |
| 403 | forbidden | Sila semak sekatan peringkat akaun yang dinyatakan dalam mesej ralat. |
| 404 | not_found | Semak ID tugasan dan pastikan kunci tersebut milik pengguna tugasan berkenaan. |
| 429 | rate_limited | Tunggu selang masa Retry-After sebelum mencuba semula. |
| 500 | internal_error | Periksa mesej ralat dan log API. Cuba semula dengan berhati-hati; menghantar semula permintaan cipta boleh mencipta satu lagi tugasan yang boleh dicaj. |