NezhaGateNezhaGate
POST https://nezhagate.com/v1/videos/generations

Gemini Omni Flash の動画生成(非同期): Google の次世代動画モデルです。1 つのエンドポイントでパラメータが方式を決めます。画像なしならテキストから動画、image に 1 枚なら最初のフレーム、images に 2 枚なら最初と最後のフレーム、image_role=reference なら 1〜3 枚を被写体・スタイルの参照として使います。duration=6 / 8 / 10 秒、resolution=720P / 1080P、size=16:9 / 9:16 で、ネイティブ音声付き。プロンプトの絵コンテに沿って複数カットで物語を組み立てるのが得意です。ジョブ ID を返し(HTTP 202)、GET /v1/videos/jobs/{id} を status=succeeded になるまでポーリングすると、結果が data[0].url に入ります(再ホストした mp4、60 日間保存)。秒単位 $0.05 で課金し($0.30 / $0.40 / $0.50)、2 つの解像度は同じ料金です。失敗時は全額返金します。

Playground で試す →

認証

Header
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

コンソールで API Key を作成すると利用を開始できます。

リクエストボディ

パラメータ種別必須説明
model string はい モデル ID。ここでは gemini-omni-flash です。
prompt string はい 動画の内容、カメラ、動きを説明するテキストプロンプト。最大 20000 文字(中国語も英語も同じく文字数で数えます)。参照画像を渡した場合は、プロンプトの中で @Image1 / @Image2 のように何枚目かを指名できます。
duration integer いいえ 長さ: 6 / 8 / 10 秒のいずれか(既定は 6)。seconds とも書けます。秒単位 $0.05 で課金し、それぞれ $0.30 / $0.40 / $0.50 です。
resolution string いいえ 解像度: 720P / 1080P(既定は 720P)。どちらも同じ料金です。
size string いいえ 画面比率: 16:9(既定)/ 9:16。aspect_ratio とも書けます。それ以外の比率は拒否されます。
audio boolean いいえ このモデルは常にネイティブ音声を生成します。このパラメータは省略できます(false は拒否されます)。
image string いいえ 参照画像 1 枚(公開 URL、data: URI または base64):最初のフレームとして使い、画像から動画を作ります。画像を送らなければテキストから動画になります。
images array いいえ 画像は最大 3 枚(1 枚あたり最大 16MB、jpg / png / webp / gif)。image_role=first_frame(1〜2 枚のときの既定):1 枚目が最初のフレーム、2 枚目が最後のフレームです。image_role=reference:1〜3 枚を被写体・スタイルの参照として使い、フレームにはしません。3 枚なら既定で reference です。reference_images とも書けます(reference と同じ)。上限を超えた場合は切り詰めずに拒否します。
image_role string いいえ 画像の使い方: first_frame(最初のフレーム。2 枚なら 2 枚目が最後のフレーム)または reference(被写体・スタイルの参照)。省略時は 1〜2 枚なら first_frame、3 枚なら reference として扱います。

リクエスト例

cURL
# 1) submit -> 202 {"id":"img_...","status":"queued"}
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "gemini-omni-flash", "prompt": "a paper crane unfolding over a misty lake", "duration": 8, "resolution": "720P", "size": "16:9"}'
# first frame: also pass  "image": "https://example.com/first-frame.png"
# first + last frame: "images": ["https://example.com/first.png", "https://example.com/last.png"]
# 1-3 references: "images": [...], "image_role": "reference"
# 2) poll every ~5s until status=succeeded, then read data[0].url
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'

レスポンス

200 · JSON
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "queued",
  "model": "gemini-omni-flash"
}

非同期の動画ジョブ(送信 → ポーリング)

送信すると即座に HTTP 202 とジョブ ID が返ります。status=succeeded になるまでポーリングし、data[0].url(mp4 のリンク)を読んでください。指定できる長さ・解像度・画面比率は上のパラメータ表にあります。image パラメータを付けると画像から動画になります。

curl · 送信(テキストから動画)
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "gemini-omni-flash", "prompt": "夕暮れにサーフィンをする猫", "size": "16:9"}'
画像から動画:image パラメータも渡してください(最初のフレームとして使う参照画像。公開 URL、data: URI、base64 のいずれか)。
最初と最後のフレーム:images に 2 枚(1 枚目が最初、2 枚目が最後)。参照画像:images に 1〜3 枚を渡し "image_role": "reference" を付けます。画像の人物やスタイルが動画に登場しますが、フレームとしては使いません。
レスポンス例
{ "id": "img_3f9a...c2", "object": "video.generation.job", "status": "queued", "model": "gemini-omni-flash" }
curl · ポーリング
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'
レスポンス例
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "succeeded",
  "model": "gemini-omni-flash",
  "data": [{ "url": "https://img.nezhagate.com/i/9f86d081a8....mp4" }]
}

🕑 data[0].url は当方の画像ホストのリンクで、60 日間保存された後に自動的に削除されます。継続して使う場合は、ダウンロードしてご自身のストレージや CDN に保存してください。

秒単位で課金($0.05/秒 x 長さ)。確保額と請求額は完全に一致し、生成が失敗またはタイムアウトした場合は自動的に全額返金します。

エラーコード

エラー本文には常に error.message / error.type / error.code / error.param が含まれます。分岐は code で行ってください。一覧は接続ガイドにあります。

HTTPcode説明
401invalid_api_keyAPI Key が欠落または無効
402insufficient_quota残高不足または Key が上限超過
400invalid_requestモデルまたはパラメータが非対応
429rate_limit_exceeded上流のレート制限
502upstream_errorすべての上流回線が失敗