GPT-6 Sol・Claude Opus 5.5 提供開始GPT-6 Sol の料金は 5.6 Sol の半額

Grok Imagine Video API:Pythonでテキストから動画を作る

ジョブを作り、状態を確認し、MP4をダウンロードする。そのまま動くスクリプトです。

Kiki, OmniaKey COO読了目安 6分
このページの内容

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をポーリングしてファイルを取得してください。
6秒のGrok Imagine Video 1.5クリップから取った4コマ。窓辺の木のテーブルに湯気の立つ白いコーヒーカップがあり、カメラが近づき、4.5秒でソーサーにスプーンが現れる
2026年10月24日にOmniaKey経由のGrok Imagine Video 1.5で生成:6秒、720p、16:9。0.0、3.0、4.5、5.9秒のコマです。

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
参照画像、音声、1080pgrok-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のフィールド
promptinput.prompt
durationparameters.duration
resolutionparameters.resolution
aspect_ratioparameters.ratio
request_idid
video.urlassets[0].url

xAIのフィールド名はVideos APIリファレンス、OmniaKeyのフィールド名は動画APIのドキュメントによるもので、どちらも2026年10月24日確認です。

どのパラメータを指定できる?

プロンプトと3つの設定で結果が決まります。

パラメータ使用した値指定できる値
duration64〜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に入れて、スクリプトを実行します。

bash
pip install requests
export OMNIAKEY_API_KEY="your-key"

これが実行したスクリプトそのままです:

python
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日の実行で、最後に出た行はこれです:

text
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の料金です。

モデル480p720p1080p
1.50.08 USD0.14 USD0.25 USD
1.5 Lite0.02 USD0.03 USD0.14 USD
旧モデル0.05 USD0.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_keyIdempotency-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が返ります:

json
{"error":{"code":"missing_idempotency_key","message":"Idempotency-Key is required and must be at most 255 characters"}}

ジョブのキーのままプロンプトを変えて送るとHTTP 409が返ります:

json
{"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で無音にできます。ダウンロードしたファイルから音声を消すには、次を実行します:

bash
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 Video 1.5xAI動画生成APIAI動画Python

関連記事

最近の記事