MiniMax H3 Python API: セットアップガイドと非同期ワークフロー - API

MiniMax H3 Python API: セットアップガイドと非同期ワークフロー

MiniMax H3 Python API のワークフローを学びましょう。認証、非同期の動画タスク、ステータスポーリング、ファイル取得、エラー対応、本番運用のヒントまで解説します。

2026-08-03
MiniMax H3 Wikiチーム
クイックガイド
  • MiniMax H3 python api は、作成・ポーリング・取得の非同期ワークフローを使用します。
  • 認証 には、Bearer 認証ヘッダー経由で送信する API キーが必要です。
  • Python 統合 では、タスク作成、ステータス確認、ファイル取得に requests を使用できます。
  • ベストプラクティス は、API キーをソースコードではなく環境変数に保持することです。
  • 出力の取り扱い では、完了した動画を永続的なアプリケーションストレージへコピーする必要があります。

MiniMax H3 python api の概要

MiniMax H3 は、自然言語プロンプトと対応する参照素材を受け付けるマルチモーダル AI 動画生成モデルです。Python API は、動画ジョブの送信、レンダリング進行状況の監視、そして生成プロセス全体でリクエストを開き続けなくても完了済みファイルを取得したいアプリケーション向けに設計されています。

標準的なワークフローは非同期です。アプリケーションは動画生成リクエストを送信し、task_id を受け取り、一定間隔でタスク状態を確認し、タスクが Success に到達した後に出力を取得します。この構成は、Web アプリケーション、社内ツール、コンテンツパイプライン、バッチ生成システムに適しています。

ワークフロー段階API アクションアプリケーションの結果
認証Authorization ヘッダーで API キーを送信するリクエストが認可される
タスク作成プロンプトと出力設定を送信するAPI が task_id を返す
状態ポーリングID でタスクを照会するアプリケーションが進行状況を追跡する
完了成功したタスク応答を読むfile_id が利用可能になる
ファイル取得ファイルのメタデータまたは URL を要求する動画をダウンロードできる

MiniMax H3 の公式ワークフローは、時間と解像度を設定できる短尺動画生成をサポートしています。選択したエンドポイントやアカウント設定によっては、利用可能な制御項目にテキストプロンプト、画像参照、動画参照、音声指示、アスペクト比、出力解像度が含まれる場合があります。

一般的なパラメータ用途
modelMiniMax-H3H3 動画モデルを選択する
prompt映画的なシーンの説明視覚および音声の結果を定義する
duration6短尺動画の長さを指定する
resolution768P出力解像度を選択する
task_id作成時に返される非同期ジョブを識別する
file_id成功時に返される完成した動画ファイルを識別する
ワークフローのヒント

生成はすべて、直接のファイル応答ではなくジョブとして扱ってください。一時的なネットワーク中断の後でもポーリングを継続できるよう、タスク ID はすぐに保存しましょう。

Python API のセットアップと認証

統合の実装を始める前に、Python 環境を準備し、HTTP クライアントをインストールし、MiniMax API キーをアプリケーションコードの外に保存してください。この方法により、リポジトリ、ログ、スクリーンショット、クライアント側バンドルへのキーの意図しない露出を抑えられます。

以下の例では Python と requests パッケージを使用します。アプリケーションで使う環境にインストールしてください。

python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install requests

スクリプトを実行する前に、API キーを環境変数として設定します。

export MINIMAX_API_KEY="YOUR_API_KEY"

Windows PowerShell では次を使用します。

$env:MINIMAX_API_KEY="YOUR_API_KEY"
セットアップ項目推奨方法重要な理由
API キーMINIMAX_API_KEY に保存する資格情報をソースファイルから分離できる
HTTP クライアントタイムアウト付きの requests を使う無期限に停止する呼び出しを防ぐ
ベース URL1 つの設定値にまとめるエンドポイント変更が容易になる
ペイロード送信前に検証する回避可能な 400 応答を減らす
ロギング認証ヘッダーを絶対に出力しないデバッグ中の資格情報を保護する

ホスト型 API

  • 管理されたモデル提供
  • 非同期タスク処理
  • API エンドポイント経由のファイル取得

