北京时间10月1日凌晨,美国人工智能研究公司OpenAI发布了新一代视频生成模型——Sora 2。与第一代相比,Sora 2生成的视频更加逼真,不仅首次支持与画面匹配的AI音频生成,用户还可以利用“Cameo(客串)”功能,将自己和朋友置入AI生成的场景中。你的下一个爆款视频,或许就源于现在的一次尝试!
然而,Sora 2的火爆也带来两大现实难题:
- 网络限制:国内用户访问困难,无法第一时间体验其强大功能。
- 高昂成本:可以预见,未来官方渠道的使用价格将非常昂贵。
现在,这些问题有了完美解决方案。 GO AI开放平台已在第一时间无缝接入OpenAI Sora 2 模型!
以下是对接教程:
一、模型与对接基础信息
1. Sora - 2 模型简介
Sora - 2 是 OpenAI 推出的新一代视频生成模型,在 Go API平台已完成适配,支持文生视频(T2V)、图生视频(I2V)、Cameo 客串功能及音视频同步生成四大核心能力,可生成最高 1080P 分辨率、30 秒时长的高逼真视频,物理运动模拟、场景过渡自然度及音频匹配度较初代显著提升,适用于创意创作、内容营销、虚拟场景构建等场景。
2. 核心对接信息
项目 | 具体内容 | 说明 |
---|---|---|
Base URL | GO AI | 所有 Sora - 2 接口请求的基础地址,需与接口路径拼接为完整请求 URL |
核心接口路径 | 文生视频:/sora2/submit/video/t2v ;图生视频:/sora2/submit/video/i2v ;Cameo 功能:/sora2/submit/video/cameo | 不同功能对应不同子路径,需根据业务场景选择 |
请求方法 | POST | 仅支持 POST 方法提交任务,不支持 GET、PUT 等其他请求方式 |
数据格式 | application/json | 请求体与响应体均为 JSON 格式,需在 Header 中明确指定 Content - Type |
支持核心参数 | 视频分辨率、时长、帧率、Cameo 身份验证、音频同步强度等 | 关键参数含枚举限制,需严格遵循格式要求(详见下文“参数说明”) |
二、前置准备
1. 获取 Go API 平台 Token
- 注册与登录:访问 Go AI 官网,完成账号注册(新用户注册即赠 0.2 美元额度,支持“1.1 元兑换 1 美元”限时优惠,可降低初期对接成本);
- 生成 Token:登录后进入控制台 → “API 密钥管理” → 点击“生成 Sora - 2 专属 Token”,复制生成的字符串(格式为
sk - sora2 - xxxx - xxxx - xxxx
),该 Token 为接口请求的核心身份凭证; - Token 安全:避免在前端代码、公开文档中暴露 Token,若怀疑泄露,需立即在控制台执行“重置 Token”操作。
2. 环境依赖配置
根据开发语言选择对应的依赖库,确保环境支持 JSON 解析与 HTTP 请求发送:
- Python:安装
requests
库(pip install requests
); - JavaScript(Node.js):安装
axios
库(npm install axios
); - Shell:确保系统已安装
curl
工具(Linux/macOS 通常自带,Windows 需安装 cURL 客户端); - Java:引入
OkHttp3
或Spring Web
依赖; - Go:使用标准库
net/http
及encoding/json
。
三、核心接口详解(含多语言请求示例)
1. 文生视频接口(T2V):/sora2/submit/video/t2v
1.1 接口功能
通过文本提示词(Prompt)生成视频,支持自定义分辨率、时长、帧率及音频同步强度,生成的视频自动匹配与画面场景一致的音频(如“雨天场景”自动生成雨声、雷声)。
1.2 必选参数说明
参数名 | 类型 | 枚举/约束值 | 示例值 | 说明 |
---|---|---|---|---|
prompt | string | 无(需清晰描述场景、主体、动作、风格) | “夕阳下的海滩,海浪拍打礁石,海鸥低空飞行” | 提示词精度直接影响生成效果,建议补充细节(如“电影级画质、8K 纹理”) |
resolution | string | “1080p”, “720p”, “480p” | “720p” | 视频分辨率,越高生成耗时越长、消耗额度越多 |
duration | integer | 5, 10, 15, 20, 25, 30 | 10 | 视频时长(单位:秒),最大支持 30 秒 |
frame_rate | integer | 24, 30 | 24 | 视频帧率(单位:FPS),24 FPS 为电影级标准,30 FPS 更适合短视频场景 |
audio_sync_strength | float | 0.1~1.0 | 0.8 | 音频与画面同步强度,值越高音频与场景匹配度越高(0.8 为推荐值) |
1.3 多语言请求示例
示例 1:Python(requests)
import requests
import json
# 1. 配置基础信息
base_url = "https://api.goaigc.vip"
t2v_path = "/sora2/submit/video/t2v"
full_url = f"{base_url}{t2v_path}"
token = "sk - sora2 - xxxx - xxxx - xxxx" # 替换为你的实际 Token
# 2. 构造请求头
headers = {
"Authorization": f"Bearer {token}", # 固定格式:Bearer + 空格 + Token
"Content-Type": "application/json",
"Accept": "application/json"
}
# 3. 构造请求体
payload = {
"prompt": "夕阳下的海滩,海浪拍打礁石,海鸥低空飞行,电影级画质,细腻纹理",
"resolution": "720p",
"duration": 10,
"frame_rate": 24,
"audio_sync_strength": 0.8
}
# 4. 发送请求并解析响应
try:
response = requests.post(full_url, headers=headers, data=json.dumps(payload))
response.raise_for_status() # 抛出 HTTP 错误(如 401、400)
result = response.json()
print("文生视频任务提交成功:")
print(f"任务 ID:{result['data']['task_id']}")
print(f"任务状态:{result['data']['task_status']}")
except requests.exceptions.RequestException as e:
print(f"请求失败:{e}")
if response:
print(f"错误响应:{response.json()}")
示例 2:Shell(curl)
#!/bin/bash
# 配置参数
BASE_URL="https://api.goaigc.vip"
T2V_PATH="/sora2/submit/video/t2v"
FULL_URL="${BASE_URL}${T2V_PATH}"
TOKEN="sk - sora2 - xxxx - xxxx - xxxx" # 替换为实际 Token
# 发送 POST 请求
curl --location --request POST "${FULL_URL}" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data-raw '{
"prompt": "夕阳下的海滩,海浪拍打礁石,海鸥低空飞行,电影级画质,细腻纹理",
"resolution": "720p",
"duration": 10,
"frame_rate": 24,
"audio_sync_strength": 0.8
}'
示例 3:JavaScript(Node.js + axios)
const axios = require('axios');
// 配置基础信息
const baseUrl = "https://api.goaigc.vip";
const t2vPath = "/sora2/submit/video/t2v";
const fullUrl = `${baseUrl}${t2vPath}`;
const token = "sk - sora2 - xxxx - xxxx - xxxx"; // 替换为实际 Token
// 构造请求配置
const config = {
method: 'post',
url: fullUrl,
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json",
"Accept": "application/json"
},
data: {
"prompt": "夕阳下的海滩,海浪拍打礁石,海鸥低空飞行,电影级画质,细腻纹理",
"resolution": "720p",
"duration": 10,
"frame_rate": 24,
"audio_sync_strength": 0.8
}
};
// 发送请求
axios(config)
.then(response => {
console.log("文生视频任务提交成功:");
console.log(`任务 ID:${response.data.data.task_id}`);
console.log(`任务状态:${response.data.data.task_status}`);
})
.catch(error => {
console.log("请求失败:", error.response?.data || error.message);
});
2. 图生视频接口(I2V):/sora2/submit/video/i2v
2.1 接口功能
基于输入的参考图片 URL 生成视频,保持图片主体风格与元素一致性(如“静态风景图”生成动态镜头切换的视频),支持与文生视频相同的分辨率、时长等参数配置。
2.2 额外必选参数
参数名 | 类型 | 约束值 | 示例值 | 说明 |
---|---|---|---|---|
image_url | string | 需为公开可访问的 HTTP/HTTPS 图片 URL | “https://example.com/beach.jpg” | 参考图片 URL,建议分辨率≥720p,格式支持 JPG、PNG、WEBP |
2.3 请求示例(Python)
import requests
import json
base_url = "https://api.goaigc.vip"
i2v_path = "/sora2/submit/video/i2v"
full_url = f"{base_url}{i2v_path}"
token = "sk - sora2 - xxxx - xxxx - xxxx"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
payload = {
"prompt": "基于参考图片,生成动态镜头:镜头从海滩远景缓慢推近至礁石,海浪持续拍打", # 补充镜头描述
"image_url": "https://example.com/beach.jpg", # 替换为实际参考图片 URL
"resolution": "720p",
"duration": 15,
"frame_rate": 24,
"audio_sync_strength": 0.9
}
response = requests.post(full_url, headers=headers, data=json.dumps(payload))
print(response.json())
3. Cameo 客串功能接口:/sora2/submit/video/cameo
3.1 接口功能
将用户/他人的形象(通过身份验证视频、音频)置入 AI 生成的场景中(如“将用户形象置入演唱会舞台,手持麦克风演唱”),支持自定义形象动作、服饰风格。
3.2 核心必选参数(新增参数)
参数名 | 类型 | 约束值 | 示例值 | 说明 |
---|---|---|---|---|
cameo_prompt | string | 描述 Cameo 形象的动作、服饰、场景互动 | “用户穿着黑色礼服,在星空下的草坪上跳舞” | 需明确“形象主体”与“场景的互动关系” |
verify_video_url | string | 公开可访问的身份验证视频 URL(10~30 秒) | “https://example.com/verify_video.mp4” | 视频需包含清晰人脸、完整动作(如“正面微笑+转头”),用于形象提取 |
verify_audio_url | string | 公开可访问的身份验证音频 URL(5~10 秒) | “https://example.com/verify_audio.mp3” | 音频需为验证视频对应的人声(如“自我介绍”),用于音频匹配 |
cameo_permission | boolean | true/false | true | 是否允许该 Cameo 形象被后续任务复用(true 为允许,false 为单次使用) |
3.3 请求示例(Shell)
BASE_URL="https://api.goaigc.vip"
CAMEO_PATH="/sora2/submit/video/cameo"
FULL_URL="${BASE_URL}${CAMEO_PATH}"
TOKEN="sk - sora2 - xxxx - xxxx - xxxx"
curl --location --request POST "${FULL_URL}" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
--data-raw '{
"cameo_prompt": "用户穿着黑色礼服,在星空下的草坪上跳舞,周围有萤火虫飞舞",
"verify_video_url": "https://example.com/verify_video.mp4",
"verify_audio_url": "https://example.com/verify_audio.mp3",
"cameo_permission": true,
"resolution": "1080p",
"duration": 20,
"frame_rate": 30,
"audio_sync_strength": 1.0
}'
四、响应解析与错误处理
1. 成功响应(HTTP 200)
所有接口提交成功后,均返回包含任务 ID、任务状态的 JSON 响应,可通过任务 ID 查询后续进度或获取生成结果。
成功响应示例
{
"code": "success",
"message": "任务提交成功",
"request_id": "req - sora2 - 20251006123456 - abcde", // 用于问题排查的请求唯一标识
"data": {
"task_id": "task - sora2 - 20251006123456 - fghij", // 核心任务 ID,需保存
"task_status": "pending", // 任务状态:pending(待处理)、processing(处理中)、completed(完成)、failed(失败)
"created_at": 1728194096, // 任务创建时间(时间戳,单位:秒)
"estimated_time": 60 // 预计处理时间(单位:秒,仅供参考)
}
}
2. 常见错误响应(非 200 状态码)
HTTP 状态码 | 错误码 | 可能原因 | 解决方案 |
---|---|---|---|
401 | unauthorized | 1. Token 缺失;2. Token 过期/无效;3. 格式错误 | 1. 检查 Header 是否携带 Authorization;2. 重新生成 Token;3. 确认格式为“Bearer + 空格 + Token” |
400 | invalid_param | 1. 缺少必选参数(如 prompt、image_url);2. 参数值超出枚举范围(如 resolution 传“2K”) | 1. 核对“必选参数说明”补全参数;2. 修正参数值为枚举内有效值 |
429 | rate_limit | 超出平台限流额度(默认单 Token 10 次/分钟) | 1. 降低请求频率,添加重试机制(间隔≥6 秒);2. 联系客服提升额度 |
403 | permission_deny | Cameo 身份验证失败(如视频人脸不清晰) | 1. 重新录制验证视频(确保人脸清晰、光线充足);2. 检查 URL 可访问性 |
500 | server_error | 平台服务临时异常 | 1. 记录 request_id;2. 10 秒后重试;3. 失败则联系客服反馈 |
五、高级功能:任务进度查询与结果获取
1. 任务进度查询接口
1.1 接口信息
- 路径:
/sora2/query/task
- 方法:GET
- 必选参数:
task_id
(通过提交接口返回的data.task_id
获取)
1.2 请求示例(Python)
task_id = "task - sora2 - 20251006123456 - fghij"
query_url = f"https://api.goaigc.vip/sora2/query/task?task_id={task_id}"
headers = {
"Authorization": f"Bearer {token}",
"Accept": "application/json"
}
response = requests.get(query_url, headers=headers)
result = response.json()
print(f"任务进度:{result['data']['progress']}%") # 进度百分比(0~100)
print(f"当前状态:{result['data']['task_status']}")
if result['data']['task_status'] == "completed":
print(f"视频下载 URL:{result['data']['video_url']}") # 任务完成后返回下载链接(24 小时有效)
print(f"音频下载 URL:{result['data']['audio_url']}") # 单独音频文件下载链接
六、注意事项
- 额度管理:Sora - 2 生成成本高于普通模型(如 720p/10 秒视频约消耗 0.05 美元),可在 Go API 控制台“额度管理”查看剩余额度,避免任务提交失败;
- 内容合规:禁止生成涉政、暴力、色情等违规内容,平台会对 Prompt 及生成结果进行审核,违规将冻结 Token 权限;
- URL 有效性:
image_url
、verify_video_url
等需为公开可访问(无密码保护、无防盗链),建议使用阿里云 OSS、AWS S3 等对象存储服务托管资源; - 性能优化:批量提交任务时,建议通过“任务进度查询”接口确认前一任务完成后再提交下一个,避免触发限流;
- 版本兼容:Go AI 平台会定期更新 Sora - 2 接口,若需升级模型版本,可在控制台“模型管理”切换至“sora2 - latest”(最新稳定版)。