API Sora 2 Pro

Tích hợp API Sora 2 Pro

Xây dựng quy trình làm việc chuyển văn bản thành video, hình ảnh thành video và storyboard với polling có thể dự đoán và kiểm soát credit.

API Sora 2 Pro cung cấp những gì

Mọi thứ bạn cần để triển khai các pipeline Sora 2 Pro sẵn sàng cho production.

Năm biến thể model

Chọn sora-2 text/image hoặc sora-2-pro text/image/storyboard dựa trên chất lượng và chi phí.

Hỗ trợ Storyboard

Định nghĩa các câu chuyện nhiều cảnh với shots[] và thời lượng cho từng cảnh.

Phản hồi thống nhất

Tất cả các endpoint đều trả về code/message/data, ngay cả khi HTTP status là 200 với lỗi.

Xác thực & URL cơ sở

URL cơ sở: https://freesoragenerator.com. Xác thực bằng API key hoặc session cookie đã đăng nhập.

  • Authorization: Bearer [TOKEN] (API key sk- hoặc JWT), hoặc gửi session cookie.
  • Gửi Content-Type: application/json với các body POST.
  • Hầu hết các lỗi vẫn trả về HTTP 200; luôn kiểm tra trường code.

Các endpoint chính

Tạo tác vụ với /sora-pro, sau đó polling check-result để kiểm tra trạng thái.

Tạo tác vụ generation

Xác thực đầu vào, trừ credits, tạo tác vụ và trả về taskId.

Phương thức: POSTĐường dẫn: /api/v1/video/sora-pro

Tham số payload

  • Bắt buộc. Một trong các giá trị: sora-2-text-to-video, sora-2-image-to-video, sora-2-pro-text-to-video, sora-2-pro-image-to-video, sora-2-pro-storyboard.
  • Có điều kiện. Bắt buộc cho tất cả các model ngoại trừ sora-2-pro-storyboard.
  • Có điều kiện. Data URL Base64 như data:image/png;base64,... Bắt buộc cho image-to-video nếu không có imageUrl.
  • Có điều kiện. URL hình ảnh công khai được sử dụng khi imageData không được cung cấp.
  • Tùy chọn. portrait hoặc landscape. Mặc định: landscape.
  • Tùy chọn. 10, 15, hoặc 25 (chỉ storyboard). Mặc định thay đổi theo model.
  • Tùy chọn. standard hoặc high. Chỉ cho các model Pro text/image.
  • Tùy chọn. Xóa watermark cho các model không phải storyboard. Mặc định: true.
  • Có điều kiện. Bắt buộc cho sora-2-pro-storyboard. Mảng các '{ Scene, duration }'.

Ghi chú

  • imageData được ưu tiên hơn imageUrl khi cả hai đều được cung cấp.
  • prompt là tùy chọn cho storyboard và không được gửi đến provider; sử dụng shots cho nội dung.
  • nFrames được chuẩn hóa theo các giá trị cho phép của từng model.
  • removeWatermark mặc định là true cho các model không phải storyboard.
  • shots phải bao gồm Scene (chữ S viết hoa) và duration > 0.

Request mẫu

Văn bản thành video
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-pro-text-to-video",
    "prompt": "A cinematic shot of a futuristic city at sunset.",
    "aspectRatio": "landscape",
    "nFrames": "10",
    "size": "high",
    "removeWatermark": true
  }'
Hình ảnh thành video
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-image-to-video",
    "prompt": "Turn this image into a dynamic 10s clip.",
    "imageUrl": "https://example.com/reference.png",
    "aspectRatio": "portrait",
    "nFrames": "10"
  }'
Storyboard
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-pro-storyboard",
    "shots": [
      { "Scene": "Establishing shot of a city skyline at dusk", "duration": 5 },
      { "Scene": "Close-up of a runner splashing through puddles", "duration": 5 }
    ],
    "aspectRatio": "landscape",
    "nFrames": "10"
  }'

Response mẫu

