Nexora AI 视频生成API

通过API接入Nexora强大的AI视频生成能力,将文生视频、图生视频功能集成到你自己的应用、产品或工作流中。

API接口仅对团队版用户开放,升级团队版后即可获取API密钥调用。

鉴权说明

所有API请求需要在请求头中携带你的API密钥进行鉴权:

Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

请妥善保管你的API密钥,不要泄露给他人,密钥可以在个人中心的API密钥页面获取和重置。

调用限制

  • 团队版用户默认QPS限制为10次/秒
  • 每次生成任务消耗1个API额度(对应网页端10生成额度)
  • 生成的视频文件保留7天,请及时下载
  • 支持最长60秒4K 60fps视频生成

创建生成任务

POST https://api.nexora.ai/v1/videos/generate

提交一个视频生成任务,返回任务ID用于查询状态。

请求参数

参数名 类型 说明
prompt必填 string 视频描述提示词,长度10-500字符
duration必填 integer 视频时长,3-60秒
resolution string 分辨率,可选720p/1080p/4k,默认1080p
fps integer 帧率,24/30/60,默认30
camera_move string 镜头运动:static/zoom-in/zoom-out/pan-left/pan-right/orbit,默认static

返回示例

{
  "code": 0,
  "message": "success",
  "data": {
    "task_id": "task_1234567890abcdef",
    "estimated_time": 30
  }
}

查询任务状态

GET https://api.nexora.ai/v1/videos/task/{task_id}

根据任务ID查询生成进度和结果,生成完成后返回视频下载地址。

返回示例

{
  "code": 0,
  "message": "success",
  "data": {
    "task_id": "task_1234567890abcdef",
    "status": "success", // pending/processing/success/failed
    "progress": 100,
    "video_url": "https://cdn.nexora.ai/videos/xxx.mp4",
    "cover_url": "https://cdn.nexora.ai/covers/xxx.jpg",
    "duration": 5
  }
}

获取视频列表

GET https://api.nexora.ai/v1/videos

分页获取你账号下所有生成的视频列表。

错误码说明

错误码 说明
401API密钥无效或已过期
402额度不足,请充值
403权限不足,未开通API权限
429请求频率超限,请降低请求速度
500服务器内部错误,请稍后重试

Python调用示例

import requests

API_KEY = "sk-你的API密钥"
headers = {"Authorization": f"Bearer {API_KEY}"}

# 创建生成任务
resp = requests.post(
    "https://api.nexora.ai/v1/videos/generate",
    headers=headers,
    json={
        "prompt": "cinematic shot of a cyberpunk city at night, neon lights, flying cars, 4k",
        "duration": 5,
        "resolution": "1080p",
        "fps": 30
    }
)
task_id = resp.json()["data"]["task_id"]
print(f"任务已提交:{task_id}")

# 轮询查询结果
import time
while True:
    resp = requests.get(f"https://api.nexora.ai/v1/videos/task/{task_id}", headers=headers)
    data = resp.json()["data"]
    if data["status"] == "success":
        print(f"生成完成!视频地址:{data['video_url']}")
        break
    elif data["status"] == "failed":
        print("生成失败")
        break
    print(f"生成中:{data['progress']}%")
    time.sleep(2)