Python Requests

  • シンプルな HTTP 統合
  • スクリプトとバックエンドサービスで利用可能
  • ステータスとエラー処理が容易

本番ワーカー

  • キューベースのタスク処理
  • リトライとバックオフのサポート
  • 永続的な結果保存
セキュリティ警告

MiniMax API キーを、ブラウザ JavaScript、モバイルクライアントコード、公開ノートブック、またはコミット済みの設定ファイルに置かないでください。リクエストは保護されたバックエンド経由でルーティングしてください。

動画を作成し、ポーリングし、取得する

基本的な MiniMax H3 Python API 統合では、次の 4 段階の手順に従ってください。重要な設計原則は、タスク送信とタスク監視を分離することです。本番サービスは、同じ生成を再送信せずにポーリングを再開できる必要があります。

1

動画タスクを作成する

H3 モデル名、プロンプト、時間、解像度を含む JSON ペイロードを作成します。それを Bearer トークン付きで動画生成エンドポイントに送信します。その他の作業を行う前に、返された task_id を保存してください。

2

タスク状態をポーリングする

保存した ID を使ってタスクエンドポイントを照会します。タスクが queued、preparing、processing の間は継続します。リクエストを連続送信するのではなく、各リクエストの間に待機時間を入れてください。

3

成功または失敗を処理する

状態が Success または Fail になったらポーリングを停止します。成功時は file_id を読み取ります。失敗時は返されたエラーメッセージを記録し、問題を修正した後に新しいタスクを作成します。

4

出力ファイルを取得する

完了したファイル ID をファイル取得エンドポイントで使用します。結果を引き続き利用可能にする必要がある場合は、返されたダウンロード URL またはファイル内容を永続的なアプリケーションストレージにコピーしてください。

簡潔な Python 実装は次のようになります。

import os
import time
import requests

API_KEY = os.environ["MINIMAX_API_KEY"]
BASE_URL = "https://api.minimax.io/v1"

HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}

payload = {
    "model": "MiniMax-H3",
    "prompt": (
        "A premium perfume bottle rotating on black glass, "
        "dramatic studio lighting, synchronized ambient sound."
    ),
    "duration": 6,
    "resolution": "768P",
}

create_response = requests.post(
    f"{BASE_URL}/video_generation",
    headers=HEADERS,
    json=payload,
    timeout=60,
)
create_response.raise_for_status()

task_id = create_response.json()["task_id"]
print("Created task:", task_id)

while True:
    query_response = requests.get(
        f"{BASE_URL}/query/video_generation",
        headers=HEADERS,
        params={"task_id": task_id},
        timeout=30,
    )
    query_response.raise_for_status()

    task = query_response.json()
    status = task.get("status")
    print("Current status:", status)

    if status == "Success":
        file_id = task["file_id"]
        print("Completed file:", file_id)
        break

    if status == "Fail":
        message = task.get("error_message", "Video generation failed")
        raise RuntimeError(message)

    time.sleep(10)
ステータス意味推奨アクション
Preparingタスクを初期化中ポーリングを継続する
Queueingタスクが処理待ち間隔を空けてポーリングを継続する
Processing動画生成中ポーリングを継続する
Success動画の準備完了file_id を取得する
Fail生成が失敗したエラーを読み取り、リクエストを修正する

完了したタスクについては、返された ID を使ってファイル情報を取得します。

file_id = "FILE_ID_FROM_SUCCESS_RESPONSE"

file_response = requests.get(
    f"{BASE_URL}/files/retrieve",
    headers=HEADERS,
    params={"file_id": file_id},
    timeout=30,
)
file_response.raise_for_status()

file_data = file_response.json()
download_url = file_data.get("file", {}).get("download_url")
if not download_url:
    download_url = file_data.get("download_url")

print("Download URL:", download_url)

正確なレスポンス形状はエンドポイントのバージョンによって異なる場合があります。統合時には JSON レスポンスを確認し、現在の MiniMax video generation API documentation に従ってください。

信頼できるパターン

適用できる場合は、task_idfile_id をデータベースに保存してください。これにより、レンダリング中やファイル取得中にワーカーが再起動しても統合を復旧できます。

エラーハンドリングと本番運用のベストプラクティス

