◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止しました(本日)。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止しました(本日)。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/高度な活用
⬡ 高度な活用/2026-10-23中級

23 秒の動画が 500 で落ちたら、待つ前に疑うこと。Gemini の agentic 動画理解で決めておく三つの分かれ道

Gemini API の agentic 動画理解が「high demand」の 500 で通らない、という報告を読み、待つ・分割する・静的モードに落とすの判断を先に決めておくための整理です。公式の使い分けと照らして、短い動画で agentic を使っていないかを確かめる点検と、失敗の種類で次の一手を変える小さな Python を載せています。

gemini-api291video-understandingagentictroubleshooting64retry4python111

アプリの紹介動画を Gemini に読ませる処理を見直していた夜、フォーラムで一つのスレッドに目が止まりました。約 23 秒の MP4 を agentic モードで解析させたところ、数分待たされたあとに HTTP 500 が返り、本文には「high demand」とあった、という投稿です。

動画解析が重い処理であることは知っておりました。それでも、23 秒で数分待って落ちるという話には、少し違和感がありました。ここでは、その報告を整理し、公式ドキュメントの使い分けと照らして、失敗したときに「待つ」「分ける」「落とす」のどれを選ぶかを先に決めておく方法をお伝えします。

最初にお伝えしておくと、私自身はこの失敗を手元で再現しておりません。報告の部分はスレッドに書かれていることの整理で、コードは API を呼ばない模擬の失敗で動作を確かめたものです。

報告されていること

フォーラムのスレッド(2026 年 9 月 17 日投稿)には、次のことが書かれています。

2026 年 9 月 16 日に、約 23 秒の MP4 を Files API にあげ、processing を agentic にして /v1beta/interactions へ送りました。gemini-3.8-flash で 2 回、gemini-3.7-flash で 1 回、いずれも数分後に HTTP 500 で終わり、解析結果は得られていません。認証とアップロードまでは通っています。

保存されていた 3.7 側のエラー本文は、「現在 high demand で、需要の急増は通常一時的です。後ほどお試しください」という趣旨のものでした。投稿者は、全員に起きているのかは分からないとも書いています。

運営側からは 9 月 18 日に、プロジェクト ID かリクエスト ID とプロンプトをダイレクトメッセージで送ってほしい、という返信がありました。原因の特定、既知の障害としての認定、回避策や推奨設定は、スレッドの範囲では示されていません。関連として、9 月 8 日付で「agentic の処理呼び出しが 23 回を数えたあとに HTTP 200 から api_error になる」という別スレッドも並んでいました。

つまり、確実に言えるのは「そう報告されている」ところまでで、混雑なのか、特定の入力による不具合なのかは、まだ分かりません。

公式が書いている使い分け

動画理解のドキュメントを読み直して、気づいたことが一つあります。

agentic は、5〜10 分を超えるような長い動画や、特定の場面を探す問いに向く方式だと説明されています。一方で、短いクリップや広い問いでは、ナビゲーションの推論とツール往復のぶん、最初のトークンまでの時間と総トークン数が増えることがある、とも書かれています。5 分に満たない動画や、全体の要約、遅延に敏感な処理、フレーム単位の精度が欲しい場合は、静的モードが向くとされています。

報告された動画は約 23 秒です。公式の使い分けに照らすと、agentic を選ぶ理由が薄い入力だったことになります。これが失敗の原因だと言うつもりはありません。混雑が原因なら、静的モードでも落ちたかもしれないのです。ただ、「待てば通るかもしれない」と考える前に、そもそもそのモードが必要だったのかを確かめる価値はあります。

もう一つ、同じページには、長い処理にはストリーミングかバックグラウンド実行を使うこと、同期リクエストが高負荷時のバックエンド再試行にぶつかると、401 Unauthorized やタイムアウトになることがある、と書かれています。同期で投げて数分待たされたあとに 500 や 401 を受け取る形は、この注意書きとも重なります。

三つの分かれ道を先に決める

失敗が出てから考えると、人は「もう一度投げる」を選びがちで、待ち時間だけが積み上がります。そこで、次の表のように、状況ごとの一手を先に決めています。

状況最初の一手理由
5 分未満の動画で agentic を使っている静的モードに切り替える公式の使い分けで、静的が向く長さだからです
長い動画で agentic が 500・503 になる待ち時間を倍にして 1〜2 回だけ再試行する混雑なら一時的なことが多く、すぐ叩き直しても同じ場所に当たるためです
agentic が 2 回続けて失敗した区間を切って静的モードで読むクリップ指定は静的モードでだけ使えます
400 番台(401 を除く)再試行せず入力を直す待っても直らない種類の失敗です

401 だけは例外として扱っています。上で触れたとおり、同期呼び出しの高負荷時に 401 が返ることがあるため、同期で投げていたなら、まず background=True に変えて様子を見ます。

失敗の種類で次の一手を変える Python

次のスクリプトは、最初のモードを長さから決め、500・503・504 のときだけ待ち、agentic が 2 回続けて落ちたら静的に切り替えます。call(mode) の中身は、自分の API 呼び出しに差し替えてください。

