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.
{
"model": "kling-3.0",
"input": {
"prompt": "A slow camera movement over a forest valley at sunrise, no text",
"duration": 5
}
}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.












