Skip to main content

概要

VEO 3.1 Official は、Google Veo 3.1 向けの APIYI の 公式リレーチャネル です。Google AI Studio の veo-3.1-generate-preview / veo-3.1-fast-generate-preview 非同期エンドポイントへの透過的なパススルーで、モデル ID、レスポンスフィールド、制約は上流と同一です。リクエストごとの課金Default グループで利用可能 で、現在利用できる中で最も導入しやすい公式品質の Veo 3.1 チャネルです。
🎬 特長: Google AI Studio への透過的なパススルー + ネイティブ同期音声 + 柔軟な 4 / 6 / 8 秒の長さ + 3 段階の解像度(720p / 1080p / 4k)+ 1 回あたり $0.3 からの課金 + Default グループ + リクエストごとの課金または従量課金の Priority Tokens(専用グループは不要です。純粋な従量課金はサポートされません)。広告用ショート、EC 素材、SNS コンテンツ、製品デモ など、公式品質を最も簡単に導入したい用途に適しています。
⚠️ CDN URL は返されません — MP4 ストリームは自分でダウンロードする必要があります: このチャネルは現在、配布可能な公開 / CDN URL を返しませんstatus: "completed"したら、GET /v1/videos/{task_id}/content を呼び出して MP4 バイナリを取得し、エンドユーザーに配信する前に自分の OSS / CDN に保存してください。ブラウザからは /content に直接アクセスできません(認証ヘッダーが必要です)。以下の API エンドポイント を参照してください。

テキストから動画への API

POST /v1/videos、テキストのみから動画を生成します — JSON リクエストボディ、最もシンプルな入口です。

画像から動画への API

POST /v1/videos + input_reference の multipart アップロードで、静止画をクリップにアニメーション化します。

公式 vs リバース

既存の VEO 3.1 (リバースチャネル) に対する比較マトリクスです。

ビジュアル API テスト

このエンドポイントを iCover のビジュアルテストツールで直接デバッグできます — コードは不要です。

非同期タスクの検索 / ダウンロード

送信済みの動画タスクを表示し、APIYI コンソールで動画リンクをダウンロードします — API の外にある参照エントリです。

APIYI の VEO 3.1 公式版を使う理由

Google 公式 / Vertex AI チャネルのドロップイン代替で、導入時の手間, 安定性, コスト にまたがる本番シナリオ向けに最適化されています:

公式パススルー · 同一の Model IDs

Google AI Studio の Veo 3.1 非同期エンドポイントへの透過的なパススルーです。Model IDs(veo-3.1-generate-preview / veo-3.1-fast-generate-preview)は上流と完全に一致し、リクエストとレスポンスのフィールドおよび制約も 1 対 1 で対応しています。

手間のない導入 · グループ切り替え不要

呼び出しは Default グループ で動作し、Pay-per-request または Pay-as-you-go Priority Tokens を利用できます(純粋な Pay-as-you-go はサポートされません)。専用のグループ切り替えは不要で、既存の Pay-per-request Tokens をそのまま使えます。Veo 3.1 における、最も手間の少ない公式品質チャネルです。

無制限の同時実行数 · 本番スケール

透過プロキシ付きの集約アカウントプールで、バッチ撮影、広告パイプライン、大規模本番を線形にスケールできます。Google のアカウントごとのティア上限はありません

リクエスト単位の料金 · Google より 60%以上安い

veo-3.1-fast-generate-preview $0.3/req、veo-3.1-generate-preview $1.2/req で、4/6/8 秒および 720p/1080p/4k で一律です。Google の公式 8秒 1080p と比べて 62~68% 節約でき、チャージ特典 を組み合わせるとさらにお得になります。失敗したタスクは課金されません。

グローバルな手間なしアクセス

海外サーバーやプロキシは不要です — 中国本土のデータセンター、住宅回線、または海外ノードから api.apiyi.com に直接接続できます。Google AI Studio / Vertex AI の越境設定は一切不要です。

専門サポート · エンタープライズ導入

当社チームは動画生成に深い知見があります: prompt engineering、解像度選定、バッチ制作、後処理まで対応します。企業のお客様向けに、PoC から本番までの技術サポートをフルで提供します。

