Sora 2 Pro API

Sora 2 Pro API を統合する

予測可能なポーリングとクレジット管理で、テキストから動画、画像から動画、ストーリーボードのワークフローを構築。

Sora 2 Pro API が提供するもの

本番環境対応の Sora 2 Pro パイプラインを立ち上げるために必要なすべて。

7つのモデルバリエーション

品質とコストに応じて、sora-2 テキスト/画像、sora-2 stable テキスト/画像、または sora-2-pro テキスト/画像/ストーリーボードを選択します。

ストーリーボードサポート

shots[] とショットごとの duration でマルチショットナラティブを定義。

統一されたレスポンス

エラー時に HTTP ステータスが 200 でも、すべてのエンドポイントは code/message/data を返します。

認証とベース URL

ベース URL: https://freesoragenerator.com。API キーまたはログイン済みセッション Cookie で認証します。

  • Authorization: Bearer [TOKEN](API キー sk- または JWT)、またはセッション Cookie を送信。
  • POST ボディには Content-Type: application/json を送信。
  • ほとんどのエラーは HTTP 200 を返します。常に code フィールドを確認してください。

コアエンドポイント

/sora-pro でタスクを作成し、check-result でステータスをポーリング。

生成タスクを作成

入力を検証し、クレジットを差し引き、タスクを作成して taskId を返します。

メソッド: POSTパス: /api/v1/video/sora-pro

ペイロードパラメータ

  • model: 必須。次のいずれか: sora-2-text-to-video、sora-2-image-to-video、sora-2-text-to-video-stable、sora-2-image-to-video-stable、sora-2-pro-text-to-video、sora-2-pro-image-to-video、sora-2-pro-storyboard。
  • prompt: 条件付き。sora-2-pro-storyboard 以外のすべてのモデルで必須。
  • imageData: 条件付き。data:image/png;base64,... のような Base64 データ URL。imageUrl がない場合、image-to-video で必須。
  • imageUrl: 条件付き。imageData が提供されていない場合に使用される公開画像 URL。
  • aspectRatio: オプション。portrait または landscape。デフォルト: landscape。
  • nFrames: オプション。10、15、または 25(ストーリーボードのみ)。デフォルトはモデルによって異なります。
  • size: オプション。standard または high。Pro テキスト/画像モデルのみ。
  • removeWatermark: オプション。非ストーリーボードモデルのウォーターマークを削除。デフォルト: true。
  • isPublic: 任意。動画を公開表示するかどうか。デフォルトは true。
  • shots: 条件付き。sora-2-pro-storyboard で必須。'{ Scene, duration }' の配列。

注意事項

  • 両方が提供された場合、imageData が imageUrl より優先されます。
  • prompt はストーリーボードではオプションで、プロバイダーには送信されません。コンテンツには shots を使用してください。
  • nFrames はモデルごとの許可値に正規化されます。
  • removeWatermark は非ストーリーボードモデルではデフォルトで true です。
  • shots には Scene(大文字の S)と duration > 0 を含める必要があります。

リクエスト例

テキストから動画
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,
    "isPublic": true
  }'
画像から動画
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-stable",
    "prompt": "Turn this image into a dynamic 15s clip.",
    "imageData": "data:image/png;base64,iVBORw0KGgoAAA...",
    "aspectRatio": "portrait",
    "nFrames": "15"
  }'
ストーリーボード
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"
  }'

レスポンス例

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

タスクステータスを照会

taskId でステータス、進捗、結果 URL を取得。

メソッド: POSTパス: /api/video-generations/check-result

ペイロードパラメータ

  • taskId: 必須。create で返された taskId。

注意事項

  • ステータス値: pending | running | succeeded | failed | cancelled。
  • result_url と result_urls は準備完了時に最終動画リンクを返します。

リクエスト例

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"
  }'

レスポンス例

{
  "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
  }
}

ユーザークレジットを取得

タスク送信前に現在のクレジット残高を確認。

メソッド: POSTパス: /api/get-user-credits

注意事項

  • オプションのエンドポイント。事前チェックに便利。
  • left_credits と is_vip フラグを返します。

リクエスト例

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

レスポンス例

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

一般的なエラーコード

エラーはレスポンスボディの code フィールドで表示されます。

  • 401: 認証されていません
  • 402: クレジット不足
  • -1: 無効な model パラメータ
  • -1: prompt は必須です
  • -1: image-to-video には画像が必要です
  • -1: ストーリーボードには shots が必要です
  • -1: 画像のアップロードに失敗しました
  • -1: 動画生成レコードの作成に失敗しました

クレジットリファレンス

クレジットはモデル、サイズ、nFrames によって異なります。この表をベースラインとして使用してください。

モデルパラメータクレジット
sora-2-text-to-video10s50
sora-2-text-to-video15s70
sora-2-image-to-video10s50
sora-2-image-to-video15s70
sora-2-text-to-video-stable10s100
sora-2-text-to-video-stable15s150
sora-2-image-to-video-stable10s100
sora-2-image-to-video-stable15s150
sora-2-pro-text-to-videostandard + 10s375
sora-2-pro-text-to-videostandard + 15s675
sora-2-pro-text-to-videohigh + 10s825
sora-2-pro-text-to-videohigh + 15s1,575
sora-2-pro-image-to-videostandard + 10s375
sora-2-pro-image-to-videostandard + 15s675
sora-2-pro-image-to-videohigh + 10s825
sora-2-pro-image-to-videohigh + 15s1,575
sora-2-pro-storyboard10s375
sora-2-pro-storyboard15s675
sora-2-pro-storyboard25s675

1. タスクを作成

モデルとペイロードで POST /api/v1/video/sora-pro を実行。

2. 進捗を追跡

ステータスが succeeded または failed になるまで /api/video-generations/check-result をポーリング。

3. クレジットを確認

大量バッチを送信する前にオプションで /api/get-user-credits を呼び出し。

よくある質問

API キーまたはセッション Cookie を使用できますか?

はい。Authorization: Bearer [TOKEN](API キーまたは JWT)またはログイン済みセッション Cookie を送信してください。

ストーリーボードの shots をどのようにフォーマットしますか?

shots を '{ Scene, duration }' の配列として提供します。Scene は大文字で、duration は秒数です。

なぜモデルによってクレジットが異なるのですか?

クレジットはすべてのモデルで nFrames に応じてスケールします。Pro モデルは size によっても異なります。

便利なリソース

Sora 2 Pro API を始める

API キーを生成して、今日から最初の Sora 2 Pro ワークフローを開始しましょう。