Python ガイド

Pythonで画像から動画AI APIを使う

1枚の画像から非同期タスクを作成し、安全に追跡して完成動画を取得します。

Python:作成、確認、ダウンロード
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")

完全なPythonリクエストフロー

実際のTikdekエンドポイントを使い、すべての終了状態を処理します。

Sora 2 + 安定版 + プロ

品質とコストのニーズに合ったモデル文字列 (sora-2、sora-2-stable、または sora-2-pro) を選択してください。

予測可能なポーリング

タスクを作成し、チェック結果エンドポイントをポーリングして、SSE を使用せずにステータスと進行状況の同期を維持します。

20 の同時リクエスト

最大 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を追加します。