主な機能

ネイティブ同期オーディオ

Veo 3.1 は 同期オーディオ付きの動画(環境音、会話、音楽)をネイティブに出力します。別途オーディオのポストプロダクションは不要です。プロンプトで音声の意図を指定してください。

4 / 6 / 8 秒の柔軟な長さ

seconds 文字列 enum: "4" / "6" / "8". 1リクエストごとの課金で、長さは価格に影響しません。1080p / 4k ティアには "8" が必要です。

3 つの解像度ティア

720p / 1080p / 4k1リクエストごとの一律料金。横向き(16:9)と縦向き(9:16)を自由に切り替えられます。

正確な指示追従

Veo 3.1 は、カメラの動き、物体物理、キャラクター表現の忠実度でこのティアをリードします。豊富なカメラ言語キーワード(push/pull/pan/dolly、low/high angles)に対応しています。

画像から動画へ (input_reference)

1 枚の画像を視覚的なアンカーとしてアップロードし、静止コンテンツをアニメーション化します。画像から動画へ を参照してください。

非同期タスクモデル

submit はすぐに task_id を返します。ステータスは個別にポーリングし、最終動画をダウンロードできます。バッチ管理や失敗時の再開フローに最適です。

OpenAI互換プロトコル

base_url=https://api.apiyi.com/v1 + Bearer 認証。生の HTTP または OpenAI SDK の低レベル client.post() で動作します。

失敗は無料

非同期モードでは、失敗した生成、コンテンツポリシーによる拒否、パラメータエラーは 課金されませんstatus=completed のタスクのみ課金対象です

料金

APIYIはリクエストごとの従量課金です — サポート対象の継続時間/解像度の組み合わせ内では定額で、長時間出力や高解像度出力でも追加料金はありませんai.google.dev/gemini-api/docs/pricingの公開料金によると、Googleの公式Veo 3.1は秒単位で課金されます。以下の割引は8秒動画で計算しています。
課金に関する注意:
  • モデル名ごとにリクエスト単位で課金され、継続時間(4/6/8秒)、解像度(720p/1080p/4k)、またはinput_referenceの有無に関係ありません — 4Kを選んでも720pと同じ料金です
  • 非同期モードでは、生成失敗 / コンテンツポリシーによる拒否 / 容量エラーのいずれも課金されません
  • Top-Up Promotions のチャージ特典ティアにより、実質コストはさらに下がります
  • 4Kはレンダリングが4〜6倍遅く、ファイルは約10倍大きくなります — 日常利用では1080pをデフォルトにしてください
  • Googleの公式4K料金は $0.30/sec(fast)/ $0.60/sec(standard)で、8秒あたり $2.40 / $4.80 です(出典: ai.google.dev/gemini-api/docs/pricing

グループ設定

VEO 3.1 Official は Default グループ(1x)で動作し、専用のグループ切り替えは不要です。Token の課金モードは Pay-per-request または Pay-as-you-go Priority である必要があります。純粋な Pay-as-you-go はサポートされていません(必要に応じて console で Token モードを切り替えてください)。
導入時の手間の比較: Sora 2 Official(専用の Sora2Official グループ + Pay-as-you-go Priority のみが必要)と比べると、VEO 3.1 Official は Default グループで動作し、Pay-per-request と Pay-as-you-go Priority の両方に対応します — 既存の Pay-per-request Token をそのまま差し込み、base_url を変更するだけのゼロコンフィグ導入に最適です

技術仕様

1080p / 4k 解像度では、seconds"8" でなければなりません"4" または "6" は上流側で拒否されます。720p では 3 つの再生時間すべてがサポートされています。

API エンドポイント

⚠️ MP4 バイナリダウンロードのみ — CDN URL は返されませんこのチャネルは現在、レスポンス内に CDN / 公開 URL を一切出力しません — 動画ファイルは GET /v1/videos/{task_id}/content 経由の MP4 バイナリストリーム としてのみ取得できます(Authorization: Bearer ヘッダーが必要です)。影響:
  • レスポンスには video_url / data.url / その他の直接配布可能なリンクは返されません
  • フロントエンドはエンドポイント URL を <video> タグに直接入れることはできません — auth ヘッダーなしのブラウザーリクエストは 401 になります
  • status: "completed" したらすぐに、MP4 をダウンロードして自前の OSS / CDN に保存し、ユーザーにはその URL を配信してください
  • 動画の保持期間は公式には文書化されていません — 遠隔の task_id に動画取得を長期依存しないでください
エンドポイントの選択: 主要 api.apiyi.com; バックアップ ゲートウェイ vip.apiyi.com / b.apiyi.com は同じ動作です。

主要パラメータ

⚡ パラメータの完全リファレンス: model / prompt / seconds / size / metadata.* の型、デフォルト値、制約を含む完全な表は、テキストから動画 - パラメータリファレンス へ移動してください。このセクションでは、特に落とし穴になりやすい 3 つのパラメータ のみを解説します。

seconds(動画の長さ)

長さフィールドの名前は seconds であり(duration ではありません)、文字列でなければなりません"4" / "6" / "8")。数値を渡すと、次のようになります:
よくある落とし穴: フィールド名を duration にしても、黙って無視されます。 duration はこのチャンネルでは認識されないため → 破棄されるため → 長さはデフォルトの 4 秒 にフォールバックします:
  • 720p(および 4 秒を許可する他のティア)では: エラーにはなりませんが、4 秒しか取得できません(これがまさに「8s を送ったのに 4s になった」ケースです)
  • 1080p / 4k では: 4 秒は不正なので、Resolution 1080p requires duration seconds to be 8 seconds, but got 4 でエラーになります