#!/usr/bin/env python3
"""動画理解の失敗を見て、次の一手(待つ・静的に落とす・諦める)を決める。"""
import random
import time
 
RETRYABLE = {500, 503, 504}
AGENTIC_MIN_SECONDS = 300  # 公式の目安: 約5分未満は静的が向く
 
 
def choose_mode(duration_s, needs_frame_precision=False):
    """最初に使うモードを決める。短い動画やフレーム精度が要る場合は静的。"""
    if needs_frame_precision or duration_s < AGENTIC_MIN_SECONDS:
        return "static"
    return "agentic"
 
 
def run_with_fallback(call, duration_s, needs_frame_precision=False,
                      max_wait_s=600, sleep=time.sleep):
    """call(mode) がテキストを返す関数。失敗の種類で次の一手を変える。"""
    mode = choose_mode(duration_s, needs_frame_precision)
    log, waited, delay = [], 0, 20
    while True:
        try:
            return mode, call(mode), log
        except Exception as e:
            code = getattr(e, "code", None)
            log.append((mode, code))
            if code not in RETRYABLE:
                raise  # 認証や入力の誤りは待っても直らない
            agentic_fails = sum(1 for m, _ in log if m == "agentic")
            if mode == "agentic" and agentic_fails >= 2:
                mode = "static"  # 同じ道を三度叩かない
                continue
            if waited + delay > max_wait_s:
                raise
            sleep(delay + random.uniform(0, delay / 4))
            waited += delay
            delay *= 2

call を差し替えやすいようにしたのは、再試行の方針と API の呼び出しを切り離しておきたかったからです。方針だけを模擬の失敗で試せば、実際の API を叩かずに分かれ道の動きを確かめられます。

模擬の失敗で動かしてみた

agentic だと必ず 500、静的だと成功する偽の呼び出しを作り、15 分(900 秒)の動画として渡しました。出力は次のとおりです。

('static', [('agentic', 500), ('agentic', 500)]) 待機回数 1
static agentic static
401 はそのまま送出: HTTP 401

agentic が 2 回落ちたところで静的に切り替わり、待機は 1 回だけで済みました。23 秒の動画は最初から静的、15 分の動画は agentic、フレーム精度が必要な場合は 15 分でも静的、という選び方も確かめています。401 は再試行せずに送出されます。ここまでは、あくまで方針の確認です。実際の混雑時に、この順番がうまく働くかどうかは、私の手元ではまだ確かめておりません。

落とし穴

静的への切り替えは、長い動画ではそのまま使えません。静的モードの目安は 1 秒あたり約 100 トークン(低解像度)で、長時間の動画を丸ごと渡すとトークン量が大きくなります。長い動画で agentic が通らないときは、start_offset と end_offset で区間を切って渡すほうが現実的です。クリップ指定と fps の指定は、静的モードでだけ使えます。

もう一つは、運営への問い合わせに備えて、失敗のたびにリクエスト ID と日時、モード名を残しておくことです。スレッドでも、最初に求められたのはそれでした。再試行を重ねても、記録が残っていなければ、あとで原因を一緒に探せません。

agentic が実際に動いたかどうかは、応答の steps に processing_call と processing_result があるかで確認できます。成功したはずなのに安く済みすぎている、と感じたときの手がかりになります。

関連して、再試行してよい失敗と人が出る失敗の分け方は、429 の再試行設計に書きました。動画の長さと fps の選び方は、タイムスタンプ付きの動画理解で扱っております。

次にやること

まず、ご自分の動画解析の呼び出しを開いて、agentic を指定している箇所が、本当に 5 分を超える動画にだけ使われているかを確かめてみてください。短い動画に付いていたなら、静的に戻すだけで、待ち時間も失敗も減るかもしれません。

待つかどうかを決める前に、そのモードが要るのかを確かめると決めています。 この線引きを、私はいまも守るようにしています。

シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

⬡ 高度な活用2026-07-16
システム指示を何語で書くか — 現地語のプロンプトが多数になったアプリで3方式を測り直す
システム指示を英語で固定するか、ユーザーの言語に訳して渡すか。countTokens で言語別の入力トークンを実測し、出力言語の一致率とスキーマ遵守率を並べて、9トークンで足りる場所と訳すべき場所を切り分けます。
⬡ 高度な活用2026-05-06
Gemini 2.5 Pro + Imagen 4 コンテンツ自動生成パイプライン構築ガイド
Gemini 2.5 Pro と Imagen 4 API を組み合わせ、ブログ記事・SNS投稿・サムネイル画像を自動生成するパイプラインを構築する実践ガイド。非同期処理・品質管理・収益設計まで網羅。
⬡ 高度な活用2026-04-23
Gemini API の Prompt Injection 対策:本番運用で必要なマルチレイヤー防御アーキテクチャ
Gemini API を本番運用するなら避けて通れない Prompt Injection 攻撃に対し、入力サニタイズ・指示強化・構造化出力・モデレーター LLM の4層防御を動くコードで設計する実戦ガイドです。