Grok Imagine Video API:Pythonでテキストから動画を作る
ジョブを作り、状態を確認し、MP4をダウンロードする。そのまま動くスクリプトです。

このページの内容
Grok Imagine Video APIは非同期のAPIです。プロンプトを送ってジョブを作り、ジョブIDを完了までポーリングし、最後にMP4をダウンロードします。現在のモデルはgrok-imagine-video-1.5です。2026年10月24日、6秒・720pのクリップはリクエストから46秒でできあがり、音声トラックも入っていました。
以下では、そのまま動くスクリプト、指定すべきパラメータ、1本の料金と所要時間、実際に出るエラーを書きます。
先に結論
- モデル:
grok-imagine-video-1.5。xAIは1.5がプレビューを終え、2026年6月16日に一般提供になったとしています(xAI)。 - 設定:
durationは4〜15秒、resolutionは"720p"、ratioは"16:9"などです。 - 料金: xAIの定価で720pは1秒0.14ドル、6秒なら0.84ドルです(xAIのモデルページ、2026年10月24日確認)。
- 時間: 6秒・720pのジョブは46秒でした。1時間以内に同じタスクIDをポーリングしてファイルを取得してください。

Grok Imagine Video APIの仕組みは?
ジョブは3ステップです。作成、ポーリング、ダウンロード(xAIの動画生成ガイド、2026年10月24日確認)。
xAIのAPIではhttps://api.x.ai/v1/videos/generationsにモデルIDとプロンプトをPOSTし、request_idを受け取ります。次にhttps://api.x.ai/v1/videos/{request_id}をGETでポーリングし、ジョブがdoneになったらvideo.urlを読みます(同じガイド)。
| 用途 | モデルID |
|---|---|
| 参照画像、音声、1080p | grok-imagine-video-1.5 |
| 簡単な動画、最安 | grok-imagine-video-1.5-lite |
| 旧モデル | grok-imagine-video |
xAIは簡単な動画にはgrok-imagine-video-1.5-liteを、参照画像・音声・固定フレーム・ネイティブ1080pが必要なときはgrok-imagine-video-1.5を勧めています(動画の概要、2026年10月24日確認)。静止画はGrok Imagine画像APIガイドでxAIの3つの画像モデルを扱っています。Grokと他の動画APIを比べるなら動画モデルのまとめをどうぞ。
OmniaKeyはGrok Imagine Video 1.5のAPIアクセスを販売しているので、例はOmniaKey経由で実行しました。呼び出しはPOST https://api.omniakey.com/v1/media/tasksにIdempotency-Keyヘッダーを付けて行い、202とidが返ります。状態はGET /v1/media/tasks/{id}で確認します(OmniaKeyメディアの概要、2026年10月24日確認)。作成・ポーリング・ダウンロードの流れは、動画APIのドキュメントにあるKling 3.0、Seedance、Wan 3.0、MiniMax H3、HappyHorseでも同じです。以下の料金はすべてxAI自身のものです。
| xAIのフィールド | OmniaKeyのフィールド |
|---|---|
prompt | input.prompt |
duration | parameters.duration |
resolution | parameters.resolution |
aspect_ratio | parameters.ratio |
request_id | id |
video.url | assets[0].url |
xAIのフィールド名はVideos APIリファレンス、OmniaKeyのフィールド名は動画APIのドキュメントによるもので、どちらも2026年10月24日確認です。
どのパラメータを指定できる?
プロンプトと3つの設定で結果が決まります。
| パラメータ | 使用した値 | 指定できる値 |
|---|---|---|
| duration | 6 | 4〜15秒 |
| resolution | "720p" | 最大720p |
| ratio | "16:9" | 9種類 |
durationはOmniaKeyでは必須で、料金も決まります(OmniaKeyの動画ドキュメント)。OmniaKeyのこのモデルの最小は4秒、xAIの最大は15秒なので(動画生成ガイド)、4〜15秒に収めてください。resolutionは小文字の"720p"を送ります。OmniaKeyのGrok動画は最大720pです(OmniaKeyメディアの概要)。xAI自身のAPIには480p(既定)とネイティブ1080pもあります(生成ガイド)。ratioは1:1、16:9、9:16、4:3、3:4、3:2、2:3、21:9、5:2の9種類で、既定は16:9です(動画生成ガイド)。私たちは16:9で実行しました。nは1のみです(OmniaKeyの動画ドキュメント)。- プロンプトは、ショット、光、カメラの動きを書いてから
Sound:の行を足します。そこに書いたものは画面にも現れます。私たちの音声行にはスプーンと書いただけで、画面にスプーンと手が現れました。
Pythonでテキストから動画にするには?
requestsを入れ、キーをOMNIAKEY_API_KEYに入れて、スクリプトを実行します。
pip install requests
export OMNIAKEY_API_KEY="your-key"
これが実行したスクリプトそのままです:
import os
import time
import uuid
import requests
API = "https://api.omniakey.com/v1/media/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['OMNIAKEY_API_KEY']}"}
PROMPT = (
"Close-up of a white ceramic coffee cup on a wooden café table by a window, "
"morning sunlight, steam curling up from the coffee, the camera slowly pushes in, "
"shallow depth of field. Sound: quiet café chatter and a spoon clinking on a saucer."
)
# 1. ジョブを作る。このリクエストをそのまま再試行するときだけ、同じ Idempotency-Key を使う。
job = requests.post(
API,
headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
json={
"model": "grok-imagine-video-1.5",
"type": "video",
"operation": "text_to_video",
"input": {"prompt": PROMPT},
"parameters": {"duration": 6, "resolution": "720p", "ratio": "16:9"},
},
timeout=30,
)
job.raise_for_status()
task = job.json()
print("task:", task["id"], task["status"])
# 2. ジョブが終わるまでポーリングする。遅いジョブは失敗ではない。同じ id を問い続ける。
while True:
task = requests.get(f"{API}/{task['id']}", headers=HEADERS, timeout=30).json()
if task["status"] not in ("queued", "processing"):
break
time.sleep(5)
if task["status"] != "succeeded":
raise SystemExit(f"job ended {task['status']}: {task.get('error')}")
# 3. すぐにダウンロードする。署名付き URL は約 1 時間で失効する。
asset = task["assets"][0]
with open("coffee.mp4", "wb") as f:
f.write(requests.get(asset["url"], timeout=120).content)
print("saved coffee.mp4", asset["mime_type"], asset["byte_size"], "bytes")
2026年10月24日の実行で、最後に出た行はこれです:
saved coffee.mp4 video/mp4 2659230 bytes
スクリプトの最初の行はタスクIDと状態を表示します。このIDを控えてください。スクリプトが止まったとき、ジョブを探す手がかりになります。
6秒・720pのジョブはこう返ってきました:
| 返ってきた内容 | 値 |
|---|---|
| 完了までの時間 | 46 s |
| 長さ | 6.04 s |
| サイズ | 1280×720 |
| フレームレート | 24 fps |
| 音声 | ステレオ AAC |
| ファイルサイズ | 2.7 MB |
クリップはプロンプトどおりです。白い陶器のカップに黒いコーヒー、白いソーサー、窓辺の木のテーブル、立ちのぼる湯気、奥のカフェはぼけています。カメラは一定の速さで寄り、カップは画面幅の約3分の1から約2分の1に大きくなります。4.5秒で右からスプーンが入ってきます。音声は静かなトラックで、4.8秒に鋭いピークが1つあり、スプーンがソーサーに触れた瞬間と一致します。
1本の料金と所要時間は?
xAIは動画を秒単位で課金し、料金はモデルと解像度で変わります。モデルページ(2026年10月24日確認)は解像度ごとの価格を載せており、料金ページの一律1秒0.080ドルは480pの料金です。
| モデル | 480p | 720p | 1080p |
|---|---|---|---|
| 1.5 | 0.08 USD | 0.14 USD | 0.25 USD |
| 1.5 Lite | 0.02 USD | 0.03 USD | 0.14 USD |
| 旧モデル | 0.05 USD | 0.07 USD | — |
この定価だとこうなります:
- 1.5の720pで6秒:6 × 0.14 = 0.84ドル。
- 1.5の480pで8秒(既定の長さ):8 × 0.08 = 0.64ドル。
- 1.5の1080pで15秒:15 × 0.25 = 3.75ドル。
- 1.5 Liteの720pで6秒:6 × 0.03 = 0.18ドル。
xAIが公開しているのは秒単位の動画料金だけです(料金ページ、2026年10月24日確認)。
OmniaKeyでは、リクエストした秒数に1秒あたりの料金を掛けた額がジョブ作成時に残高から引かれ、失敗したジョブは自動で返金されます(OmniaKeyの動画ドキュメント、2026年10月24日確認)。6秒をリクエストして6.04秒のファイルが返り、請求は6秒でした。現在の料金はGrok Imagine Video 1.5のページにあります。
このジョブはリクエストからsucceededまで46秒でした。xAIは生成に「通常は数分かかる」とし、同社のSDKは最大10分待ちます(生成ガイド)。数秒おきにポーリングしてください。ループに期限を付けるなら余裕を持たせ、過ぎたら新しいリクエストを送らず、タスクIDでジョブを引き直します。
署名付きリンクの有効期限は約1時間で、私たちのリンクはジョブ完了のちょうど1時間後に切れました。タスクの記録は24時間残るので、もう一度ポーリングすれば新しいリンクを取得できます(OmniaKeyメディアの概要、2026年10月24日確認)。
どんなエラーが出る?
多くのエラーはジョブができる前に返るので、料金はかかりません。ジョブ作成後に失敗した場合はfailedで終わり、返金されます。OmniaKeyのメディアのドキュメント(2026年10月24日確認)には次のようなものがあります:
| エラー | 原因 | 対処 |
|---|---|---|
400 missing_idempotency_key | Idempotency-Keyヘッダーがない | 付ける |
409 idempotency_key_reused | 同じキーで別の内容 | ジョブごとに新しいキー |
400 model_price_error | 未対応の長さか解像度 | 4〜15秒、"720p" |
403 model_not_allowed | キーにこのモデルの権限がない | キーの権限を確認 |
503 no_available_channel | モデルが一時的に使えない | 後で再試行 |
タスクがfailed | 提供元のエラー | error.messageを読む |
2026年10月24日、最初の2つをわざと起こしました。ヘッダーを省くとHTTP 400が返ります:
{"error":{"code":"missing_idempotency_key","message":"Idempotency-Key is required and must be at most 255 characters"}}
ジョブのキーのままプロンプトを変えて送るとHTTP 409が返ります:
{"error":{"code":"idempotency_key_reused","message":"Idempotency-Key was already used with a different request"}}
- 遅いジョブはまだ実行中と考えてください。同じタスクIDをポーリングし続けます。新しい
Idempotency-Keyで送り直すと、2つ目のジョブが始まり、2回ぶん請求されます。 - 再送されたリクエストは元のタスクと
200を返しますが、assetsリストはありません。スクリプトが先にタスクを取得してからassetsを読むのはそのためです。
よくある質問
Grok Imagine Video APIは無料ですか?
いいえ。xAIは秒単位の料金しか公開しておらず、最も安いのは1.5 Liteの480pで1秒0.02ドルです(モデルページ、2026年10月24日確認)。
Grok Imagineの動画は何秒まで作れますか?
xAIのAPIでは1〜15秒で、既定は8秒です(動画生成ガイド)。OmniaKey経由なら4〜15秒です。OmniaKeyのこのモデルの最小が4秒(OmniaKeyの動画ドキュメント、2026年10月24日確認)で、xAIの最大が15秒です。
Grok Imagine Videoは音が出ますか?
はい。既定で音声トラックが付き、効果音、環境音、セリフが映像と一緒に生成されます(動画生成ガイド;xAIの発表)。私たちのクリップはステレオAACのトラックでした。xAIのAPIではgenerate_audio: falseで無音にできます。ダウンロードしたファイルから音声を消すには、次を実行します:
ffmpeg -i coffee.mp4 -an -c:v copy coffee-silent.mp4
Grok Imagineは画像から動画を作れますか?
作れます。xAIのAPIではimageとして渡します(公開URL、base64のdata URI、Files APIのfile_idのいずれか。JPEG、PNG、WebP)。その画像が最初のフレームになり、プロンプトは省略でき、クリップは画像のアスペクト比を保ちます(画像から動画のガイド;Videos APIリファレンス)。OmniaKey経由で画像から動画を作る例は、最後まで動作を確認できたらここに追加します。
Grok Imagine Video 1.5と1.5 Liteの違いは?
Liteは1秒あたりの料金が最も安いモデルです。テキストから動画と画像から動画に対応し、リップシンクした音声が付き、1080pは720pをアップスケールして作ります。参照画像、声の参照、キーフレームは使えません(動画の概要;Liteモデルページ)。ここでの例は1.5で、OmniaKeyではGrok Imagine Video 1.5として呼び出せます。
grok-imagine-video-1.5-previewはまだ使えますか?
xAIはまだ別名として載せていますが、1.5はプレビューを終え、2026年6月16日に一般提供になりました(モデルページ;xAIの発表)。grok-imagine-video-1.5を使ってください。
この記事で紹介しているモデル
関連記事
Grok Imagine APIの使い方:Pythonで呼び出し、3モデルを比較
Grokの画像モデル3つを、同じ4つのプロンプトで試しました。どれを使うべきかが分かります。
2026年版AI動画APIモデル比較
最適な動画モデルは一つではありません。長いショット、最初のフレームの再現、複数参照画像、予算の予測しやすさ、キューの速さのどれを優先するかで選択が変わります。
Kling 3.0 vs Seedance 2.5
どちらもOmniaKeyで稼働中で、同じカットを担当できます。違いは課金の作り方です。片方はmodeとdurationの行列で1生成ごとに固定課金、もう片方は出力秒数かける解像度で課金され、参照画像を使えるのは片方だけです。