跳轉到主要內容
GET
/
v1
/
videos
/
generations
/
{id}
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
}

路徑參數

task_id
string
必填
從建立影片請求中返回的任務 ID。

回應

task_id
string
任務識別碼。
status
string
任務狀態:pendingprocessingcompletedfailed
progress
number
進度百分比 (0-100)。
video_url
string
生成的影片 URL(完成時)。
error
string
錯誤訊息(如果失敗)。
created_at
integer
建立時間戳記。
completed_at
integer
完成時間戳記(完成時)。
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
}

輪詢最佳實踐

  • 每 5-10 秒進行一次輪詢
  • 針對耗時較長的任務實施指數退避 (exponential backoff)
  • 設定最大逾時時間(例如 10 分鐘)
  • 妥善處理 failed 狀態
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")