メインコンテンツへスキップ
本文では、Sora Videos Generation API 接続説明を紹介します。これは、カスタムパラメータを入力することでSora公式の動画を生成できるものです。

申請プロセス

APIを使用するには、まず Sora Videos Generation API の該当ページでサービスを申請する必要があります。ページに入ったら、「Acquire」ボタンをクリックします。以下の図のように: まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされ、登録とログインを促されます。ログインまたは登録後、現在のページに自動的に戻ります。 初回申請時には無料のクレジットが付与され、このAPIを無料で使用できます。

基本使用

まず、基本的な使用方法を理解します。これは、プロンプト prompt、参照画像リンクの配列 image_urls、およびモデル model を入力することで、処理された結果を得ることができます。具体的な内容は以下の通りです:

ここでは、リクエストヘッダーを設定しています。これには以下が含まれます:
  • accept:受け取りたいレスポンス結果の形式。ここでは application/json、すなわちJSON形式を記入します。
  • authorization:APIを呼び出すためのキー。申請後、直接ドロップダウンから選択できます。
また、リクエストボディを設定しています。これには以下が含まれます:
  • model:生成する動画のモデル。主にsora-2sora-2-proがあり、現在sora-2sora-2-prosizedurationパラメータを自由に選択できる動画を生成できます。sora-2-proは25秒の動画をサポートしますが、sora-2は10秒、15秒の動画のみをサポートします。
  • size:今回の動画生成タスクの解像度。smalllargeがあります。
  • image_urls:アップロードする参照画像リンクまたはBase64エンコードされた配列。
  • duration:今回の動画生成タスクの長さ。10秒、15秒、25秒があります。現在、sora-2-proのみが25秒をサポートしています。
  • character_start/character_end:画面内のキャラクターの開始位置と終了位置(0-1)。主体の位置を制御するために使用します。
  • orientation:画幅の方向。landscapeportraitsquareをサポートします。
  • prompt:プロンプト。
  • callback_url:結果をコールバックするURL。
選択後、右側にも対応するコードが生成されていることがわかります。以下の図のように:

「Try」ボタンをクリックするとテストが行えます。上の図のように、以下の結果が得られました:
{
  "success": true,
  "task_id": "6bf7fb83-5814-4e3e-a4ad-bfa0c26c0b33",
  "trace_id": "96166698-4b66-478d-a26b-77a7269c9e01",
  "data": [
    {
      "id": "sora-2:task_01k7770rgsevxsmtpbn7xnm5gh",
      "video_url": "https://filesystem.site/gptimage/vg-assets/assets%2Ftask_01k7770rgsevxsmtpbn7xnm5gh%2Ftask_01k7770rgsevxsmtpbn7xnm5gh_genid_0bf958d3-cae7-4298-b7b6-99ae439a1ea6_25_10_10_14_06_975715%2Fvideos%2F00000%2Fsrc.mp4?st=2025-10-10T12%3A30%3A38Z&se=2025-10-16T13%3A30%3A38Z&sks=b&skt=2025-10-10T12%3A30%3A38Z&ske=2025-10-16T13%3A30%3A38Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=8ebb0df1-a278-4e2e-9c20-f2d373479b3a&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=jigY6Z5qp8%2BTXYobaW0EAJ4%2Fbx6G7t6V1P0iyDeUq48%3D&az=oaivgprodscus",
      "state": "succeeded"
    }
  ]
}
返された結果には複数のフィールドがあり、以下のように説明されます:
  • success:この時点での動画生成タスクの状態。
  • task_id:この時点での動画生成タスクID。
  • trace_id:この時点での動画生成追跡ID。
  • data:この時点での動画生成タスクの結果リスト。
    • id:この時点での動画生成タスクの動画ID。
    • video_url:この時点での動画生成タスクの動画リンク。
    • state:この時点での動画生成タスクの状態。
満足のいく動画情報が得られたことがわかります。結果の data の動画リンクアドレスに基づいて生成されたSora動画を取得するだけです。 また、対応する接続コードを生成したい場合は、生成されたものを直接コピーできます。例えば、CURLのコードは以下の通りです:
curl -X POST 'https://api.acedata.cloud/sora/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "size": "large",
  "duration": 15,
  "orientation": "landscape",
  "prompt": "cat running on the river",
  "model": "sora-2"
}'

画像から動画タスク

画像から動画タスクを実行したい場合、まずパラメータimage_urlsに参照画像リンクを渡す必要があります。以下の内容を指定できます:
  • image_urls:この画像から動画タスクで使用する参照画像リンクの配列。
記入例は以下の通りです:

記入が完了すると、自動的に以下のコードが生成されます:

対応するコード:
import requests

url = "https://api.acedata.cloud/sora/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "size": "large",
    "duration": 15,
    "orientation": "landscape",
    "prompt": "cat running on the river",
    "model": "sora-2",
    "image_urls": ["https://cdn.acedata.cloud/11wfp4.png"]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
実行をクリックすると、すぐに結果が得られることがわかります。
{
  "success": true,
  "task_id": "dd392ff0-dcb7-4c7a-afd0-9bd4f65c803a",
  "trace_id": "04fd151c-e942-4c1c-a6ab-9a1b1fe54172",
  "data": [
    {
      "id": "sora-2:task_01k777af4hfmg9g7yfvwsc6zws",
      "video_url": "https://filesystem.site/gptimage/vg-assets/assets%2Ftask_01k777af4hfmg9g7yfvwsc6zws%2Ftask_01k777af4hfmg9g7yfvwsc6zws_genid_92bae0c5-1703-4a5f-9d9f-c9ed2f9e7176_25_10_10_14_12_924695%2Fvideos%2F00000%2Fsrc.mp4?st=2025-10-10T12%3A37%3A32Z&se=2025-10-16T13%3A37%3A32Z&sks=b&skt=2025-10-10T12%3A37%3A32Z&ske=2025-10-16T13%3A37%3A32Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=5j4dibeaSsDmEka5c%2B9CKHZhRPdqfClQ0tIh03TWXsM%3D&az=oaivgprodscus",
      "state": "succeeded"
    }
  ]
}
生成された効果は、画像から動画を生成するもので、結果は上記と似ています。

