For developers choosing how their agent watches video

Playhead vs Gemini for video questions

Gemini and Playhead solve different halves of the same problem. Gemini reads a video directly, at 1 frame per second, and every frame stays in the context window: Google documents about 300 tokens for each second of video, so 10 minutes costs about 180,000 tokens before the model answers anything. Playhead reads the video on its own servers and returns the answer in words, about 2,500 tokens, with the second of every moment it names. Use Gemini when the video is short and you want the model to look at it. Use Playhead when the video is long, when the agent has other work to do, or when a moment has to be found to the frame.

By The Playhead team

We build the video layer these numbers are measured on. Every figure about Playhead comes from the source file it lives in.

Published 9 min read

The short version

  • Gemini samples video at 1 frame per second. Google's documentation warns that a fast action sequence can lose detail at 1 frame a second.
  • A 10 minute video costs about 180,000 tokens of Gemini's context at default media resolution, and about 60,000 at low resolution.
  • Playhead answers the same question in about 2,500 tokens, because the video is watched on our side and what comes back is prose with timestamps in it.
  • Playhead dates every moment in an answer to 2 decimal places, and a question about 4 seconds of a video reads those 4 seconds rather than the whole file.
  • Neither replaces the other. Playhead calls a vision model too, and that call is not free. The difference is whose context window pays for the pictures.

What Gemini is better at

First, because a comparison that opens with our own advantages is an advertisement rather than a comparison.

  • Gemini reads the video itself. There is no second service between the model and the frames, and no second bill.
  • A public YouTube URL can be passed straight to the API. Nothing is downloaded, stored or uploaded by you.
  • The reasoning and the looking happen in the same model, so a question that mixes the two never crosses a boundary where context is lost.
  • There is a free tier, and for a short clip it is genuinely free.
  • Gemini 3 exposes a media_resolution parameter, so the token cost per frame is a dial rather than a fixed price.

How they compare

Playhead compared with Gemini, capability by capability
What you wantGeminiPlayhead
How often the video is looked atIn part1 frame per second. Google's documentation adds that fast action sequences can lose detail at that rate, and suggests slowing the clip down. [1]YesHow closely a stretch is looked at follows the question. Ask about 4 seconds and those 4 seconds are read, at a density the whole file would never get.
What the video costs your context windowNoAbout 300 tokens for every second of video at default media resolution, or about 100 at low resolution. A 10 minute video is about 180,000 tokens before the model writes a word. [2]YesAbout 2,500 tokens for a first look, whatever the length. The video is watched on our side and the answer comes back as prose.
How long a video fitsIn partA model with a 1M context window takes up to 1 hour at default media resolution, or 3 hours at low resolution. [2]YesThe sampling rate is derived from the frame budget rather than fixed, so the frames spread across whatever the runtime is. The answer names every second that was not looked at.
A second question about the same video is cheapNoEvery call sends the video again. Context caching lowers the price of the tokens; it does not stop them being sent. [1]YesThe first answer returns a session_id. A question that carries it reads what was already found, so it costs a few hundred tokens instead of a second pass.
One second, read at full resolutionIn partA frame is 258 tokens at default resolution or 66 at low. The frame is the frame that 1 fps sampling landed on. [2]YesA question about one second reads that second large enough for a price, a logo lock-up and 12 pt legal type to be legible in the answer.
The timestamp cannot be inventedNot documentedTimestamps can be referred to in a prompt as MM:SS. Google's documentation does not describe how a returned time is grounded. [1]YesEvery frame carries its own time burned into the pixels above the picture, so a model cannot lose track of which frame it is looking at.
What could not be answered is namedNot documentedThe response is the model's answer. Nothing in the documentation describes a field that reports coverage. [1]YesEvery answer carries an unanswered list, so a video nobody could read and a video with nothing in it never look the same.
Works from a platform other than YouTubeIn partYouTube URLs are supported directly. Anything else is uploaded through the File API first, which is your download, your storage and your bandwidth. [1]YesTikTok, Instagram, X, Facebook, Vimeo, Twitch, Reddit, a Meta Ad Library link, or a path to a local file. The fetch runs on our side.

The difference is whose context window pays

Both approaches send frames to a vision model. They disagree about where the model sits.

Gemini takes the video as an input. The frames enter the same context window as your prompt, your tools and the rest of the conversation, and they stay there for the whole turn.