正しい使い方: 値 "8"(文字列)を持つ seconds フィールドを送信してください。
パラメータの優先順位: metadata.durationSeconds > seconds > 8

metadata.resolution(解像度ティア)

パラメータの優先順位: metadata.resolution > size > 720p

⚠️ generateAudio を渡さないでください

Veo 3 / 3.1 は標準で音声対応ですが、generateAudio パラメータは渡してはいけません。上流側で INVALID_ARGUMENT によって拒否されます。音声を制御するには、意図を prompt に書き込んでください:
「海岸の灯台、夕暮れ時。波、遠くの海鳥、弱い風の音、映画のような雰囲気」

Best Practices

1

用途に応じてモデルを選ぶ

  • イテレーション / バッチプレビューveo-3.1-fast-generate-preview ($0.3/request)
  • 最終納品 / 4Kveo-3.1-generate-preview ($1.2/request)
  • 同じ prompt + シードで両方を実行し、見た目で選びます
2

まず4秒で検証する

新しい prompt ごとに、seconds: "4"から始めてカメラの方向とスタイルを検証します(60–90秒のレンダリング、$0.3)。見た目が固まったら、8秒または1080pにスケールアップしてください。
3

同期待機ではなく、非同期ポーリングを使う

公式チャンネルは 非同期のみ です。POST で送信して task_id を受け取り → GET /v1/videos/{task_id} を8〜10秒ごとにポーリングして status: "completed" になるまで待機 → /content からダウンロードします。webhook はありません。ポーリングのみです
4

ティアごとにクライアントのタイムアウトを設定する

  • 720p / 1080p: 3分のハードタイムアウト
  • 4K: 10分のハードタイムアウト
  • POST 送信(multipart): 30秒の最小タイムアウト
5

完了したらすぐにダウンロードする

statuscompleted に変わったら、自前の OSS / CDN にすぐダウンロードしてください — リモートの task_id に長期依存しないでください。/content エンドポイントは、status が切り替わった直後に 400 を返すことがあります。4秒後に再試行してください(サンプルクライアントにはこれが組み込み済みです)。
6

音声の意図を prompt に埋め込む

generateAudio は渡さないでくださいINVALID_ARGUMENT が返ります)。環境音、セリフ、BGM を指定する場合は、prompt に「波、遠くの海鳥、弱い風の音」と書いてください。
7

そちら側でレート制限をかける

