https://api.yelinai.com/v1/videos调用方式: 三步骤(创建任务 → 查询状态 → 获取视频)优势: 更稳定 | 任务队列 | 支持长时任务
重要差异 - 图生视频方式不同异步API的图生视频与同步API有重大区别:
| 特性 | 同步API | 异步API |
|---|---|---|
| 图片上传 | 支持URL或Base64 | 仅支持本地文件 |
| 请求格式 | JSON | multipart/form-data |
为什么选择异步 API?
更高稳定性
基于任务队列,避免长连接超时问题失败不扣费 ⭐
重大优势:任何原因失败都不扣费- ✓ 内容违规 → 不扣费
- ✓ 队列超时 → 不扣费
- ✓ 生成失败 → 不扣费
灵活轮询
可随时查询任务状态和进度参数化控制
分辨率和时长通过参数指定,更灵活同步 vs 异步对比
| 特性 | 同步 API | 异步 API(推荐) |
|---|---|---|
| 调用方式 | 单次请求等待完成 | 创建任务后轮询查询 |
| 端点 | /v1/chat/completions | /v1/videos |
| 分辨率控制 | 模型名(sora_video2-landscape) | 参数(size: "1280x720") |
| 时长控制 | 模型名(sora_video2-15s) | 参数(seconds: "15") |
| 图生视频 | 支持图片URL | 仅支持本地文件上传 |
| 失败扣费 | 请求成功但生成失败会扣费 | ⭐ 失败不扣费 |
| 稳定性 | 依赖长连接 | ⭐⭐⭐⭐⭐ 更稳定 |
| 进度查看 | 流式输出 | 轮询查询进度百分比 |
| 超时处理 | 需要设置长超时 | 任务独立运行,无超时限制 |
| 适用场景 | 快速测试、实时反馈 | 生产环境、批量生成 |
快速开始
异步调用分为三个步骤: 1 创建视频任务 POST 请求创建任务,获取任务 ID 2 查询任务状态 定期轮询查询生成进度 3 下载视频 任务完成后获取视频文件完整示例
步骤1: 创建任务(文生视频) 步骤1: 创建任务(图生视频) 步骤2: 查询状态 步骤3: 下载视频API 端点详解
1. 创建视频任务
POSThttps://api.yelinai.com/v1/videos创建一个新的视频生成任务
请求参数
| 参数 | 类型 | 必需 | 可选值 | 说明 |
|---|---|---|---|---|
model | string | ✓ | "sora-2", "sora-2-pro" | 模型名称 |
prompt | string | ✓ | - | 视频生成提示词 |
size | string | ✓ | "1280x720", "720x1280" | 视频分辨率(横屏/竖屏) |
seconds | string | ✓ | "10", "15" | 视频时长(秒) |
input_reference | file | 图生视频时必填 | - | 本地图片文件(仅支持本地上传) 支持格式:JPG, PNG, WebP 建议尺寸:1280x720 建议大小:< 5MB |
sora-2:基础模型,720P分辨率,稳定性极高,$0.15/次sora-2-pro:高清HD模型,1080P分辨率,生成时间约10分钟,$0.8/次
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,用于后续查询 |
object | string | 固定为 "task" |
model | string | 使用的模型 |
status | string | 任务状态:"submitted" |
created_at | integer | 创建时间戳 |
expires_at | integer | 过期时间戳(24小时后) |
2. 查询任务状态
GEThttps://api.yelinai.com/v1/videos/{video_id}查询视频生成任务的当前状态和进度
路径参数
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
video_id | string | ✓ | 创建任务时返回的任务 ID |
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务 ID |
object | string | 固定为 "video" |
model | string | 使用的模型 |
status | string | 任务状态(见下方说明) |
progress | integer | 进度百分比(0-100) |
url | string | 视频下载路径(仅 completed 状态) |
created_at | integer | 创建时间戳 |
completed_at | integer | 完成时间戳(仅 completed 状态) |
error | object | 错误信息(仅 failed 状态) |
任务状态说明
| 状态 | 说明 | 进度 |
|---|---|---|
submitted | 已提交,等待处理 | 0% |
in_progress | 正在生成中 | 1-99% |
completed | 生成完成 | 100% |
failed | 生成失败 | - |
3. 获取视频内容
GEThttps://api.yelinai.com/v1/videos/{video_id}/content下载已完成的视频文件
路径参数
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
video_id | string | ✓ | 任务 ID |
响应
返回视频文件的二进制流(MP4 格式) 重要提示视频文件存储有效期为 24 小时,请及时下载保存到本地!完整代码示例
Python 示例(含轮询逻辑)
JavaScript/Node.js 示例
最佳实践
轮询间隔设置 推荐轮询间隔:3-5 秒- 视频生成通常需要 2-5 分钟
- 3-5 秒可以及时反馈进度
- 避免过于频繁的请求
- 任务超时不会自动取消
- 可以稍后继续查询同一个 video_id
- 任务有效期为 24 小时
- ✓ 网络错误 → 重试
- ✓ 服务繁忙 (503) → 重试
- ✗ 内容违规 → 不要重试,修改提示词
- ✗ 余额不足 → 不要重试,充值后再试
- 创建任务:可以高并发(10-30个)
- 查询状态:建议并发数 ≤ 10
- 下载视频:建议并发数 ≤ 5
定价说明
异步 API 与同步 API 价格完全相同,按次计费。| 参数组合 | 价格 | 单次大额充值优惠价 |
|---|---|---|
| 10秒视频(横屏/竖屏) | $0.15/次 | ≈ ¥1.0/次 |
| 15秒视频(横屏/竖屏) | $0.15/次 | ≈ ¥1.0/次 |
| 高清HD(sora-2-pro) | $0.8/次 | ≈ ¥5.4/次 |
- ✓ 仅在视频成功生成时收费(status = “completed”)
- ✗ 失败、超时、取消不计费
- ✗ 内容安全问题失败也不扣费(与同步API的重要区别⭐)
- ✗ 查询状态不计费
常见问题
任务的有效期是多久? 任务有效期:24 小时- 创建任务后,
expires_at字段显示过期时间 - 24 小时内可随时查询任务状态
- 视频生成完成后,文件保存 24 小时
- 超过 24 小时后,任务和视频将被自动清理
- 视频生成完成后立即下载
- 不要依赖服务器长期存储
- 任务一旦创建,会自动排队执行
- 如果不再需要,直接忽略即可
- 未完成的任务不会扣费
- 等待任务自然完成或失败
- 24 小时后任务自动过期
- video_id 错误 - 检查是否复制完整
- 任务已过期 - 超过 24 小时
- 网络问题 - 重试请求
- 不同的端点
- 不同的调用方式
- 相同的定价
- 共享同一个 API Key 和余额
- 快速测试 → 使用同步 API
- 生产环境 → 使用异步 API(更稳定)
- 批量生成 → 使用异步 API
- 正常现象 - 某些处理阶段进度更新较慢
- 队列等待 - 高峰期可能在排队
- 生成卡住 - 极少数情况下任务可能卡住
- 继续等待 5-10 分钟
- 如果超过 10 分钟无变化,联系技术支持
- 提供 video_id 以便排查
- ✗ 图片URL
- ✗ Base64编码
- ✗ 在线图片链接
multipart/form-data 格式上传,仅支持本地文件流。
图生视频支持哪些格式?
支持的图片格式:
- ✓ JPG / JPEG
- ✓ PNG
- ✓ WebP
- 文件大小: < 5MB(推荐)
- 分辨率: 建议 1280x720 或相近比例
- 来源: 必须是本地文件
| 视频时长 | 价格 |
|---|---|
| 10秒(横屏/竖屏) | $0.15/次 ≈ ¥1.0/次 |
| 15秒(横屏/竖屏) | $0.15/次 ≈ ¥1.0/次 |
- 图生视频和文生视频价格一样
- 仅成功生成时收费
- 失败不扣费(包括图片格式错误、内容违规等)
- 通常时间: 2-5 分钟
- 影响因素: 视频时长、队列长度、复杂度
- 建议 < 5MB:上传快,处理快
- 过大图片:仅影响上传时间(几秒),对生成时间无明显影响
错误处理
常见错误码
| HTTP 状态码 | 错误类型 | 说明 | 处理建议 |
|---|---|---|---|
| 400 | Bad Request | 请求参数错误 | 检查参数格式和值 |
| 401 | Unauthorized | API Key 无效 | 检查 Authorization 头 |
| 402 | Payment Required | 余额不足 | 充值后重试 |
| 404 | Not Found | 任务不存在 | 检查 video_id 或任务已过期 |
| 429 | Too Many Requests | 请求过于频繁 | 降低轮询频率 |
| 500 | Internal Server Error | 服务器错误 | 稍后重试 |
| 503 | Service Unavailable | 服务暂时不可用 | 等待后重试 |
错误响应格式
技术支持
需要帮助?
如有问题,欢迎联系我们:- 邮箱: threezhang.cn@gmail.com
- 微信: Kikivivikids
- Telegram: https://t.me/laozhang_cn
- 文档: