[ PROMPT_NODE_24876 ]
video-status
[ SKILL_DOCUMENTATION ]
# 视频状态与轮询
生成视频后,你需要轮询状态直到视频完成。HeyGen 异步处理视频。
## 检查视频状态
### curl
bash
curl -X GET "https://api.heygen.com/v1/video_status.get?video_id=YOUR_VIDEO_ID"
-H "X-Api-Key: $HEYGEN_API_KEY"
### TypeScript
typescript
interface VideoStatusResponse {
error: null | string;
data: {
video_id: string;
status: "pending" | "processing" | "completed" | "failed";
video_url?: string;
thumbnail_url?: string;
duration?: number;
error?: string;
};
}
async function getVideoStatus(videoId: string): Promise {
const response = await fetch(
`https://api.heygen.com/v1/video_status.get?video_id=${videoId}`,
{ headers: { "X-Api-Key": process.env.HEYGEN_API_KEY! } }
);
const json: VideoStatusResponse = await response.json();
if (json.error) {
throw new Error(json.error);
}
return json.data;
}
### Python
python
import requests
import os
def get_video_status(video_id: str) -> dict:
response = requests.get(
f"https://api.heygen.com/v1/video_status.get",
params={"video_id": video_id},
headers={"X-Api-Key": os.environ["HEYGEN_API_KEY"]}
)
data = response.json()
if data.get("error"):
raise Exception(data["error"])
return data["data"]
## 视频状态类型
| 状态 | 描述 |
|--------|-------------|
| `pending` | 视频已进入处理队列 |
| `processing` | 视频正在生成中 |
| `completed` | 视频已准备好下载 |
| `failed` | 视频生成失败 |
## 预计生成时间
视频生成通常需要 **5-15 分钟**,但在高峰负载或脚本较长时可能超过 20 分钟。
| 因素 | 影响 |
|--------|--------|
| 脚本长度 | 脚本越长 = 处理时间显著增加 |
| 分辨率 | 1080p 比 720p 花费时间更长 |
| 数字人复杂度 | 部分数字人渲染速度更快 |
| 队列负载 | 高峰时段可能导致 15-20 分钟以上的等待 |
| 多场景 | 每个场景都会增加处理时间 |
**建议**:
- 为安全起见,设置超时时间为 **15-20 分钟** (900,000-1,200,000 毫秒)
- 对于超过 2 分钟的语音脚本,预计需要 15 分钟以上
- 对于长视频,考虑使用异步模式(保存 video_id,稍后检查)
## 响应格式
### 已完成视频
{
"error": null,
"data": {
"video_id": "abc123",
"status": "completed",
"video_url": "https