API Sora 2

Xây dựng trên API Sora 2

Giao hàng trải nghiệm văn bản thành video được hỗ trợ bởi OpenAI Sora 2 và Sora Pro. Xác thực bằng khóa API, polling trạng thái nhiệm vụ và giao hàng video cuối cùng trong vài phút.

Tại sao các nhóm dựa vào API Sora 2

Cung cấp quy trình tạo video linh hoạt với polling dự đoán, 20 yêu cầu đồng thời và tải lên lưu trữ tự động.

Sora 2 + Sora Pro

Chọn chuỗi mô hình phù hợp với nhu cầu chất lượng và chi phí của bạn: sora-2 hoặc sora-2-pro.

Polling dự đoán

Tạo một nhiệm vụ, sau đó polling endpoint kiểm tra kết quả để giữ trạng thái và tiến trình đồng bộ mà không cần SSE.

20 yêu cầu đồng thời

Xử lý tối đa 20 tác vụ tạo video cùng lúc. Liên hệ với chúng tôi để có giới hạn cao hơn.

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

Tất cả các endpoint đều nằm dưới https://freesoragenerator.com/api. Cung cấp khóa API được tạo trong bảng điều khiển qua header Authorization.

  • Gửi header Authorization: Bearer YOUR_API_KEY với mỗi yêu cầu.
  • Sử dụng Content-Type: application/json khi gửi payload.
  • Mỗi yêu cầu tạo trừ 20 tín dụng (sora-2) hoặc 30 tín dụng (sora-2-pro); các công việc thất bại sẽ được hoàn tiền tự động.

Các endpoint chính

Bắt đầu bằng cách tạo một nhiệm vụ tạo, sau đó polling hoặc lắng nghe kết quả.

Tạo video Sora 2

Khởi động một công việc tạo Sora 2 hoặc Sora Pro với các gợi ý văn bản thành video hoặc hình ảnh thành video tùy chọn.

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

Tham số payload

  • Bắt buộc. Sử dụng "sora-2" hoặc "sora-2-pro" để nhắm đến biến thể mô hình bạn cần.
  • Bắt buộc. Mô tả bằng ngôn ngữ tự nhiên về cảnh bạn muốn Sora tạo ra.
  • Tùy chọn (khuyến nghị). URL dữ liệu Base64 với tiền tố "data:image/*;base64," cho chế độ hình ảnh sang video.
  • Tùy chọn. URL hình ảnh tham chiếu cũ; vẫn được hỗ trợ nhưng có mức độ ưu tiên thấp hơn imageData.
  • Tùy chọn. Các giá trị hỗ trợ: "9:16" (mặc định) hoặc "16:9".
  • Tùy chọn. Có hiển thị video công khai hay không; mặc định là true.
  • Tùy chọn (chỉ VIP). Pid video mục tiêu cho các tính năng tiếp tục/remix.
  • Tùy chọn (chỉ VIP). Mảng điều khiển nhân vật; mỗi mục bao gồm url và dấu thời gian.
  • Tùy chọn. Endpoint HTTPS nhận payload kết quả cuối cùng khi nhiệm vụ thành công.

Ghi chú

  • Phản hồi trả về ngay lập tức với taskId; polling kiểm tra kết quả cho đến khi trạng thái thành công hoặc thất bại.
  • Cung cấp webHook để nhận payload cuối cùng một cách bất đồng bộ mà không cần chạy vòng lặp polling.

Yêu cầu mẫu

curl -X POST https://freesoragenerator.com/api/v1/video/sora-video \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-pro",
    "prompt": "A cinematic shot of a futuristic city at sunset, captured in 4K.",
    "imageData": "data:image/png;base64,iVBORw0KGgoAAA...",
    "aspectRatio": "9:16",
    "isPublic": true
  }'

Phản hồi mẫu

{
  "code": 0,
  "message": "ok",
  "data": {
    "id": "task_1234567890"
  }
}

Kiểm tra kết quả tạo

Polling trạng thái mới nhất cho một nhiệm vụ tạo để theo dõi tiến trình và lấy kết quả.

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

Tham số payload

  • Bắt buộc. Định danh được trả về khi bạn tạo nhiệm vụ tạo.

Ghi chú

  • Endpoint xác minh nhiệm vụ thuộc về tài khoản của bạn trước khi trả về dữ liệu.
  • Các công việc thất bại tự động hoàn lại tín dụng và tiết lộ metadata hoàn tiền trong payload kiểm tra kết quả.

Yêu cầu 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": "task_1234567890"
  }'

Phản hồi 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,
    "credits_refunded": false,
    "refund_trans_no": null,
    "result_pid": "s_xxx",
    "result_pids": [
      "s_xxx"
    ],
    "metadata": {
      "remixTargetId": "s_prev",
      "characters": [
        {
          "url": "https://.../hero.mp4",
          "timestamps": "0,3"
        }
      ]
    }
  }
}

Lấy tín dụng người dùng và trạng thái VIP

Truy vấn tín dụng khả dụng của người dùng hiện tại và trạng thái thành viên VIP.

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

Ghi chú

  • Yêu cầu phiên đăng nhập hợp lệ hoặc mã thông báo API để truy cập thông tin người dùng.
  • Trả về các trường left_credits, is_recharged, is_pro và is_vip trạng thái.

Yêu cầu mẫu

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

Phản hồi mẫu

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

1. Tạo nhiệm vụ

Gửi yêu cầu API Sora2 với gợi ý của bạn và URL webhook tùy chọn, sau đó lưu taskId được trả về.

2. Theo dõi tiến trình

Đăng ký các sự kiện phát trực tiếp hoặc gọi endpoint kiểm tra kết quả cho đến khi trạng thái trở thành thành công hoặc thất bại.

3. Giao video

Sử dụng các URL được hỗ trợ lưu trữ trong result_url/result_urls để phục vụ hoặc tải xuống video đã tạo.

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

Làm thế nào để tôi xác thực các yêu cầu của mình?

Tạo một khóa API trong bảng điều khiển, sau đó bao gồm nó dưới dạng Authorization: Bearer YOUR_API_KEY. Các khóa có thể được thay đổi bất cứ lúc nào.

Tôi nên polling kết quả như thế nào?

Sau khi gọi tạo, lưu taskId. Gọi /api/video-generations/check-result mỗi 3-5 giây cho đến khi trạng thái thành công hoặc thất bại, sau đó sử dụng result_url/result_urls.

Tín dụng được xử lý như thế nào cho các lần thất bại?

Chúng tôi tự động hoàn lại tín dụng khi một nhiệm vụ thất bại và trả lại refund_trans_no cộng với credits_refunded=true trong payload kiểm tra kết quả để theo dõi kiểm toán.

Tài nguyên hữu ích

Khởi động với API Sora2 hôm nay

Tạo khóa API của bạn và bắt đầu tạo video AI điện ảnh trong vài phút.