Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
Sora 2 API 下线迁移:导出、改接和成本对比
2026/08/25

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-2sora-2-prosora-2-2025-10-06sora-2-2025-12-08sora-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-24Videos API(无)
2026-09-24sora-2(无)
2026-09-24sora-2-pro(无)
2026-09-24sora-2-2025-10-06(无)
2026-09-24sora-2-2025-12-08(无)
2026-09-24sora-2-pro-2025-10-06(无)

来源:OpenAI 弃用页面[1]

第一行是人们容易低估的。固定一个带日期的快照不会争取时间,因为运输层会和模型一起消失。任何涉及 POST /videosGET /videos/{video_id}GET /videos/{video_id}/contentGET /videosDELETE /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。它包含每个任务的 modelsecondssizecreated_at[2],这是在针对不同模型重建提示时想要的元数据,需要知道原始渲染分辨率。

改写调用:两种形状的分歧

两个 API 都是异步提交后轮询,所以控制流保留。字段名不。

步骤OpenAI Videos API[2]reAPI[5]
提交POST /v1/videosPOST /api/v1/videos/generations
模型字段model: "sora-2"model: "<model id>"
提示字段promptprompt
分辨率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-2720p$0.10$0.05
sora-2-pro720p$0.30$0.15
sora-2-pro1024p$0.50$0.25
sora-2-pro1080p$0.70$0.35

对比 reAPI 上的 720p 有音频速率[4][6]

你现在的层级Sora 速率可比速率变化
sora-2 720p$0.10/sveo3.1-fast-official 720P + 音频,$0.092/s−8%
sora-2 720p$0.10/sWan 3.0 720P,$0.076/s−24%
sora-2 720p$0.10/sKling 3.0 标准 720p + 音频,$0.11/s+10%
sora-2-pro 720p$0.30/sveo3.1-fast-official 720P + 音频,$0.092/s−69%
sora-2-pro 1080p$0.70/sveo3.1-fast-official 1080P + 音频,$0.111/s−84%
sora-2-pro 1080p$0.70/sKling 3.0 专业版 1080p + 音频,$0.149/s−79%
sora-2-pro 1080p$0.70/sWan 3.0 1080P,$0.151/s−78%
sora-2-pro 1080p$0.70/sSeedance 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-pro20 秒[2]
Seedance 2.530 秒[6]
Wan 3.030 秒[9]
Kling 3.015 秒[7]
MiniMax H315 秒[8]
Veo 3.18 秒[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

  1. OpenAI. Deprecations: Sora 2 video generation models and Videos API. Retrieved August 2026 from developers.openai.com/api/docs/deprecations
  2. OpenAI. Video generation with Sora: Videos API guide. Retrieved August 2026 from developers.openai.com/api/docs/guides/video-generation
  3. OpenAI. Pricing: video generation models, standard and batch per-second rates. Retrieved August 2026 from developers.openai.com/api/docs/pricing
  4. reAPI. Veo 3.1: model page and per-tier pricing. Retrieved August 2026 from reapi.ai/models/veo3-1
  5. reAPI. Seedance 2.5 API: request shape, task polling and output fields. Retrieved August 2026 from reapi.ai/docs/seedance-2-5
  6. reAPI. Seedance 2.5: model page, duration range and per-resolution pricing. Retrieved August 2026 from reapi.ai/models/seedance-2-5
  7. reAPI. Kling 3.0: model page, audio tiers and per-second pricing. Retrieved August 2026 from reapi.ai/models/kling-3-0
  8. reAPI. MiniMax H3: model page, duration range and per-second pricing. Retrieved August 2026 from reapi.ai/models/minimax-h3
  9. reAPI. Wan 3.0: model page, duration range and per-resolution pricing. Retrieved August 2026 from reapi.ai/models/wan-3-0