EN ZalogujZałóż konto
Startujemy w październiku 2026. Działają konta, katalog modeli, kalkulator i dokumentacja. Studio jest dostępne w podglądzie; generowanie czeka na uruchomienie.

Python - status wideo AI bez ponawiania generacji

Jak odczytywać zadanie wideo w Pythonie: timeout HTTP, limit odpytywania, status końcowy i zapis id. Przykład korzysta ze standardowej biblioteki.

Timeout połączenia mówi o żądaniu sieciowym, nie o losie generacji. Skrypt Pythona powinien pozwalać wznowić odczyt istniejącego zadania. Oddzielenie zlecenia od oczekiwania upraszcza również ręczną kontrolę kosztów.

Przygotowanie i wykonanie

  • Zleć jedną generację i zapisz id odpowiedzi w pliku roboczym lub bazie własnej aplikacji.
  • Przekaż identyfikator do oddzielnej funkcji odczytującej. Dzięki temu restart programu nie tworzy nowego zadania.
  • Ustaw timeout dla pojedynczego HTTP i osobny limit czasu całego oczekiwania. To dwa różne ograniczenia.
  • Obsłuż queued, running, succeeded i failed. Nie traktuj brakującego output przy running jako błędu formatu.
  • Dla problemów sieciowych ponawiaj odczyt GET z odstępem. Nie przenoś tej samej reguły automatycznie na POST.
  • Po zakończeniu pobierz wynik i zapisz informacje o modelu oraz wejściu. Ułatwi to porównanie kolejnych prób.

Kontrola przed publikacją

  • Wznowienie używa poprzedniego id.
  • Pętla ma skończony limit czasu.
  • Program odróżnia błąd HTTP od statusu failed.

Przykładowe wejście API

Poniższy JSON jest treścią żądania POST /v1/generate. Jeśli potrzebna jest referencja, podstaw własny dostępny adres obrazu.

json
{
  "model": "kling-3.0",
  "input": {
    "prompt": "A slow camera movement over a forest valley at sunrise, no text",
    "duration": 5
  }
}
python
import json, os, time
from urllib.request import Request, urlopen

def wait_for_task(task_id):
    for attempt in range(24):
        req = Request(
            "https://jantaris.com/v1/tasks/" + task_id,
            headers={"Authorization": "Bearer " + os.environ["JANTARIS_API_KEY"]})
        with urlopen(req, timeout=20) as response:
            task = json.load(response)
        if task["status"] in ("succeeded", "failed"):
            return task
        time.sleep(5)
    raise TimeoutError("Zachowaj id i sprawdz zadanie pozniej")

Model i koszt

W tym procesie użyj Kling 3.0. Bieżąca stawka jednostkowa: od 0,98 zł za sekundę. Sprawdź cennik i kalkulator dla swoich ustawień. Kredyty nie przepadają, nie ma abonamentu, a nieudane generacje są bez opłat. Poprawny wynik jest płatny również wtedy, gdy nie zdecydujesz się go opublikować.

FAQ

Czy muszę instalować requests?

Nie. Do prostego odczytu wystarczy urllib.request ze standardowej biblioteki Pythona. W większym projekcie wybór klienta HTTP zależy od istniejącego kodu.

Czy mogę sprawdzić wejście przed płatnym uruchomieniem?

Tak. Sprawdź schemat modelu i wycenę w Studio. Test lokalnego demo-API sprawdza obsługę żądania, ale nie potwierdza jakości obrazu ani dźwięku rzeczywistego modelu.

Gdzie znajdę obsługiwane parametry?

Strona modelu i dokumentacja generowania opisują wejścia. Tryb podglądu nie dostarcza rzeczywistej generacji.