ビデオ(Video)
Google 動画 API 仕様
Veo 3.1、Veo 3.1 Fast、Gemini Omni Flash、Gemini Omni 1.1 の呼び出し仕様。
このページは、Google の動画モデル veo-3.1、veo-3.1-fast、gemini-omni-flash、gemini-omni-flash-1.1 の呼び出し仕様です。これらのモデルは、他の動画モデルと同じく POST /v1/videos で作成し、GET /v1/videos/{id} でポーリングします。認証、素材のアップロード、ポーリングのステータス、結果のダウンロード、エラー処理は動画 API 完全呼び出し仕様を参照してください。このページでは、Google の動画モデルに固有のフィールドとルールだけを説明します。
2026-10-10 更新。Google の動画モデルの新しいリクエストはすべてポーリングを使います。
callback_urlは設定しないでください。
モデル一覧
| モデル | 位置付け | 解像度 | 長さ | 主な機能 |
|---|---|---|---|---|
veo-3.1 | 正式版、画質重視 | 720P / 1080P / 4K | 4、6、8 秒、デフォルト 8 秒 | テキストから生成、開始フレーム、開始・終了フレーム、参照画像 1–3 枚、動画延長、ネイティブの同期音声 |
veo-3.1-fast | 正式版、速度とコスト重視 | 720P / 1080P / 4K | 4、6、8 秒、デフォルト 8 秒 | veo-3.1 と同じ |
gemini-omni-flash | プレビュー版 | 720P 固定 | 3–10 秒、デフォルト 3 秒 | テキストから生成、開始フレーム、開始・終了フレーム、参照画像は最大 10 枚(参照動画 1 本と組み合わせ可) |
gemini-omni-flash-1.1 | プレビュー版、生成と編集 | 720P / 1080P / 4K | 3–10 秒、デフォルト 3 秒 | テキストから生成、開始フレーム、開始・終了フレーム、参照画像最大 10 枚と参照動画最大 3 本、動画編集、動画延長 |
共通ルール
- アスペクト比:
ratio(またはaspect_ratio)は16:9と9:16のみに対応し、デフォルトは16:9です。 - 解像度:
resolutionは720p、1080p、4kのいずれかで、デフォルトは720pです。360pを指定した場合は 720P で生成・課金されます。 size:1 つのフィールドで解像度とアスペクト比を同時に指定できます。例:1280x720、1080x1920、3840x2160。アスペクト比16:9または9:16だけを書くこともできます。size、ratio、resolutionの値が矛盾すると 400 が返されます。- 本数:1 回のリクエストで生成する動画は 1 本で、
nは 1 のみです。 - 画像:1 枚あたり 20 MiB 以下で、次のいずれかの形式で指定します。
- 公開 HTTPS リンク(推奨)
- Data URI。例:
data:image/png;base64,... - プレフィックスなしの PNG、JPEG、WebP の Base64
multipart/form-dataのファイル。フィールド名はinput_reference、image、images、first_frame、last_frameのいずれか
- 画像形式:Veo は JPEG と PNG のみ、Gemini Omni は PNG、JPEG、WebP に対応しています。
- 動画:公開 HTTPS リンクのみで、形式は MP4、MOV、WebM、サイズは 64 MiB 以下です。ローカルの動画はローカル素材のアップロードの手順で先にアップロードし、返された
urlをvideoに指定します。動画の Data URI、Base64、multipart の動画ファイルは受け付けません。 - 参照動画のフィールド:トップレベルの
videoまたはvideosを使い、metadata.referenceVideosは使いません。Google の動画モデルはいずれも参照音声に対応していません。 - 結果:完了後の
video_urlはassets.88api.ai上の MP4 の URL です。そのままダウンロードすることも、次の延長や編集のリクエストでvideoとして使うこともできます。
Veo 3.1 / Veo 3.1 Fast
| シナリオ | リクエストの書き方 | ルール |
|---|---|---|
| テキストから動画生成 | 画像と動画を送らない | 4、6、8 秒 |
| 開始フレーム | images に画像 1 枚(image、input_reference、metadata.firstFrame も可) | 4、6、8 秒 |
| 開始・終了フレーム | images に画像 2 枚を順番に指定、または metadata.firstFrame と metadata.lastFrame を使用 | 4、6、8 秒 |
| 参照画像 | images に画像 3 枚。参照画像が 1–2 枚の場合は metadata.video_mode: "reference" を追加 | 8 秒固定、最大 3 枚 |
| 動画延長 | task: "extend"、video に動画 1 本 | 1 回につき 7 秒追加。長さ、アスペクト比、解像度、size は送れない |
metadata.video_modeでframes(開始フレーム、または開始・終了フレーム)かreference(参照画像)を明示的に選べます。taskでtext_to_video、image_to_video、reference_to_video、extendを指定することもできます。両者が矛盾すると 400 が返されます。generate_audio(またはmetadata.generateAudio)のデフォルトはtrueで、ネイティブの同期音声を生成します。falseにすると完成動画に音声トラックは付きません。音声の有無は料金に影響しません。negative_prompt(2000 文字以内)とseed(0–4294967295)はトップレベルに書くことも、metadata.negativePrompt、metadata.seedとして書くこともできます。- 動画延長の入力は 1–30 秒の MP4 である必要があり、「完成動画の長さ − 入力の長さ」で求めた追加秒数で課金されます。
- Veo は参照動画、参照音声、
temperature、top_pに対応していません。
4K のテキストから動画生成:
{
"model": "veo-3.1",
"prompt": "雨の夜の街を走る銀色のスポーツカー、ローアングルの追従ショット、ネオンの映り込み、映画のような質感",
"duration": 8,
"resolution": "4k",
"ratio": "16:9",
"generate_audio": true
}開始・終了フレーム(2 枚の画像が順に開始フレーム、終了フレームになります):
{
"model": "veo-3.1-fast",
"prompt": "早朝の誰もいない広場から、夜に明かりが灯った同じ構図へなめらかに移り変わる",
"duration": 6,
"size": "1920x1080",
"images": [
"https://cdn.example.com/start.jpg",
"https://cdn.example.com/end.jpg"
],
"metadata": {
"negativePrompt": "blur, distortion"
}
}参照画像(8 秒固定):
{
"model": "veo-3.1",
"prompt": "参照画像の人物の顔と服装を保ったまま、海辺をゆっくり歩く",
"duration": 8,
"images": [
"https://cdn.example.com/character-front.jpg",
"https://cdn.example.com/character-side.jpg"
],
"metadata": {
"video_mode": "reference"
}
}動画延長:
{
"model": "veo-3.1",
"prompt": "現在のショットを続け、人物はそのまま前へ歩き続ける",
"task": "extend",
"video": "https://assets.88api.ai/media/task-videos/2026/10/example.mp4"
}ローカルの画像を開始フレームとしてアップロード(metadata は JSON 文字列として送信):
curl --request POST 'https://api.88api.ai/v1/videos' \
--header 'Authorization: Bearer sk-xxxx' \
--form 'model=veo-3.1-fast' \
--form 'prompt=カメラがゆっくり寄り、背景の雲が自然に流れる' \
--form 'seconds=8' \
--form 'size=1280x720' \
--form 'metadata={"video_mode":"frames"}' \
--form 'input_reference=@start.jpg;type=image/jpeg'Gemini Omni Flash / Gemini Omni 1.1
task を指定しない場合、送信した素材によってタスクが決まります。
| 送信した素材 | タスク |
|---|---|
| 画像も動画もなし | テキストから動画生成 |
| 画像 1 枚のみ | 開始フレームからの生成 |
first_frame、または first_frame と last_frame(metadata.firstFrame、metadata.lastFrame にも記述可) | 開始フレーム、または開始・終了フレームからの生成 |
| 画像 2 枚以上、画像と動画、または複数の動画 | 参照生成 |
| 動画 1 本のみ | 動画編集(gemini-omni-flash-1.1 のみ) |
taskでtext_to_video、image_to_video、reference_to_video、edit、extendを明示的に指定することもできます。- Veo とは異なり、
imagesに入れた 2 枚の画像は参照画像として扱われます。開始・終了フレームが必要な場合はfirst_frameとlast_frameを使ってください。 - 開始・終了フレームのフィールドは、通常の参照画像と併用できません。
gemini-omni-flashの出力は 720P のみで、動画編集と動画延長には対応していません。参照動画は参照画像と一緒に送る必要があります。gemini-omni-flash-1.1は参照画像を最大 10 枚、参照動画を最大 3 本まで受け付けます。- 動画編集(1.1):
videoに動画 1 本を指定し、変更したい内容をプロンプトに書きます。ratio、aspect_ratio、sizeは送れず、アスペクト比は元の動画のまま引き継がれます。resolutionは指定できます。 - 動画延長(1.1):
task: "extend"と 1 本のvideoを指定します。duration、ratio、sizeは送れません。- 1 回につき約 10 秒追加されます。
resolutionは720p(デフォルト)または1080pで、4K には対応していません。 - 入力は 1–30 秒の MP4 である必要があります。これより長い動画は、末尾の一部(10 秒を推奨)を切り出してから延長してください。
- 「完成動画の長さ − 入力の長さ」で求めた追加秒数で課金されます。任意で
input_duration(入力動画の秒数)を送れます。実測の長さと 0.1 秒を超えて異なる場合、リクエストは拒否されます。
- 延長結果は完全な MP4 で、入力部分はモデルによって再生成されます。元の動画に似ていますが、フレーム単位のコピーではありません。つなぎ合わせる場合は元の動画をすべて残し、延長結果のうち入力の長さより後ろの部分だけを切り出して元の動画の後ろにつなげてください。
temperature(0–2)とtop_p(0–1)は任意で指定できます。Gemini Omni には音声生成のスイッチはありません。
開始フレームからの生成(Flash):
{
"model": "gemini-omni-flash",
"prompt": "カメラがゆっくり寄り、焼き菓子から湯気が立ちのぼる",
"duration": 5,
"ratio": "9:16",
"image": "https://cdn.example.com/start.jpg"
}参照画像と参照動画(1.1、4K):
{
"model": "gemini-omni-flash-1.1",
"prompt": "参照動画のカメラのテンポを保ち、被写体を参照画像の製品に置き換える",
"duration": 8,
"resolution": "4k",
"images": ["https://cdn.example.com/product.jpg"],
"video": "https://cdn.example.com/reference.mp4"
}動画延長(1.1):
{
"model": "gemini-omni-flash-1.1",
"prompt": "現在の場面を続け、水面の波紋が自然に広がっていく",
"task": "extend",
"resolution": "1080p",
"video": "https://assets.88api.ai/media/task-videos/2026/10/example.mp4"
}