Parámetros de ruta
El ID de la tarea devuelto por la solicitud de creación de video.
Respuesta
Identificador de la tarea.
Estado de la tarea: pending, processing, completed, failed.
Porcentaje de progreso (0-100).
URL del video generado (cuando se completa).
Mensaje de error (si falla).
Marca de tiempo de creación.
Marca de tiempo de finalización (cuando termina).
curl "https://api.lemondata.cc/v1/videos/generations/video_abc123" \
-H "Authorization: Bearer sk-your-api-key"
{
"task_id": "video_abc123",
"status": "pending",
"progress": 0,
"model": "kling-v2.6-pro",
"created_at": 1706000000
}
Mejores prácticas de polling
- Realizar polling cada 5-10 segundos
- Implementar exponential backoff para tareas largas
- Establecer un tiempo de espera máximo (ej. 10 minutos)
- Gestionar el estado
failed de forma adecuada
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.lemondata.cc/v1/videos/generations/{task_id}",
headers={"Authorization": "Bearer sk-your-api-key"}
)
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")