同時実行数の上限は公開されていませんが、実際には 10 件の同時送信はすべて正常にキューイングされました。本番側では in-flight を 10 以下に制限することを推奨します。429 / 5xx には指数バックオフを使ってください。

エラーコードと再試行

推奨クライアント設定:
  • POST送信タイムアウト: 30秒(multipart アップロードではさらに長く必要になる場合があります)
  • ポーリング間隔: 8~10秒; 最大待機時間 720p/1080p 3分, 4K 10分
  • 5xx と failed に対して指数バックオフで再試行(1~2回の試行を推奨)
  • /content を 4秒間隔で 3~5回再試行してください

FAQ

Official(このページ): Google AI Studio の上流エンドポイントへの透過パススルーです。Model IDs は Google upstream(veo-3.1-generate-preview / veo-3.1-fast-generate-preview)と一致し、リクエストごとに $0.3 / $1.2、非同期エンドポイントのみです。Reverse(既存の VEO 3.1): Google Flow へのリバースエンジニアリングされたアクセスです。Model IDs は veo-3.1-fast / veo-3.1 / -fl 系で、リクエストごとに $0.15 からと安価です。ストリーミング同期 と非同期モードの両方に対応し、さらに フレームから動画(先頭/末尾フレーム)も使えます。完全版の Official と Reverse の判断マトリクス をご覧ください。両チャネルは共存しているため、ビジネス要件で選んでください。
リクエストフィールドは seconds です(string "4" / "6" / "8")。duration と名付けても認識されず、静かに破棄されて length はデフォルトの 4 秒にフォールバックします。これが「8s を送ったのに 4s しか返らない」問題の根本原因です。なぜ文字列でなければならないかというと、バックエンドの Go 構造体では、このフィールド(内部名 duration)を string と定義しているため、数値はデコーダ層で parse_request_failed: cannot unmarshal number into Go struct field ... duration of type string により拒否されます(そのエラー内の duration はバックエンド内部のフィールド名で、リクエスト自体はまだ seconds を送っています)。覚えておいてください: seconds を送り、値は引用符で囲んでください: "4" / "6" / "8"
Veo 3 / 3.1 は ネイティブで音声対応の 動画モデルですが、generateAudio パラメータは渡してはいけません(上流は INVALID_ARGUMENT を返します)。音を制御したい場合は、意図を prompt に書き込んでください:
「海岸の灯台の夕景。波音、遠くの海鳥、弱い風の音、映画のような雰囲気」
  • 同等のパラメータでは、レンダリング時間はほぼ同じです(720p 8 秒の実測: fast 83 秒、standard 78 秒)。fast は速いのではなく、安いだけです($0.3 対 $1.2)
  • デフォルトは veo-3.1-fast-generate-preview にしてください
  • 最終納品時や、ディテールの忠実度 / 物理的一貫性が重要なときは veo-3.1-generate-preview に切り替えてください
  • 本番で A/B テストする場合は、同じ prompt + seed で両方を実行し、見た目で選んでください
多くのケースではおすすめしません:
  • リクエストあたりの価格が同じなので魅力的に見えます
  • しかしレンダリングは 4〜6 倍遅い です(720p 80 秒 → 4K 350 秒)
  • ファイルサイズは約 10 倍大きくなります(720p 4MB → 4K 40MB)— 帯域とストレージのコストも倍増します
  • 1080p であれば、ほとんどの再生シナリオで見た目は十分です
それでも 4K が必要な場合: veo-3.1-generate-preview を使い、seconds="8" を設定し(必須)、client timeout を 10 分以上にし、バックグラウンドの非同期タスクとして実行してください。
  • webhook はありませんGET /v1/videos/{task_id} のポーリングのみです
  • 推奨ポーリング間隔: 8 秒(実測で十分で、レート制限には触れません)
  • 実測時間: 720p / 1080p で 60〜115 秒、4K で 5〜6 分
  • client timeout: 720p/1080p は 3 分、4K は 10 分
