cURL
curl --request GET \ --url https://llm.ai-nebula.com/v1/video/generations/{task_id} \ --header 'Authorization: <authorization>'
succeeded
failed
Bearer sk-xxxxxxxxxx
queued
in_progress
{ "task_id": "video_69095b4ce0048190893a01510c0c98b0", "status": "queued", "format": "mp4" }
{ "task_id": "video_69095b4ce0048190893a01510c0c98b0", "status": "in_progress", "format": "mp4" }
{ "task_id": "video_69095b4ce0048190893a01510c0c98b0", "status": "succeeded", "format": "mp4", "url": "https://nebula-ads.oss-cn-guangzhou.aliyuncs.com/2025/11/18/abc123/video.mp4" }
{ "task_id": "video_69095b4ce0048190893a01510c0c98b0", "status": "failed", "format": "mp4", "error": { "code": 400, "message": "提示词包含不当内容" } }
curl -X GET "https://llm.ai-nebula.com/v1/video/generations/video_69095b4ce0048190893a01510c0c98b0" \ -H "Authorization: Bearer sk-xxxxxxxxxx"
import requests import time def poll_task_status(task_id, api_key, max_wait_time=300): """轮询任务状态直到完成""" url = f"https://llm.ai-nebula.com/v1/video/generations/{task_id}" headers = {"Authorization": f"Bearer {api_key}"} start_time = time.time() while True: response = requests.get(url, headers=headers) data = response.json() status = data.get("status") print(f"当前状态: {status}") if status == "succeeded": video_url = data.get("url") print(f"✅ 任务完成!视频URL: {video_url}") return video_url elif status == "failed": error_msg = data.get("error", {}).get("message", "未知错误") print(f"❌ 任务失败: {error_msg}") return None # 检查超时 if time.time() - start_time > max_wait_time: print("⏰ 等待超时") return None # 等待5秒后再次查询 time.sleep(5)
async function pollTaskStatus(taskId, apiKey, maxWaitTime = 300000) { const url = `https://llm.ai-nebula.com/v1/video/generations/${taskId}`; const headers = { 'Authorization': `Bearer ${apiKey}` }; const startTime = Date.now(); while (true) { const response = await fetch(url, { headers }); const data = await response.json(); const status = data.status; console.log(`当前状态: ${status}`); if (status === 'succeeded') { const videoUrl = data.url; console.log(`✅ 任务完成!视频URL: ${videoUrl}`); return videoUrl; } else if (status === 'failed') { const errorMsg = data.error?.message || '未知错误'; console.error(`❌ 任务失败: ${errorMsg}`); throw new Error(errorMsg); } // 检查超时 if (Date.now() - startTime > maxWaitTime) { throw new Error('等待超时'); } // 等待5秒后再次查询 await new Promise(resolve => setTimeout(resolve, 5000)); } }