Video & materi

Dapatkan Status Video

Mengambil status dan hasil dari tugas pembuatan video

GET
/v1/tasks/{id}

Parameter Path

idstringpathwajib

Identifier tugas asinkron kanonik. Saat id dan task_id sama-sama ada, perlakukan keduanya sebagai identitas tugas yang sama.

Jika respons create mengembalikan poll_url, panggil URL tersebut secara persis. Saat URL itu mengarah ke /v1/tasks/{id}, perlakukan itu sebagai endpoint status tetap yang kanonik.

Task publik yang kedaluwarsa atau tidak tersedia dapat mengembalikan 404 async_task_not_found. Jika kepemilikan task untuk API key saat ini tidak dapat dipastikan, responsnya adalah 403 task_not_owned.

Respons

Field hasil, error, timestamp, dan model dikembalikan jika tersedia untuk task.

idstring

Identifier tugas asinkron kanonik.

task_idstring

Alias identifier tugas asinkron.

poll_urlstring

URL polling prioritas yang dikembalikan oleh respons create.

billing_transaction_idstring

ID transaksi billing TokenLab saat settlement sudah selesai. Ini adalah identitas transaksi untuk dashboard/rekonsiliasi dan terpisah dari id / task_id async.

statusstring

Status tugas: pending, processing, completed, failed.

progressnumber

Nilai progres opsional. Hanya dikembalikan saat nilai progres nyata tersedia; gunakan status untuk menentukan penyelesaian.

video_urlstring

URL dari video yang dihasilkan (saat selesai).

videoobject

Objek video tunggal dengan url, duration, width, dan height saat tersedia.

videosarray

Array video saat tugas pembuatan mengembalikan lebih dari satu output.

errorstring | object

Pesan kesalahan (jika gagal).

createdinteger

Timestamp pembuatan.

updatedinteger

Timestamp pembaruan terakhir.

modelstring

Model yang digunakan oleh tugas.

Permintaan

curl "https://api.tokenlab.sh/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" \
  -H "Authorization: Bearer sk-your-api-key"

Respons

{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "pending",
  "model": "veo3.1",
  "created": 1706000000,
  "updated": 1706000000
}

Praktik Terbaik Polling

  • Lakukan polling setiap 5-10 detik
  • Terapkan exponential backoff untuk tugas yang lama
  • Atur batas waktu maksimum (misalnya, 10 menit)
  • Tangani status failed dengan baik
import requests
import time

def wait_for_video(task_id, max_wait=600, interval=5):
    """Wait for video with timeout."""
    start = time.time()

    while time.time() - start < max_wait:
        response = requests.get(
            f"https://api.tokenlab.sh/v1/tasks/{task_id}",
            headers={"Authorization": "Bearer sk-your-api-key"}
        )
        response.raise_for_status()
        data = response.json()

        if data["status"] == "completed":
            return data["video_url"]
        elif data["status"] == "failed":
            raise Exception(data.get("error", "Video generation failed"))

        time.sleep(interval)

    raise TimeoutError("Video generation timed out")

Otorisasi

BearerAuth
AuthorizationBearer <token>

Autentikasi API Key. Buat atau kelola API key di Dashboard > API > API Keys.

Lokasi: header

Parameter path

id*string

ID tugas asinkron yang dikembalikan oleh id / task_id, atau disematkan dalam poll_url

Respons

application/json

application/json

application/json

application/json