GEMINI LABJP
MODEL — Gemini 3.8 Flash reached general availability on September 2, the third Flash release in six weeks. Pricing holds at 3.7 Flash levels: $0.75 input and $3.75 output per MTokPRICE — That introductory rate runs through December 31. From January 1, 2027 it becomes $1.50 and $7.50 per MTok, which is worth folding into next year's estimates nowBENCH — Google reports 54.9% on HLE-Verified and, on DeepSWE v1.1, results ahead of most larger frontier models, along with gains on the Vals Finance Agent V2 and Harvey Legal Agent benchmarksEFFORT — 3.8 Flash works harder on hard problems, taking extra reasoning steps and calling tools iteratively, so token counts can rise. Where efficiency comes first, 3.7 Flash remains fully supportedCYBER — Gemini 3.8 Flash Cyber launched alongside it, tuned for vulnerability discovery and automated patching, and offered only to trusted defenders through the Fairwind ProgramAUDIO — Lyria 3.5 entered public preview on September 3. It takes text and images as input and generates full-length tracks in 44.1 kHz stereoMODEL — Gemini 3.8 Flash reached general availability on September 2, the third Flash release in six weeks. Pricing holds at 3.7 Flash levels: $0.75 input and $3.75 output per MTokPRICE — That introductory rate runs through December 31. From January 1, 2027 it becomes $1.50 and $7.50 per MTok, which is worth folding into next year's estimates nowBENCH — Google reports 54.9% on HLE-Verified and, on DeepSWE v1.1, results ahead of most larger frontier models, along with gains on the Vals Finance Agent V2 and Harvey Legal Agent benchmarksEFFORT — 3.8 Flash works harder on hard problems, taking extra reasoning steps and calling tools iteratively, so token counts can rise. Where efficiency comes first, 3.7 Flash remains fully supportedCYBER — Gemini 3.8 Flash Cyber launched alongside it, tuned for vulnerability discovery and automated patching, and offered only to trusted defenders through the Fairwind ProgramAUDIO — Lyria 3.5 entered public preview on September 3. It takes text and images as input and generates full-length tracks in 44.1 kHz stereo
Articles/Advanced
Advanced/2026-09-05Advanced

Two Kinds of Video Questions: Why I Send "Find It" and "Prove It Isn't There" Down Separate Paths

Agentic video understanding lets the model decide which parts of a video to watch. That works beautifully for finding things, and it quietly breaks when you need to prove something never appears. Here is how I split my questions, and the coverage check I now run first.

Gemini API232video understanding3agenticGemini 3.7 Flash2indie development21

Premium Article

I was pulling a ninety-second excerpt out of an hour-long process recording for a client. Before cutting anything, I wanted to confirm one thing: whether anyone other than the person working had wandered into frame.

So I asked Gemini. Agentic video understanding had just shipped, and switching it on is a single field — processing set to "agentic" — so this felt like a good place to try it.

The answer came back: no matching segments found.

I scrubbed through the footage myself anyway. Near the end, someone walking past appeared at the edge of the frame for a moment.

The model had not lied to me. It had simply never looked at that stretch of video.

What actually shipped is a choice about who decides where to look

On September 1, 2026, Google added agentic video understanding to Gemini 3.7 Flash, 3.6 Flash, and 3.5 Flash-Lite. It works for uploaded files and YouTube URLs, through the Gemini API in Google AI Studio and the Gemini Enterprise Agent Platform.

The older path is called static processing. By default it samples the whole video at one frame per second, evenly, end to end — and the FPS is adjustable through the API. Tokens grow with duration, so on long footage you were choosing between paying for the tokens or dropping detail.

Agentic processing inserts the model's own judgment into that step. It searches across frames, audio, and transcript, opens only the segments it decides it needs, and re-watches at a higher frame rate when it wants to. Google's announcement post reports up to 66% lower analysis cost, up to 88% fewer tokens, and up to 7% better accuracy on standard video analysis benchmarks. There is no extra feature fee — it bills at ordinary token rates.

The switch is one line.

from google import genai
 
client = genai.Client()
 
interaction = client.interactions.create(
    model="gemini-3.7-flash",
    input=[
        {
            "type": "video",
            "uri": VIDEO_URI,          # an uploaded file, or a YouTube URL
            "processing": "agentic",   # omit this and you get the old static path
        },
        {"type": "text", "text": "At what timestamp does the logo first appear on screen?"},
    ],
)
 
print(interaction.output_text)

One line for a dramatically lighter long-video pipeline. My first instinct was to move everything over.

The word I misread was "counting"

Among the listed capabilities is counting actions and objects — accurately tracking repeated physical movements and distinct objects over time. I read that as permission to ask for totals across a whole video.

Reading it again, it says something narrower. The strength is counting what is inside a time window it has chosen to inspect, resampling at a higher FPS when the motion is fast. Where to put that window is a decision the model makes from your question.

That is where the step is. If the question contains a handhold, the model can climb down to the right window. "Where does the logo first appear" gives it the logo. But when you want to confirm that something you don't want is absent, neither of you has a handhold — that is the whole problem.

Which is exactly what happened to my hour of footage.

I have made this same ordering mistake on the image side too. Before adding a similarity search, I had never written down what counted as a duplicate in the first place, which I wrote up in splitting the definition of duplicate into three before adding embedding search. Define the question before you add the tool — video turned out to be no different.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
You'll be able to sort any video question into find-it or prove-absence, and pick agentic or static processing from your own requirements instead of guessing
You'll be able to stop trusting a no matches found answer that came from segments the model never actually opened, by adding one coverage check before you publish
You'll be able to estimate what the up-to-88% token reduction really looks like on your footage, based on the shape of your question rather than the length of the video
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Gemini Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $15 for lifetime access
View Membership →

Related Articles

Advanced2026-08-31
Define What Counts as a Duplicate Before Adding Embedding Search to Your Image Pipeline
My dedup check flagged two prints with identical composition but different colors as one image. Here is how I split duplicate detection into three layers, measured where perceptual hashing ends, and decided what embedding search is actually for.
Advanced2026-07-08
One File Search Store for Many Apps: Splitting Retrieval With customMetadata and Chunk Config
Put several apps' FAQs in a single Gemini File Search store and metadataFilter can silently return empty grounding, or answers get split across chunk boundaries. Here is the customMetadata design, the AIP-160 filter-syntax trap, and measured chunkingConfig tuning.
Advanced2026-08-09
The Memory Wasn't Lost — It Was Written to a Different Profile
A Memory Bank profile is identified by the pair of schema and scope. When call sites build that scope slightly differently, extra profiles appear with no error at all. Here are the measured numbers for how badly it fragments, and how three candidate fixes actually performed.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →