
Sora 2 API 下线迁移:导出、改接和成本对比
Sora 2 API 将于 2026 年 9 月 24 日下线,官方无替代方案。本指南覆盖库导出、端点重映、参数差异与各级替代费用。
Sora 2 API 下线日期是 2026 年 9 月 24 日,而 OpenAI 官方弃用表的"建议替代方案"列对全部六行都是空的[1]。这不常见。OpenAI 停用 gpt-image-1 时,表中明确指向了 gpt-image-2[1]。视频生成没有这样的过渡。
这不是模型互换。这是端点移除,同时破坏两件事:调用 POST /videos 的代码,以及只能通过 GET /videos/{video_id}/content 获取的已存储资源。本指南涵盖什么会真正消失、下线前如何导出库、重写调用时会遇到的具体参数差异,以及替代方案在你当前可能使用的每个级别的实际成本。
TL;DR
- 下线日期是 2026 年 9 月 24 日,公告于 2026 年 3 月 24 日,涵盖 Videos API、
sora-2、sora-2-pro、sora-2-2025-10-06、sora-2-2025-12-08和sora-2-pro-2025-10-06[1]。 - 官方无替代方案。 所有六行的替代方案列都是空的,这与表中其他弃用情况不同[1]。
- 你的已渲染视频就在要关闭的 API 后面。
GET /videos列举它们,GET /videos/{video_id}/content下载它们[2]。在端点停止响应前导出。 - 如果你用的是 $0.10/s 的
sora-2,省钱有限但真实存在。 可比的 720p 有音频速率在 $0.076–$0.11/s[3][4][9]。 - 如果你用的是 1080p 的
sora-2-pro,你一直在支付 $0.70/s,相同的片段在 veo3.1-fast-official 上是 $0.111/s[3][4]。 - 留意片段时长天花板。 Sora 2 支持 16 和 20 秒[2];Veo 3.1 单次生成最长 8 秒[4]。
Sora 2 API 下线实际移除什么
OpenAI 在 2026 年 3 月 24 日宣布弃用,通知使用 Videos API 和 Sora 2 别名与快照的开发者其在 2026 年 9 月 24 日"从 API 中弃用和移除"[1]。视频生成指南的页面顶部也标注了相同通知[2]。
六个标识符将离线:
| 下线日期 | 模型 / 系统 | 建议替代方案 |
|---|---|---|
| 2026-09-24 | Videos API | (无) |
| 2026-09-24 | sora-2 | (无) |
| 2026-09-24 | sora-2-pro | (无) |
| 2026-09-24 | sora-2-2025-10-06 | (无) |
| 2026-09-24 | sora-2-2025-12-08 | (无) |
| 2026-09-24 | sora-2-pro-2025-10-06 | (无) |
来源:OpenAI 弃用页面[1]。
第一行是人们容易低估的。固定一个带日期的快照不会争取时间,因为运输层会和模型一起消失。任何涉及 POST /videos、GET /videos/{video_id}、GET /videos/{video_id}/content、GET /videos 或 DELETE /videos/{video_id} 的东西都需要改写,而不只是改指向[2]。
在端点停止响应前导出库
你已渲染的片段不在你的磁盘上。它们在 OpenAI 的存储中,文档化的获取方式是 GET /videos/{video_id}/content[2]。该路由被移除时,这些文件的文档化检索路径也随之消失。先做导出,在任何代码改写前,因为这是这次迁移中唯一附带硬期限的部分。
GET /videos 用分页和排序列举库[2]:
curl "https://api.openai.com/v1/videos?limit=20&after=video_123&order=asc" \
-H "Authorization: Bearer $OPENAI_API_KEY" | jq .翻页并保留每个 id,然后拉取每个文件:
import os, requests
KEY = os.environ["OPENAI_API_KEY"]
H = {"Authorization": f"Bearer {KEY}"}
def all_video_ids():
after, ids = None, []
while True:
params = {"limit": 100, "order": "asc"}
if after:
params["after"] = after
page = requests.get("https://api.openai.com/v1/videos",
headers=H, params=params, timeout=60).json()
batch = page.get("data", [])
if not batch:
return ids
ids += [v["id"] for v in batch]
after = batch[-1]["id"]
for vid in all_video_ids():
dest = f"export/{vid}.mp4"
if os.path.exists(dest):
continue
r = requests.get(f"https://api.openai.com/v1/videos/{vid}/content",
headers=H, timeout=600)
r.raise_for_status()
os.makedirs("export", exist_ok=True)
with open(dest, "wb") as f:
f.write(r.content)也保存列举调用的 JSON,不只是 MP4。它包含每个任务的 model、seconds、size 和 created_at[2],这是在针对不同模型重建提示时想要的元数据,需要知道原始渲染分辨率。
改写调用:两种形状的分歧
两个 API 都是异步提交后轮询,所以控制流保留。字段名不。
| 步骤 | OpenAI Videos API[2] | reAPI[5] |
|---|---|---|
| 提交 | POST /v1/videos | POST /api/v1/videos/generations |
| 模型字段 | model: "sora-2" | model: "<model id>" |
| 提示字段 | prompt | prompt |
| 分辨率 | size: "1280x720"(像素对) | resolution: "720p" + size: "16:9" |
| 时长 | seconds: "8"(字符串) | duration: 5(数字) |
| 任务句柄 | 响应中的 id | 响应中的 task_id |
| 轮询 | GET /v1/videos/{video_id} | GET /api/v1/tasks/{id} |
| 获取文件 | GET /v1/videos/{video_id}/content | 已在 output.video_urls 中 |
其中三个会在实践中起作用。size 在两边意思不同:一边是像素对,另一边是宽纵比,分辨率拆成自己的字段。seconds 是字符串,duration 是数字,所以值的朴素复制会落成类型错误而不是清晰的验证消息。下载步骤完全消失了,因为轮询响应已经包含 output.video_urls[5] 而不是让你为字节调用第三个端点。
看起来像这样的提交:
video = openai.videos.create(model="sora-2", prompt=PROMPT,
size="1280x720", seconds="8")变成:
r = requests.post("https://reapi.ai/api/v1/videos/generations",
headers={"Authorization": f"Bearer {REAPI_KEY}"},
json={"model": MODEL, "prompt": PROMPT,
"resolution": "720p", "size": "16:9", "duration": 8})
task_id = r.json()["task_id"]迁移真正成本,按你现在的层级
关于这次下线的大多数评论引用单一标题节省。那只在忽略读者真正在哪个 Sora 层级时有效,诚实的答案分成两部分。
OpenAI 发布的 Sora 速率,每秒[3]:
| 模型 | 大小 | 标准 | 批 |
|---|---|---|---|
| sora-2 | 720p | $0.10 | $0.05 |
| sora-2-pro | 720p | $0.30 | $0.15 |
| sora-2-pro | 1024p | $0.50 | $0.25 |
| sora-2-pro | 1080p | $0.70 | $0.35 |
| 你现在的层级 | Sora 速率 | 可比速率 | 变化 |
|---|---|---|---|
| sora-2 720p | $0.10/s | veo3.1-fast-official 720P + 音频,$0.092/s | −8% |
| sora-2 720p | $0.10/s | Wan 3.0 720P,$0.076/s | −24% |
| sora-2 720p | $0.10/s | Kling 3.0 标准 720p + 音频,$0.11/s | +10% |
| sora-2-pro 720p | $0.30/s | veo3.1-fast-official 720P + 音频,$0.092/s | −69% |
| sora-2-pro 1080p | $0.70/s | veo3.1-fast-official 1080P + 音频,$0.111/s | −84% |
| sora-2-pro 1080p | $0.70/s | Kling 3.0 专业版 1080p + 音频,$0.149/s | −79% |
| sora-2-pro 1080p | $0.70/s | Wan 3.0 1080P,$0.151/s | −78% |
| sora-2-pro 1080p | $0.70/s | Seedance 2.5 1080P,$0.462/s | −34% |
如果你是纯 sora-2 在 720p,$0.10/s 基础层定价很有竞争力,大多数互换落在几分钱内。Wan 3.0 在 720P 是例外,$0.076/s 带默认音轨[9],低约 24%。那是真正的节省,不是某些评论承诺的量级削减。如果你通过批处理 API 运行 sora-2 在 $0.05/s[3],你在这个对比中最便宜的音频能力速率,应该预期你的每秒成本会上升。
sora-2-pro 图景相反。在 1080p 你一直支付 $0.70/s,相同的 1080p 素材秒在 veo3.1-fast-official 上是 $0.111/s[4]。在 20 秒片段上那是 $14.00 对 $2.22。
一个要仔细结转的计费细节:Veo 3.1 的按生成层级按渲染计费,不是按秒[4],而上面的 -official 变体按秒计费。那是不同的单位。如果你的成本模型处处假设按秒,按生成层级不会与它对账。
20 秒问题
Sora 2 在两种变体上都支持 16 和 20 秒生成[2]。不是每个替代方案在单次通过中都能达到那个,这是最可能强制真正改写而不只是配置改变的约束。
| 模型 | 最长单次生成 |
|---|---|
| sora-2 / sora-2-pro | 20 秒[2] |
| Seedance 2.5 | 30 秒[6] |
| Wan 3.0 | 30 秒[9] |
| Kling 3.0 | 15 秒[7] |
| MiniMax H3 | 15 秒[8] |
| Veo 3.1 | 8 秒[4] |
20 秒 Sora 片段变成三个 Veo 3.1 渲染加一个拼接。如果你的流程输出单个长镜头,这里两个模型自己清除 Sora 的天花板:Seedance 2.5 在 4 到 30 秒加同步音频[6],和 Wan 3.0 在 2 到 30 秒带默认音轨[9]。在基准品质前检查这个。无法产生你的片段长度的模型不是候选,不管它怎么评分。
FAQ
Sora 2 API 什么时候正好停工作?
2026 年 9 月 24 日。OpenAI 于 2026 年 3 月 24 日通知受影响的开发者[1]。
OpenAI 推荐替代模型吗?
不。"建议替代方案"列对 Videos API 和全部五个 Sora 2 标识符都是空的[1]。
我能继续用固定的快照像 sora-2-2025-10-06 吗?
不。带日期的快照列在相同 9 月 24 日日期,就如别名一样,同时为它们服务的 Videos API 也被弃用了[1]。
我已生成的视频会怎样?
它们通过 GET /videos/{video_id}/content 检索,被弃用 Videos API 的一部分[2]。一旦该端点被移除,这些文件就没有文档化 API 路由了,所以在日期前导出。
迁移会降低我的账单吗?
取决于你的层级。从 1080p 的 sora-2-pro($0.70/s),是的,大幅度。从纯 $0.10/s 的 sora-2,大约收支平衡。从批处理上的 sora-2 $0.05/s,预期增加[3]。
替代方案生成像 Sora 2 那样的音频吗?
一些有,通常是单独价格层。Kling 3.0 和 Veo 3.1 都列不同的带音频和无音频速率[4][7],而 Seedance 2.5 默认带音频生成语音、音效和音乐[6],Wan 3.0 默认配送音轨[9]。
我多少代码要改变?
异步提交后轮询结构保留。改变的是字段命名、size 拆成 resolution 加宽纵比、seconds 作为字符串对 duration 作为数字,以及放掉单独的内容下载调用[2][5]。
Sora 2 的内容限制在其他地方一样吗?
不一定。Sora 2 拒绝包括公众人物的真人、受版权保护的角色和音乐、以及包含人脸的输入图像[2]。其他模型画这些线不同,所以在 Sora 上失败的提示可能在其他地方通过反之亦然。
日期前工作的顺序
先导出。这是唯一步骤有不能移动的期限,且只需要 API 密钥和磁盘空间。然后针对你的硬约束按这个顺序选择模型:片段长度,然后音频,然后分辨率,然后速率。长度消除候选最快,速率是最容易之后改变的东西。
改写调用是看起来比实际更小的工作,因为提交轮询形状保留,文件下载步骤消失了。值得放慢速度的部分是成本模型。如果你来自 sora-2-pro 节省真实且大;如果你来自 $0.10/s 或批处理 $0.05/s 的 sora-2,计划平高于每秒成本,改选能力。任何情况下 Sora 2 API 下线给你一个固定日期向后工作,而导出是在它之后停止可能的部分。
References
- OpenAI. Deprecations: Sora 2 video generation models and Videos API. Retrieved August 2026 from developers.openai.com/api/docs/deprecations
- OpenAI. Video generation with Sora: Videos API guide. Retrieved August 2026 from developers.openai.com/api/docs/guides/video-generation
- OpenAI. Pricing: video generation models, standard and batch per-second rates. Retrieved August 2026 from developers.openai.com/api/docs/pricing
- reAPI. Veo 3.1: model page and per-tier pricing. Retrieved August 2026 from reapi.ai/models/veo3-1
- reAPI. Seedance 2.5 API: request shape, task polling and output fields. Retrieved August 2026 from reapi.ai/docs/seedance-2-5
- reAPI. Seedance 2.5: model page, duration range and per-resolution pricing. Retrieved August 2026 from reapi.ai/models/seedance-2-5
- reAPI. Kling 3.0: model page, audio tiers and per-second pricing. Retrieved August 2026 from reapi.ai/models/kling-3-0
- reAPI. MiniMax H3: model page, duration range and per-second pricing. Retrieved August 2026 from reapi.ai/models/minimax-h3
- reAPI. Wan 3.0: model page, duration range and per-resolution pricing. Retrieved August 2026 from reapi.ai/models/wan-3-0
更多文章

Wan 3.0 API 定价对比:480P、720P 和 1080P 成本
对比 Wan 3.0 官方 API 价格与 reAPI 价格,计算 5 秒、10 秒和 30 秒视频在 480P、720P 和 1080P 下的成本。


获取 Claude API 密钥:何时需要、如何使用
申请 Claude API 密钥仅需四步,但密钥有效期和工作区一次性设定后无法修改;若同时调用多个商家,成本模型会改变。


FLUX 3 视频价格完全指南:草稿、高清、全高清与续生成
计算 FLUX 3 视频在草稿、高清、全高清、关键帧和视频续生成等各模式下的成本差异,详解草稿到成品的完整工作流程和 5-20 秒档位总价。