シンプルなスクリプトでは HTTP リクエスト失敗時に例外を送出できますが、本番向け統合にはより多くの構造が必要です。クライアントエラーと一時的なサービスエラーを分離し、回数制限付きリトライを使い、元のタスク識別子を保持してください。

エラー主な原因対処方針
400無効なペイロードまたは未対応の設定モデル、時間、解像度、入力を検証する
401API キーの欠落または無効環境変数とヘッダーを確認する
403アカウントまたは権限制限アカウントアクセスとサービス権限を確認する
429レート制限またはクォータ到達指数バックオフを使い、リクエストをキュー化する
500–599一時的なサービス問題回数を限定して再試行する
Failレンダリングタスクが失敗したタスクメッセージを読み、リクエストを見直す

一時的な失敗に対しては、直ちに再試行するのではなく指数バックオフを使用してください。

import time

def wait_with_backoff(attempt, base_delay=5, max_delay=60):
    delay = min(base_delay * (2 ** attempt), max_delay)
    time.sleep(delay)

ポーリングでは、ワーカーが無期限に稼働し続けないよう最大待機時間を設定します。

started_at = time.time()
max_wait_seconds = 30 * 60

while time.time() - started_at < max_wait_seconds:
    # Query the task here.
    # Break on Success or Fail.
    time.sleep(10)

raise TimeoutError("The MiniMax H3 task exceeded the polling limit.")

ローカルテストを超えて運用する際は、次のベストプラクティスを適用してください。

  • プロンプトとペイロードを再現可能に保つ。 プロンプト、モデル、時間、解像度、参照ファイル識別子を保存します。
  • バックグラウンドワーカーを使う。 Web リクエストはジョブを作成するだけで、動画レンダリングの完了を待つべきではありません。
  • 重複送信を防ぐ。 create エンドポイントを呼び出す前に内部リクエスト ID を割り当てます。
  • 入力を早期に検証する。 API 送信前に、欠落ファイル、未対応形式、競合する設定を拒否します。
  • 出力 URL を保護する。 返されたダウンロードリンクはアプリケーションデータとして扱い、重要なファイルは管理されたストレージへコピーします。
  • 利用状況を監視する。 成功タスク、失敗タスク、リトライ回数、総生成秒数を追跡します。

本番準備チェックリスト:

  • API キーを保護された環境変数に保存する
  • 返されたすべてのタスク ID を保存する
  • リクエストのタイムアウトと回数制限付きリトライを使う
  • 遅延と最大待機時間を設けてポーリングする
  • 完了した動画を永続ストレージに保持する
重要な制限

公開された H3 モデルの重みをダウンロードすることは、ホスト型 API の使用とは別です。ホスト型サービスの機能、プラットフォーム側の処理、API ファイル配信がローカルデプロイにも存在すると想定しないでください。

MiniMax H3 Python API FAQ

Q: MiniMax H3 Python API は同期型ですか?

いいえ。標準的な統合は非同期です。タスクを作成し、task_id を保存し、query エンドポイントをポーリングし、タスクが Success に達した後にファイルを取得します。

Q: MiniMax H3 API キーはどこに保存すべきですか?

保護された環境変数またはシークレットマネージャーに保存してください。Python ファイル、公開リポジトリ、ブラウザコード、アプリケーションログへのハードコーディングは避けてください。

Q: タスクが Fail を返した場合はどうすればよいですか?

返されたエラー情報を読み取り、プロンプトとリクエスト設定を確認し、参照入力を検証し、問題を修正した後にのみ新しいタスクを送信してください。

Q: ローカルの H3 重みでも同じ Python ワークフローを使えますか?

直接は使えません。ホスト型 API は HTTP エンドポイントと task ID を使用しますが、ローカルの重みではリポジトリの推論環境、依存関係、ハードウェア構成、実行コマンドが必要です。

最も安全な開始点は、短い H3 タスクを 1 つ作成し、タイムアウト付きでポーリングし、結果を取得し、デバッグに必要な各レスポンスを記録する小さなバックエンドスクリプトです。その経路が機能したら、キュー、永続ストレージ、リトライポリシー、アプリケーションレベルのリクエスト追跡を追加してください。