Sora API ngừng hoạt động: Lưu tài sản và chuyển quy trình video

Sora API sẽ ngừng hoạt động vào ngày 24/9/2026. Nếu ứng dụng của bạn vẫn gửi tác vụ Sora, hãy tận dụng thời gian còn lại để lưu đầu ra và xác thực một quy trình video thay thế. Trải nghiệm Sora trên web và ứng dụng của OpenAI đã kết thúc vào ngày 26/4/2026; đây là mốc riêng, không phải hạn chót của API. Thông báo ngừng Sora của OpenAI giải thích cả hai mốc thời gian và quy trình xuất dữ liệu.
Chuyển sang Kling hoặc Seedance không chỉ là chọn một model mới. Nội dung yêu cầu, đầu vào tham chiếu, trạng thái tác vụ, URL kết quả và thời lượng được hỗ trợ có thể khác nhau. Quá trình di chuyển chỉ hoàn tất khi ứng dụng có thể gửi, theo dõi, truy xuất và lưu giữ một video đạt yêu cầu qua tuyến mới.
Tài liệu được kiểm tra ngày 14/9/2026. Các ví dụ dưới đây đã được đối chiếu với schema công khai; đây không phải là kết quả từ thử nghiệm tạo video có tính phí.
Những gì cần lưu trước khi Sora API ngừng hoạt động
Hãy bắt đầu bằng cách kiểm kê các tác vụ Sora mà ứng dụng cần giữ lại. Lưu ID tác vụ của nhà cung cấp, ID tác vụ nội bộ, model, prompt, vị trí tài sản tham chiếu, thiết lập đã yêu cầu, trạng thái và đầu ra hoàn chỉnh. Áp dụng các quy tắc truy cập và lưu giữ hiện có cho những bản ghi này.
Đối với video được tạo bằng API, OpenAI API hiện phân biệt siêu dữ liệu tác vụ với tệp phương tiện có thể tải xuống:
| Mục đích | Đường dẫn OpenAI API |
|---|---|
| Tạo video | POST /v1/videos |
| Truy xuất siêu dữ liệu tác vụ | GET /v1/videos/{video_id} |
| Tải nội dung đã hoàn thành | GET /v1/videos/{video_id}/content |
Tài liệu tham khảo về tạo, truy xuất và tải xuống mô tả các thao tác này. Hãy lưu dữ liệu phương tiện thực tế vào bộ nhớ do bạn kiểm soát; danh sách ID tác vụ không phải là kho lưu trữ video. Xác minh rằng các tệp đã tải có thể mở được và ứng dụng có thể tìm thấy chúng mà không cần gọi Sora.
Với nội dung được tạo trong ứng dụng Sora, hãy sử dụng quy trình xuất dữ liệu trong thông báo của OpenAI. Đừng cho rằng việc xuất dữ liệu ứng dụng cũng lưu trữ các tác vụ API của ứng dụng bạn. OpenAI mô tả khả năng có các khoảng thời gian xuất dữ liệu cuối cùng và thông báo qua email; thông báo đó không đủ để hứa rằng mọi tài sản sẽ bị xóa ngay vào hạn chót API hoặc có thể khôi phục vô thời hạn sau đó. Hãy lưu những gì bạn cần khi chúng còn truy cập được.
Chọn phương án thay thế bằng các clip bạn thực sự sản xuất
Hãy bắt đầu với một tập đánh giá nhỏ đại diện cho công việc sản xuất: cận cảnh sản phẩm, cảnh có chuyển động, cảnh quay dựa trên tài liệu tham chiếu, hội thoại nếu cần và một prompt khó mà quy trình hiện tại xử lý chưa tốt. Giữ tài sản đầu vào và tiêu chí chấp nhận nhất quán giữa các ứng viên.
| Ứng viên | Khả năng đã được ghi nhận đáng thử nghiệm | Câu hỏi khi di chuyển |
|---|---|---|
| Kling 3.0 | Âm thanh gốc, tạo nhiều cảnh và quy trình khung hình đầu/cuối trong hướng dẫn model chính thức | Tuyến API đã chọn có cung cấp chế độ, thời lượng, điều khiển âm thanh và cách xử lý tham chiếu cần thiết không? |
| Seedance 2.5 | Tham chiếu đa phương thức, chỉnh sửa và nối dài video, tạo video tối đa 30 giây | Tuyến đó có hỗ trợ độ phân giải, vai trò tham chiếu và tổ hợp tham số riêng cho tác vụ không? |
Đây là phần tóm tắt khả năng, không phải bảng xếp hạng chất lượng. Xem hướng dẫn model Kling 3.0 và thông báo Seedance 2.5 của ByteDance. Một khả năng có trong ứng dụng của nhà cung cấp không mặc nhiên có mặt trên mọi API hoặc gateway.
Seedance và Seedream là hai họ model khác nhau. Seedance tạo video; Seedream 5.0 Pro là model hình ảnh. Không thể dùng giá tạo hình ảnh làm báo giá video theo giây.
Duyệt danh mục model Tokenhot để tìm các tuyến ứng viên, sau đó đọc trang API của model đã chọn trước khi triển khai. Ghi lại chính xác mã model và ngày đánh giá để có thể so sánh kết quả về sau.
Điều chỉnh nội dung yêu cầu, không chỉ base URL
Thao tác tạo Sora của OpenAI dùng các trường như prompt, seconds và size, với tập giá trị hỗ trợ riêng. Thao tác Seedance 2.5 được Tokenhot ghi nhận dùng content, duration, ratio và resolution. Đường dẫn Tokenhot là /v1/video/generations, trong đó video ở dạng số ít.
Yêu cầu text-to-video sau đây tuân theo tài liệu Tokenhot Seedance 2.5. Cài đặt requests, đặt TOKENHOT_API_KEY trong môi trường và chỉ chạy khi bạn thực sự muốn tạo một tác vụ có thể phát sinh phí.
import json
import os
from pathlib import Path
import requests
record_path = Path("seedance-submission.json")
if record_path.exists():
raise RuntimeError("A submission record exists; inspect it before creating another job.")
response = requests.post(
"https://api.tokenhot.ai/v1/video/generations",
headers={"Authorization": f"Bearer {os.environ['TOKENHOT_API_KEY']}"},
json={
"model": "doubao-seedance-2.5",
"content": [{
"type": "text",
"text": "A ceramic cup on a wooden table, slow camera push-in, soft daylight."
}],
"duration": 5,
"ratio": "16:9",
"resolution": "720p",
"generate_audio": False,
"output_format": "mp4"
},
timeout=(10, 60),
)
response.raise_for_status()
job = response.json()
task_id = job["id"]
record_path.write_text(json.dumps(job, indent=2), encoding="utf-8")
print(f"Submitted task: {task_id}")
Ví dụ này gửi đúng một lần và lưu phản hồi. Khi hết thời gian chờ mạng, kết quả gửi có thể không rõ ràng: máy chủ có thể đã nhận tác vụ dù client chưa nhận được ID. Hãy điều tra yêu cầu hiện có trước khi gửi lại. Lớp bảo vệ bằng tệp cục bộ chỉ để thuận tiện cho ví dụ này, không phải cơ chế idempotency cho môi trường production.
Trang Seedance 2.5 hiện tại ghi nhận đầu ra 480p và 720p, thời lượng từ 4 đến 30 giây hoặc giá trị thích ứng -1. Chỉnh sửa video yêu cầu duration=-1 và ratio=adaptive; các tác vụ khung hình đầu, khung hình đầu và cuối, cũng như nối dài đều yêu cầu tỷ lệ thích ứng. Hãy xác thực quy tắc cho loại tác vụ của bạn thay vì sao chép payload text-to-video sang mọi chế độ. Tổ hợp không được hỗ trợ có thể thất bại sau khi quá trình bất đồng bộ bắt đầu. Yêu cầu tham số của Tokenhot.
Tách riêng schema gửi và schema polling
Yêu cầu gửi được chấp nhận không có nghĩa là video đã hoàn thành. Trang gửi Seedance 2.5 ghi nhận id ở cấp cao nhất và các trạng thái gồm queued, processing, succeeded và failed.
Trang truy vấn tác vụ Seedance 2.0 được công bố riêng ghi nhận GET /v1/video/generations/{task_id} và minh họa phản hồi lồng nhau: data.status là SUCCESS, còn data.result_url chứa địa chỉ đầu ra. Vì trang này được ghi nhãn cho 2.0, hãy xác nhận giao kèo truy vấn của tuyến 2.5 đã chọn trước khi dùng lại bộ phân tích polling của 2.0.
Hãy xây dựng một adapter nhỏ cho từng tuyến đã xác thực. Adapter này chuyển phản hồi của nhà cung cấp thành các trạng thái riêng của ứng dụng, chẳng hạn đang chờ, đang chạy, hoàn thành và thất bại. Giữ lại ID tác vụ gốc và chi tiết lỗi để xử lý sự cố. Trạng thái không xác định phải kích hoạt điều tra thay vì được coi là thành công.
Worker cần có khoảng polling giới hạn, hạn chót tổng thể và cách xử lý rõ ràng cho lỗi xác thực, giới hạn tốc độ và lỗi máy chủ tạm thời. Khi hết hạn polling cục bộ, hãy giữ lại ID tác vụ để worker khác có thể tiếp tục kiểm tra. Đừng gửi tác vụ thay thế chỉ vì tác vụ ban đầu lâu hơn dự kiến.
Khi tác vụ thành công, hãy nhanh chóng truy xuất kết quả và lưu theo chính sách lưu giữ của ứng dụng. Xem URL đầu ra có chữ ký là cơ chế truy cập tạm thời, trừ khi dịch vụ ghi rõ điều khác. Một tác vụ đã hoàn thành ở nhà cung cấp và một tài sản khách hàng được lưu giữ an toàn là hai cột mốc riêng biệt.
So sánh chi phí trên mỗi clip đạt yêu cầu
So sánh giá cho cùng độ phân giải, thời lượng, thiết lập âm thanh, chế độ đầu vào và tuyến truy cập. Credit trong ứng dụng của nhà cung cấp, giá API trực tiếp và báo giá gateway có thể dùng quy tắc tính phí khác nhau. Bài so sánh giá API giải thích cách tách đơn vị tính phí khỏi tuyến nhà cung cấp.
Một chỉ số đánh giá hữu ích là:
Cost per accepted clip = total billed evaluation cost / accepted clips
Ví dụ, nếu một đợt đánh giá tốn $12 và tạo ra 8 clip đạt yêu cầu, chi phí quan sát được là $1.50 cho mỗi clip đạt yêu cầu. Đây là phép tính minh họa, không phải báo giá Kling hay Seedance. Hãy đưa cả các lần thử bị loại nhưng đã tính phí vào tử số, đồng thời tính riêng lưu trữ, chỉnh sửa và đánh giá thủ công nếu chúng ảnh hưởng đến quyết định.
Theo dõi thời gian hoàn thành và tỷ lệ thất bại cùng với chất lượng hình ảnh. Giá niêm yết thấp không giúp ích nhiều nếu quy trình liên tục phải tạo lại những đầu ra không dùng được.
Chuyển đổi trước ngày 24/9
- Lưu trữ các đầu ra Sora cần thiết và xác minh có thể phát từ bộ nhớ của bạn.
- Chọn tuyến thay thế bằng các clip đại diện và tiêu chí chấp nhận rõ ràng.
- Xác minh kiểm tra yêu cầu, bản ghi gửi, phân tích truy vấn, tác vụ thất bại và truy xuất đầu ra.
- Chuyển có kiểm soát một phần công việc mới sang tuyến thay thế, đồng thời theo dõi tài sản hoàn thành, chi phí và lỗi.
- Ngừng tạo tác vụ Sora mới đủ sớm để xử lý phần việc còn lại trước hạn chót.
- Giữ cho bản ghi tác vụ cũ vẫn đọc được sau khi chuyển đổi và ghi lại một phương án dự phòng không phụ thuộc vào việc Sora còn hoạt động.
Nếu bạn cũng đang chọn gateway, hướng dẫn các lựa chọn thay thế OpenRouter trình bày việc chọn tuyến và kiểm tra khả năng tương thích. Khi triển khai, hãy bắt đầu từ đúng trang model video trong tài liệu Tokenhot API, sau đó xác thực toàn bộ vòng đời tác vụ trong môi trường của bạn.
Quyền truy cập Sora API kết thúc vào ngày 24/9/2026. Hãy lưu video đã hoàn thành và siêu dữ liệu tác vụ, đánh giá Kling và Seedance bằng chính các clip của bạn, đồng thời chuyển cả khâu gửi yêu cầu lẫn xử lý tác vụ. Hướng dẫn này tách thông tin ngừng dịch vụ đã được xác nhận khỏi các lựa chọn triển khai và minh họa định dạng yêu cầu Tokenhot Seedance theo tài liệu.