キャラクター生成動画タスク

キャラクター生成動画タスクを希望する場合、まずパラメータcharacter_urlにキャラクターを作成するための動画リンクを渡す必要があります。動画には必ず実在の人間が映ってはいけません。そうしないと失敗します。以下の内容を指定できます:
  • character_url:キャラクターを作成するための動画リンク。動画には必ず実在の人間が映ってはいけません。そうしないと失敗します。
記入例は以下の通りです:

記入が完了すると、自動的に以下のコードが生成されます:

対応するコード:
import requests

url = "https://api.acedata.cloud/sora/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "size": "small",
    "duration": 10,
    "orientation": "landscape",
    "prompt": "cat running on the river",
    "character_url": "https://cdn.acedata.cloud/pdidf5.mp4",
    "model": "sora-2",
    "character_end": 3,
    "character_start": 1
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
実行をクリックすると、すぐに結果が得られることがわかります。以下の通りです:
{
  "success": true,
  "task_id": "d9bf5461-29b5-47fd-be90-1fe9197df259",
  "trace_id": "b7992643-9207-40d6-956b-7577728acc67",
  "data": [
    {
      "id": "sora-2:task_01k8ykrztefavaypw6xanw305b",
      "video_url": "https://filesystem.site/cdn/20251101/bee4eeeb4c4660b46dac4548a1ffbc.mp4",
      "state": "succeeded"
    }
  ]
}
生成された効果はキャラクター生成動画で、結果は上記と似ています。

非同期コールバック

Sora Videos Generation APIによって生成される時間は比較的長く、約1〜2分かかります。APIが長時間応答しない場合、HTTPリクエストは接続を維持し続け、追加のシステムリソースを消費します。そのため、このAPIは非同期コールバックのサポートも提供しています。 全体の流れは、クライアントがリクエストを開始する際に、追加でcallback_urlフィールドを指定します。クライアントがAPIリクエストを開始すると、APIはすぐに結果を返し、現在のタスクIDを示すtask_idフィールド情報を含みます。タスクが完了すると、生成された動画の結果がPOST JSON形式でクライアントが指定したcallback_urlに送信され、その中にもtask_idフィールドが含まれます。これにより、タスクの結果をIDで関連付けることができます。 以下の例を通じて、具体的にどのように操作するかを理解しましょう。 まず、WebhookコールバックはHTTPリクエストを受信できるサービスであり、開発者は自分が構築したHTTPサーバーのURLに置き換える必要があります。ここでは、デモのために公開されたWebhookサンプルサイトhttps://webhook.site/を使用します。このサイトを開くとWebhook URLが得られます。以下のように示されています: このURLをコピーすれば、Webhookとして使用できます。ここでのサンプルはhttps://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daaです。 次に、フィールドcallback_urlを上記のWebhook URLに設定し、対応するパラメータを入力します。具体的な内容は以下のようになります:

実行をクリックすると、すぐに結果が得られることがわかります。以下の通りです:
{
  "task_id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea"
}
少し待つと、https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daaで生成された曲の結果を観察できます。以下のように示されています: 内容は以下の通りです:
```json
{
    "success": true,
    "task_id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea",
    "trace_id": "fb751e1e-4705-49ea-9fd4-5024b7865ea2",
    "data": [
        {
            "id": "sora-2:task_01k777hjrbfrgs2060q5zvf2a5",
            "video_url": "https://filesystem.site/gptimage/vg-assets/assets%2Ftask_01k777hjrbfrgs2060q5zvf2a5%2Ftask_01k777hjrbfrgs2060q5zvf2a5_genid_b8e2e5d1-a579-49ca-a21c-cb3869685cce_25_10_10_14_15_147334%2Fvideos%2F00000%2Fsrc.mp4?st=2025-10-10T12%3A38%3A49Z&se=2025-10-16T13%3A38%3A49Z&sks=b&skt=2025-10-10T12%3A38%3A49Z&ske=2025-10-16T13%3A38%3A49Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=p4aMqXqkP%2FI1IhOVGCB9JL8vUUvfNBBF12ESpKhKXOk%3D&az=oaivgprodscus",
            "state": "succeeded"
        }
    ]
}
結果には task_id フィールドが含まれており、他のフィールドは上記と似ています。このフィールドを使用することで、タスクの関連付けが可能です。

エラーハンドリング

APIを呼び出す際にエラーが発生した場合、APIは対応するエラーコードとメッセージを返します。例えば:
  • 400 token_mismatched:不正なリクエスト、パラメータが欠落または無効である可能性があります。
  • 400 api_not_implemented:不正なリクエスト、パラメータが欠落または無効である可能性があります。
  • 401 invalid_token:未承認、無効または欠落した認証トークン。
  • 429 too_many_requests:リクエストが多すぎます、レート制限を超えました。
  • 500 api_error:内部サーバーエラー、サーバーで何かがうまくいきませんでした。

エラー応答の例

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

結論

この文書を通じて、Sora Videos Generation APIを使用して、入力プロンプトと参照画像を通じて動画を生成する方法を理解しました。この文書がAPIの接続と使用に役立つことを願っています。ご不明な点がございましたら、いつでも技術サポートチームにお問い合わせください。