Playhead puts a boundary in the middle. The video is fetched, decoded, sampled and read on our servers. What crosses back into your agent is prose with timestamps in it.

That is the whole architectural difference, and every row of the table above follows from it.

Gemini, 10 minutes of video
≈180,000 tokens600 seconds at about 300 tokens a second, at default media resolution. Google's own figure.
Gemini, the same at low resolution
≈60,000 tokensAbout 100 tokens a second. The frames are 66 tokens each instead of 258.
Playhead, the same video
≈2,500 tokensThe answer, in words, with the second of every moment it names.

What 1 frame per second cannot see

Google documents the rate and the consequence. The consequence is easy to underestimate.

At 1 frame per second, everything that happens between two frames is gone. A cut at 1.24 seconds and a cut at 1.88 seconds land in the same gap, so an answer can report one cut where there were two.

Google says so in the documentation: fast action sequences might lose detail due to the 1 FPS sampling rate, and the suggested workaround is to slow the clip down before you send it.

For a talking-head interview this changes nothing. For an advert cut at 24 cuts a minute, a product demo, a sports clip or a screen recording where a menu opens and closes inside a second, it changes the answer.

What a Playhead answer looks like on a fast-cut advert
The video is cut at 1.24s, 2.88s, 4.02s, 5.60s and 7.14s. Five cuts across six segments, so about 24 cuts a minute. The shortest segment is 1.14s and the longest is the closing shot from 7.14s to the end.

Two of those cuts are 0.64 seconds apart. At 1 frame per second they are one frame.

Playhead answers the other end of this problem by narrowing the question. Ask about one stretch of a few seconds and those seconds are read on their own, closely enough to separate two cuts that land inside the same second.

Run the same question through both

The comparison above is arithmetic. This is the version you can check yourself.

Ask Playhead the question, and keep the sessionbash
curl -X POST https://api.tryplayhead.com/v1/watch_video \
  -H "Authorization: Bearer $PLAYHEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.tiktok.com/@user/video/730…",
       "question": "list every cut, in seconds, and say how fast this is cut"}' \
  | jq -r '.answer, .session_id'

Send the same clip to Gemini with the same question, and count the tokens each one reports. That is the measurement, and it takes about five minutes.

When to choose Gemini instead

Choose Gemini when the video is short, when you are already building on Gemini, and when the question is about what the video is rather than about what happens at a particular second. For a 30 second clip the whole argument below is worth about 9,000 tokens, which is nothing, and one API call is simpler than two systems.

The verdict

For a short clip, send it to Gemini. One call, one bill, and 9,000 tokens is a price worth not thinking about. The moment the video gets longer than a couple of minutes, or the answer has to name a second and be right about it, the arithmetic turns: 180,000 tokens is most of a context window spent before the reasoning starts, and 1 frame per second is a rate that cannot separate two cuts 0.64 seconds apart. That is the line, and it is a line about the video rather than about the model.

Common questions

Does Playhead replace Gemini?

No. Playhead is a layer in front of a vision model and it calls one on every reading. What it replaces is the part where a video enters your agent's context window frame by frame. The model that answers your question can still be Gemini.

How many tokens does a video cost in Gemini?

Google documents about 300 tokens for every second of video at default media resolution, and about 100 tokens a second at low media resolution. Individual frames are 258 tokens at default resolution or 66 at low, plus 32 tokens a second for the audio.

How long a video can Gemini read?

Google documents up to 1 hour of video at default media resolution on a model with a 1 million token context window, or up to 3 hours at low media resolution.

Can Gemini read a TikTok or an Instagram video?

Not from the link. Google's API takes a public YouTube URL directly; any other platform means downloading the file yourself and uploading it through the File API first. Playhead fetches from TikTok, Instagram, X, Facebook, Vimeo, Twitch, Dailymotion and Reddit on its own side.

Which one gives more accurate timestamps?

Playhead burns each frame's own time into the pixels above the picture, so the model reading it cannot lose track of which second it is looking at or invent one. Google's documentation describes referring to timestamps in a prompt as MM:SS, and does not describe how a returned time is grounded.

Where these numbers come from

  1. [1] Gemini API: video understanding read
  2. [2] Gemini API: token counting and media resolution read

Written by

The Playhead team

We build the video layer these numbers are measured on. Every figure about Playhead comes from the source file it lives in.

How we write these articles, and how to send a correction