Sora 2 + 安定版 + プロ
品質とコストのニーズに合ったモデル文字列 (sora-2、sora-2-stable、または sora-2-pro) を選択してください。
import os
import time
import requests
base_url = "https://sora2-api.com"
headers = {
"Authorization": f"Bearer {os.environ['TIKDEK_API_KEY']}",
"Content-Type": "application/json",
}
created = requests.post(
f"{base_url}/api/v1/video/sora-video",
headers=headers,
json={
"model": "sora-2-pro",
"prompt": "Slow camera push-in, rain moving across the frame",
"url": "https://example.com/reference-frame.jpg",
"aspectRatio": "16:9",
"webHook": "-1",
"isPublic": False,
},
timeout=30,
)
created.raise_for_status()
task_id = created.json()["data"]["id"]
for _ in range(90):
response = requests.post(
f"{base_url}/api/video-generations/check-result",
headers=headers,
json={"taskId": task_id},
timeout=30,
)
response.raise_for_status()
task = response.json()["data"]
if task["status"] == "succeeded":
video = requests.get(task["result_url"], timeout=120)
video.raise_for_status()
open("result.mp4", "wb").write(video.content)
break
if task["status"] == "failed":
raise RuntimeError(task.get("error_message") or "Generation failed")
time.sleep(4)
else:
raise TimeoutError(f"Task {task_id} did not finish in time")実際のTikdekエンドポイントを使い、すべての終了状態を処理します。
品質とコストのニーズに合ったモデル文字列 (sora-2、sora-2-stable、または sora-2-pro) を選択してください。
タスクを作成し、チェック結果エンドポイントをポーリングして、SSE を使用せずにステータスと進行状況の同期を維持します。
最大 20 個のビデオ生成タスクを同時に処理します。より高い制限についてはお問い合わせください。
本番で安全に運用する
キーはサーバーに置き、再試行を制限し、タスクIDを記録して結果を保存します。
プロンプトとともに Tikdek リクエストを送信し、返された taskId を保存します。
ステータスが成功または失敗になるまで、結果確認エンドポイントを呼び出します。
result_url/result_urls のストレージを利用した URL を使用して、生成されたビデオを提供またはダウンロードします。
コンソールで API キーを作成し、それを Authorization: Bearer YOUR_API_KEY として含めます。キーはいつでもローテーションできます。
create を呼び出した後、taskId を保存します。ステータスが成功または失敗するまで 3 ~ 5 秒ごとに /api/video-generations/check-result を呼び出し、その後 result_url/result_urls を使用します。
タスクが失敗した場合はクレジットが自動的に返金され、監査証跡のチェック結果ペイロードでrefund_trans_noとcredits_refunded=trueが返されます。
APIキーでサンプルを実行し、負荷が増えたらWebhookを追加します。