statuscompleted に切り替わった直後は、上流 CDN の同期遅延のため、/v1/videos/{task_id}/content を呼ぶと 400 が返ることがあります。4 秒待って 1 回再試行すると、たいてい解消します(サンプルクライアントは 4 秒間隔で 3〜5 回リトライします)。
現時点ではできません。このチャネルはレスポンスで CDN / 公開 URL を返しません。video_url / data.url / その他の直接配布可能なリンクもありません。動画を取得する唯一の方法: status: "completed" の後に GET /v1/videos/{task_id}/content を呼び出して、MP4 バイナリストリーム を取得します(Authorization: Bearer ヘッダーが必要です)。標準的な本番運用パターン:
  1. バックエンドがタスク完了後すぐに MP4 をダウンロード → 自前の OSS / CDN に送信
  2. エンドユーザーには自分の CDN URL を返す
  3. フロントエンドの <video> タグは /content を直接指してはいけません — ブラウザは認証ヘッダーを付けられないため、リクエストは 401 になります
上流が CDN URL を公開したら、このページも更新します。
保持期間は公式にはドキュメント化されていません完了後はすぐにダウンロードしてローカルに保存することを強く推奨します。リモートの task_id を長期的に当てにしないでください。/content は期限切れ後、いずれ 404 になります。
progress フィールドは粗い粒度で、0 / 50 / 100 の間しか動きません。パーセンテージの進捗バーには使わないでください。スピナーを使うか、「経過 / 想定」を自分で計算してください。
いいえ課金対象は status=completed のタスクのみですfailed / キャンセル済み / content-policy による拒否 / パラメータエラーはすべて無料です。実際の動画出力がなければ課金なしです。
バイト単位で完全一致はしません。実測では、同じ prompt + 同じ seed(88888)+ 同じパラメータで fast を 2 回実行すると、ファイルサイズは 9.81 MB と 9.25 MB、md5 も完全に異なり、レンダリング時間も異なりました。ただし seed は飾りではありません。同じ seed の出力はまとまりやすく(5 回テストで、同一グループ内のファイルサイズ差は 6% のみ)、異なる seed は体系的にずれます(グループ間の差は +36.8%)。含意は次のとおりです:
  • 「安定した見た目」にしたい → seed を固定する
  • 「バリエーションを探りたい」 → prompt をいじるより seed を変える
  • 「完全再生」をしたい → 諦めて mp4 を保存する
どちらも現時点では未対応です。Image-to-video は 1 枚の画像のみ受け付け、フィールド名は input_reference で固定、さらに file または Base64 のみで、リモート URL は使えませんGoogle upstream の Veo 3.1 は multi-reference / first-last-frame / video extension に対応していますが、このチャネルは対応していません。先頭/末尾フレームが必要なら、VEO 3.1 (Reverse) -fl 系列を使ってください
10 件の同時送信を実測しましたが、すべて正常にキューへ入り、拒否はありませんでした。正確な上限は公開されていません。運用側では in-flight を 10 以下に制限し、429 / 5xx では指数バックオフを推奨します
  • 目に見える透かしはありません
  • ただし、MP4 メタデータ内に Google C2PA Content Credentials(Google C2PA Media Services により発行、形式 urn:c2pa:...)が埋め込まれています。エンドユーザーには見えませんが、C2PA ツール(例: Adobe Content Authenticity)で「Veo によって生成された」ことを検証できます
  • 再配布シナリオでは留意してください。通常は再生に影響しません
一部は可能です。インターフェースは OpenAI の慣例(Bearer 認証 + /v1/...)に従っていますが、OpenAI 公式 SDK には videos.create メソッドがありません(/v1/videos はカスタムパスです)。OpenAI SDK の低レベルな client.post() か、生の HTTP を使ってください。生の HTTP が最も簡単です。コード例は テキストから動画の Playground を参照してください。

関連ドキュメント

VEO 3.1 Official は APIYI の安定した公式リレーサービスであり、Google AI Studio への透過的なパススルーです。モデル ID、レスポンスフィールド、制約は Google の上流と完全に一致し、また、このチャネルは Default グループで従量課金に対応しています — 利用できる公式品質チャネルの中で最も導入しやすいものです。フィードバックはコンソールのサポートパネルから送信してください。