视频任务查询(Video Task Query)
GET https://ai.amaxsmp.com/v1/video/generations/{task_id}查询已提交视频任务的状态和结果。建议使用提交任务时的 API Key;只能查询当前用户所属的任务。
请求示例
cURL
将 task_example 替换为视频生成接口返回的任务 ID。
curl https://ai.amaxsmp.com/v1/video/generations/task_example \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"请求参数
| 参数 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
task_id | 路径 | string | 是 | 提交接口返回的任务 ID |
请求不需要 JSON 请求体。
响应示例
通用任务响应
以下仅展示生成成功后的主要字段,完整响应还可能包含时间、模型属性等信息。
{
"code": "success",
"message": "",
"data": {
"task_id": "task_example",
"status": "SUCCESS",
"progress": "100%",
"result_url": "https://example.com/generated.mp4",
"fail_reason": ""
}
}code: "success" 表示查询请求成功,视频是否完成要看 data.status。
Veo 实时查询响应
部分 Veo 任务返回以下格式,结果地址字段为 url,状态使用小写值;实时查询未返回该格式时,仍可能使用通用任务响应。
{
"code": "success",
"message": "",
"data": {
"task_id": "task_example",
"status": "succeeded",
"url": "https://example.com/generated.mp4",
"format": "mp4",
"metadata": null,
"error": null
}
}任务状态
| 通用状态 | Veo 简化状态 | 含义 | 后续操作 |
|---|---|---|---|
NOT_START、SUBMITTED、QUEUED | queued、processing | 等待开始或排队中 | 继续查询 |
IN_PROGRESS | processing | 正在生成 | 继续查询 |
SUCCESS | succeeded | 生成成功 | 获取结果地址 |
FAILURE | failed | 生成失败 | 停止轮询,检查错误信息 |
progress 在通用响应中是类似 "50%" 的字符串,属于参考进度,不代表准确剩余时间;部分响应不包含该字段。
Python 轮询示例
安装依赖:pip install requests。示例每 5 秒查询一次,最多等待 20 分钟。达到等待上限只会停止本地查询,不会取消服务器上的任务,可以保留任务 ID 稍后继续查询。
import time
import requests
task_id = "task_example"
headers = {"Authorization": "Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
deadline = time.monotonic() + 20 * 60
while time.monotonic() < deadline:
response = requests.get(
f"https://ai.amaxsmp.com/v1/video/generations/{task_id}",
headers=headers,
timeout=60,
)
response.raise_for_status()
payload = response.json()
if payload.get("code") not in (None, "success"):
raise RuntimeError(payload)
task = payload.get("data") or payload
status = str(task.get("status", "")).lower()
if status in {"success", "succeeded", "completed"}:
video_url = task.get("result_url") or task.get("url")
if not video_url:
raise RuntimeError("Task succeeded but no result URL was returned")
print(video_url)
break
if status in {"failure", "failed"}:
raise RuntimeError(task.get("fail_reason") or task.get("error") or task)
if not status:
raise RuntimeError(payload)
time.sleep(5)
else:
raise TimeoutError(f"Still waiting for task {task_id}; query it again later")查询遇到网络错误或限流时,保留任务 ID,稍后重试查询;不应自动重新提交视频生成请求,以免创建重复任务。
获取视频
任务生成完成后,有两种方式获取视频:调用下载端点由网关代理返回文件,或从查询响应获取视频地址。
方式一:下载端点
curl -L --fail \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
"https://ai.amaxsmp.com/v1/videos/task_example/content" \
-o generated.mp4将 task_example 替换为实际任务 ID。仅当任务已成功时可下载,成功响应为视频二进制流。完整参数、Python 示例及错误说明见视频下载接口。
方式二:结果地址
读取 data.result_url,没有该字段时读取 data.url。若地址是可直接访问的文件链接,可以在浏览器打开,或下载到本地:
curl -L --fail "https://example.com/generated.mp4" -o generated.mp4将示例 URL 替换为实际返回地址。结果链接可能有有效期,建议及时保存。
如果结果地址指向 /v1/videos/{task_id}/content,仍需按下载接口携带鉴权信息。下载端点返回 JSON 或文件无法播放时,请参阅视频下载接口的网关说明。
常见错误
| 错误码 | 说明 |
|---|---|
task_not_exist | 任务不存在,或不属于当前用户;核对任务 ID 和 API Key |
get_task_failed | 任务查询失败,可稍后重试 |
USER_ASSET_CAPACITY_FULL | 资产空间不足,清理空间后再查询 |
USER_ASSET_ARCHIVE_FAILED | 生成结果归档失败,保留任务 ID,稍后重试或联系支持 |