{
  "code": 0,
  "message": "ok",
  "data": {
    "taskId": "281e5b0*********************f39b9"
  }
}

Truy vấn trạng thái tác vụ

Lấy trạng thái, tiến độ và URL kết quả theo taskId.

Phương thức: POSTĐường dẫn: /api/video-generations/check-result

Tham số payload

  • Bắt buộc. taskId được trả về bởi create.

Ghi chú

  • Các giá trị trạng thái: pending | running | succeeded | failed | cancelled.
  • result_url và result_urls trả về các liên kết video cuối cùng khi sẵn sàng.

Request mẫu

curl -X POST https://freesoragenerator.com/api/video-generations/check-result \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "taskId": "281e5b0*********************f39b9"
  }'

Response mẫu

{
  "code": 0,
  "message": "Success",
  "data": {
    "status": "running",
    "progress": 35,
    "result_url": "https://your-domain.com/storage/videos/xxx.mp4",
    "result_urls": [
      "https://your-domain.com/storage/videos/xxx.mp4"
    ],
    "failure_reason": "",
    "error_message": null
  }
}

Lấy credits người dùng

Kiểm tra số dư credit hiện tại trước khi gửi tác vụ.

Phương thức: POSTĐường dẫn: /api/get-user-credits

Ghi chú

  • Endpoint tùy chọn; hữu ích cho việc kiểm tra trước.
  • Trả về left_credits và các cờ is_vip.

Request mẫu

curl -X POST https://freesoragenerator.com/api/get-user-credits \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response mẫu

{
  "code": 0,
  "message": "ok",
  "data": {
    "left_credits": 120,
    "is_vip": false
  }
}

Các mã lỗi phổ biến

Các lỗi được hiển thị thông qua trường code trong body phản hồi.

  • 401: Không được phép
  • 402: Không đủ credits
  • -1: Tham số model không hợp lệ
  • -1: Prompt là bắt buộc
  • -1: Hình ảnh là bắt buộc cho image-to-video
  • -1: Shots là bắt buộc cho storyboard
  • -1: Không thể tải lên hình ảnh
  • -1: Không thể tạo bản ghi video generation

Tham chiếu Credits

Credits thay đổi theo model, size và nFrames. Sử dụng bảng này làm cơ sở.

ModelTham sốCredits
sora-2-text-to-video1020
sora-2-text-to-video1530
sora-2-image-to-video1020
sora-2-image-to-video1530
sora-2-pro-text-to-videostandard + 10375
sora-2-pro-text-to-videostandard + 15675
sora-2-pro-text-to-videohigh + 10825
sora-2-pro-text-to-videohigh + 151.575
sora-2-pro-image-to-videostandard + 10375
sora-2-pro-image-to-videostandard + 15675
sora-2-pro-image-to-videohigh + 10825
sora-2-pro-image-to-videohigh + 151.575
sora-2-pro-storyboard10375
sora-2-pro-storyboard15675
sora-2-pro-storyboard25675

1. Tạo tác vụ

POST /api/v1/video/sora-pro với model và payload của bạn.

2. Theo dõi tiến độ

Polling /api/video-generations/check-result cho đến khi trạng thái là succeeded hoặc failed.

3. Xác minh credits

Tùy chọn gọi /api/get-user-credits trước khi gửi các batch lớn.

Câu hỏi thường gặp

Tôi có thể sử dụng API keys hoặc session cookies không?

Có. Gửi Authorization: Bearer [TOKEN] (API key hoặc JWT) hoặc session cookie đã đăng nhập.

Làm thế nào để định dạng các shots storyboard?

Cung cấp shots dưới dạng mảng các '{ Scene, duration }' trong đó Scene viết hoa và duration là số giây.

Tại sao credits khác nhau theo model?

Credits tỷ lệ với nFrames cho tất cả các model; các model Pro cũng thay đổi theo size.

Tài nguyên hữu ích

Bắt đầu với API Sora 2 Pro

Tạo API key và khởi chạy quy trình làm việc Sora 2 Pro đầu tiên của bạn ngay hôm nay.