For anybody giving an AI agent the ability to watch video

Playhead vs claude-video /watch

Playhead and the claude-video /watch skill both let an agent watch a video, and they do it differently. The /watch skill downloads the file to your machine, cuts still pictures out of it, and gives Claude those pictures with a time rounded to the nearest second. Playhead takes a link, watches the video for you, and answers in words with the exact second of everything it names. Measured on the same 6 second advert on 14 September 2026: /watch showed the model 9 pictures, half a second apart, the last one at 4.03 seconds of a 6.04 second file. Its cut detector found 4 of the 6 cuts and then dropped all four, so no cut at all reached the model. Playhead named all six, to a hundredth of a second, with the length of every shot. On a 10 minute video the skill needed 1 minute 54 seconds before Claude could answer, and 1 minute 41 of that was Claude opening 71 pictures one at a time.

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 20 min read

The short version

  • On a 6.04 second advert with 6 cuts in it, /watch found 4 of them and then threw all 4 away, because its own rule wants 8 before it trusts any. What reached the model was 9 pictures on an even grid and not one cut.
  • A 10 minute video took 1 minute 54 seconds of our own clock with /watch, and 1 minute 41 of that was Claude reading the 71 pictures one at a time before it could answer.
  • Its cut detector found 70 of the 93 cuts in that 10 minute video, and on a 17 minute one it found 159 and then threw 59 away to stay inside its budget of 100 pictures.
  • Times in /watch are rounded to the nearest second, so 9 pictures arrived under 5 different labels and two different pictures can carry the same second.
  • Playhead answered the same 10 minutes in one call: 93 cuts, 94 shots, 8 sections with their boundaries, and 4 stretches it said it could not resolve.

What is on this page and on no other

Every page about these products carries the same prices and the same feature lists. These are the facts this one produced itself, and how each one was made.

  • The /watch skill showed 9 pictures for a 6.04 second advert and the newest was at 4.03 seconds, so 2.01 seconds of the ad, a third of it, was never shown to the model.

    From a run Their own scripts/watch.py, default settings, run on 14 September 2026 against tryplayhead.com/home/set1.mp4, and the picture list read out of the report it printed.

  • A picture from a 540 by 960 video comes out of /watch at 512 by 910, which is 621 tokens by the formula in their own README and 3.16 times the 197 tokens it states.

    Measured ffprobe on the JPEG files that run wrote, then width times height divided by 750, which is the arithmetic their own README uses for a 512 by 288 picture.

  • Their cut detector, at the threshold fixed in their code, finds 4 of the 6 cuts in that advert, and those 4 agree with what Playhead reported to a hundredth of a second.

    Measured The scene filter from their own code run on the same file on 14 September 2026, against the cut list a Playhead reading of it returned the same day.

  • A 10 minute video took 1 minute 54 seconds end to end with /watch, and 1 minute 41 of that was Claude reading the 71 pictures before it could answer.

    Measured Their scripts/watch.py on a 600.04 second file already on the disk, timed with time at 13.4 seconds, then the claude command timed at 1:40.69 reading all 71 pictures and answering in one sentence. 14 September 2026, Apple M1 laptop.

  • Their cut detector found 70 of the 93 cuts in that 10 minute video, and its keyframe mode, which looks for no cuts at all, ran the same file in 2.0 seconds against 13.4.

    Measured The picture list of both runs on 14 September 2026, counted by reason, against the 93 cuts and 94 shots a Playhead reading of the same file reported the same day.

  • On a 17 minute 41 second animated explainer /watch kept 100 of the 159 changes it found, left 55 seconds between two pictures, and spent 31.4 seconds decoding on the laptop.

    From a run Their scripts/watch.py on a 1920 by 1080 animated explainer on 14 September 2026, timed with time, and the gaps worked out from the picture list in its report.

What claude-video is better at

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

  • It is free and MIT licensed. No account, no key and no bill, apart from an optional Whisper key when a video has no captions.
  • Everything happens on your own machine, so a recording that must not leave the building can still be read. Nothing is uploaded.
  • One command installs it on 50 or more agents, including Codex, Cursor and Gemini CLI, so it is not tied to one vendor.
  • For a video that already has captions, its transcript mode answers in about 4.5 seconds and downloads nothing, by their own measurement.
  • The agent holds the pictures itself, so it can look at any of them again without asking another service.

How they compare

Playhead compared with claude-video, capability by capability
What you wantclaude-videoPlayhead
A time you can trust to a hundredth of a secondNoTimes are rounded to the nearest second. A picture taken at 1.51 seconds is handed over as 00:02, and two pictures half a second apart can arrive with the same second on them. [2]YesExact to a hundredth of a second. On the advert below the answer separated a shot 0.36 seconds long and named the second at each end of it.
A list of the cuts, with the length of every shotNoA picture chosen because the scene changed is marked as such, at a threshold fixed in their code. There is no list of cuts, no shot length and no cutting rate in what Claude is given. [2]YesAsk for the cuts and the answer lists them, with the length of every shot and the kind of the transition. These are measured, so no count is left to a model to guess.
The video kept out of your agent's context windowNoEvery picture is an image in the context window. Their own figure is about 197 tokens for one 512 by 288 picture, and a transcript of a 49 minute video is about 26,600 tokens on top. [1]YesThe answer is words, so it costs what a paragraph costs. No picture of the video ever enters your agent.
The whole of a long video looked at, end to endIn partThe budget stops at 100 pictures past 10 minutes and the script prints a sparse scan warning. On a 17 minute recording that left 55 seconds between two pictures. [1]YesA reading covers the whole runtime, and the answer names the stretches it could not resolve, so a gap never reads as nothing happened there.
Nothing to install, and no video on your diskNoOn your machine. ffmpeg, yt-dlp and python3 are installed on the first run, and their own figure for a 49 minute video is a 37 second download plus 20.9 seconds of decoding. [1]YesA link is all that leaves your side. Nothing is installed, and no video has to be downloaded or decoded where your agent runs.
A second question answered for a fraction of the firstIn partPictures already in the context can be looked at again. A question that needs other seconds of the video means downloading and cutting pictures again. [1]YesEvery answer comes with a session id. A question that carries it is answered from the first reading, and it costs a fraction of that first question.
The kind of a transition named, not just the cutNoStill pictures only, half a second apart at the closest, so a dissolve, a wipe or a one-frame flash falls between two of them and is not shown. [2]In partThe answer names the kind of a transition where it sees one, and one of the six cuts in the advert below came back as a jump cut. An animation curve is not what this answers.
The same answer on a phone, or in the browserNot documentedTheir README names Claude Code, 50 or more command line hosts, and claude.ai in a browser with code execution turned on. Nothing in it describes running on a phone. [1]YesPlayhead is a remote MCP server, so it answers in the Claude mobile app, the desktop app, claude.ai and any other client that speaks MCP. There is nothing to install.
Free to useYesNothing. MIT licensed and free, with an optional Whisper key for a video that has no captions, which is the only thing you can pay for. [1]In partPlayhead is paid and needs an account. A reading costs credits, a follow-up question costs a fraction of one, and there is a free level to try it on your own video.

What each one gives the model

Both tools end with a model looking at a video. What arrives is different, and so is the machine that does the work.

The skill is bradautomates/claude-video on GitHub, it is free, and it is worth installing. Playhead is the more exact alternative to it, and this page shows the difference on one 6 second advert.

The /watch skill is a downloader and a frame cutter. It fetches the video to your machine, saves a set of still pictures, and prints a list of them with a time next to each one. Claude then opens the pictures and answers from what it can see in them.

Playhead takes the link instead. We watch the video and send back the answer in words, with the exact second of everything it names. No video is downloaded on your side, and no picture goes into your agent.

That also decides where each one can run. The /watch skill needs ffmpeg, yt-dlp and python on the machine, so it belongs on a laptop. Playhead is a remote MCP server, so the same answer arrives in Claude Code, in the Claude desktop app, in the Claude mobile app, on claude.ai in a browser, and in any other client that speaks MCP. Nothing is installed anywhere, which is why it works on a phone at all.

/watch on a 6.04 second advert
9 pictures, last at 4.03 sHalf a second apart. The final 2.01 seconds of the ad were not shown.
/watch on a 17 minute 41 second recording
100 pictures, 55 s apart at worstIt found 159 changes and kept 100, which is its cap. Their own script warns that coverage is sparse at this length.
What that recording cost the laptop
31.4 seconds of decodingOn an Apple M1 with 8 GB, on a file that was already downloaded. The download is on top of that.
Playhead on the same advert
6 cuts, to a hundredthWith the length of all 7 shots and the kind of one transition. The answer is words, so nothing is added to your context but text.

One 6 second advert, both ways

The file is public, so you can repeat both halves of this: tryplayhead.com/home/set1.mp4, 6.038 seconds, 540 by 960.

Playhead read the advert and reported 6 cuts, which makes 7 shots. The /watch skill, run on the same file with its default settings, kept 9 pictures. Putting the two side by side is the whole argument of this page.

The 7 shots in the advert, and which of the 9 pictures /watch showed the model landed in each one
ShotFromToLengthPictures /watch showed
10.00 s0.76 s0.76 s0.00, 0.50
20.76 s1.80 s1.04 s1.01, 1.51
31.80 s2.48 s0.68 s2.01
42.48 s2.84 s0.36 s2.52
52.84 s3.96 s1.12 s3.02, 3.52
63.96 s4.44 s0.48 s4.03
74.44 s6.04 s1.60 snone

Four things in that table matter if you work with ads.

Not one cut reached the model. Its detector did find 4 of the 6, and then its own rule threw all four away, because it wants at least 8 before it trusts any of them. So the pictures Claude got were on an even grid, and every one of them is marked as a grid picture rather than a cut. Ask this run how fast the ad is cut and nothing in front of the model can answer.

The last shot got no picture. It runs from 4.44 seconds to the end, which is 26 per cent of the advert. Ask what the ad closes on and the answer comes from a picture taken 2 seconds before the close.

Shot 4 is 0.36 seconds long, which is shorter than the gap between two pictures. It caught one, at 2.52 seconds, because that is where the grid happened to fall. A shot that short is seen or missed by luck.

The labels are coarser than the pictures. The nine arrived as 00:00, 00:00, 00:01, 00:02, 00:02, 00:03, 00:03, 00:04, 00:04. Five different seconds for nine pictures, and the worst rounding error was half a second.

What Playhead answered for the same file
The cuts define the following section boundaries and lengths: Start to cut: 0:00 to 0:00.8 (0.00s to 0.76s). Length is 0.76 seconds. Cut to cut: 0:00.8 to 0:01.8 (0.76s to 1.80s). Length is 1.04 seconds. Cut to cut: 0:01.8 to 0:02.5 (1.80s to 2.48s). Length is 0.68 seconds. Cut to cut: 0:02.5 to 0:02.8 (2.48s to 2.84s). Length is 0.36 seconds. Cut to cut: 0:02.8 to 0:04 (2.84s to 3.96s). Length is 1.12 seconds. Cut to jump cut: 0:04 to 0:04.4 (3.96s to 4.44s). Length is 0.48 seconds. Jump cut to end: 0:04.4 to 0:06 (4.44s to 6.00s). Length is 1.56 seconds.

Unedited, from the Playhead API on 14 September 2026. The same session also named what is on screen from 4.00 seconds to the end, which is the part /watch showed no picture of.

A 10 minute video takes nearly 2 minutes of your clock

Cutting the pictures is the quick part. Reading them is not, and your agent has to do it one picture at a time.

We ran the whole trip on one 10 minute video, on a laptop, with the file already on the disk so no download was counted.

/watch cut 71 pictures out of it in 13.4 seconds. Claude then read those 71 pictures and answered, and that took 1 minute 41 seconds. Nearly 2 minutes for 10 minutes of video, and 88 per cent of it was the reading rather than the cutting. A download sits on top of that: their own figure is 37 seconds for a 76 MB file.

The same 10 minutes through Playhead is one call, and the answer came back with 93 cuts, 94 shots, 8 sections with their boundaries in seconds, and 4 stretches it said it could not resolve. A first reading takes 30 to 90 seconds, and every question after it is answered from that reading in seconds.

The reason is the shape, not the speed of anybody's code. 71 pictures is 71 file reads, one after another, and each one lands in the context window before the next one is asked for. One answer in words is one round trip.

/watch cutting 71 pictures out of 10 minutes
13.4 secondsOn an Apple M1 laptop, from a file already on the disk. Its keyframe mode, which does not look for cuts at all, took 2.0 seconds on the same file.
Claude reading those 71 pictures
1 minute 41 secondsMeasured with the claude command on the same laptop, reading every picture before answering in one sentence.
The cuts /watch found in those 10 minutes
70 of 93Playhead measured 93 cuts between 94 shots in the same file. Their detector missed 23 of them.
Playhead on the same 10 minutes
One call, 93 cutsWith 94 shot lengths, 8 named sections, and the 4 stretches it could not resolve written out with the call to look closer at each.

What happens on a 17 minute video

Short clips hide the problem. A long one shows it.

On a 17 minute 41 second animated explainer, /watch found 159 moments where the picture changed and kept 100 of them, which is its cap. Its own script prints a warning about it, and the warning is fair.

What that leaves is worth knowing in numbers. The middle gap between two pictures is 8 seconds. The widest gap is 55 seconds, between 0:19 and 1:14. Anything that happens in that minute is not in front of the model, and nothing in the report says so.

Their README has an answer for this, and it is an honest one: run it again on a shorter range, or lift the cap and pay for every picture. Both answers cost you another download, another decode and another wait.

Changes found, and pictures kept
159 found, 100 keptThe cap is 100 in the default mode. Their README says one of the other modes keeps all of them.
The widest stretch with no picture
55 secondsBetween 0:19 and 1:14 of the recording. The middle gap is 8 seconds.
Playhead on a recording of that length
The whole runtimeAnd the answer names the stretches it could not resolve, so you know what it did not see.

Try both on the same video

Every number on this page came from two commands and one API call.

Their side: run /watch on the same public filebash
curl -sO https://tryplayhead.com/home/set1.mp4
python3 skills/watch/scripts/watch.py ./set1.mp4 --no-whisper
Our side: ask Playhead, then ask again for nearly nothingbash
curl -X POST https://api.tryplayhead.com/v1/watch_video \
  -H "Authorization: Bearer $PLAYHEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://tryplayhead.com/home/set1.mp4",
       "question": "name every cut in seconds and the length of every shot"}' \
  | jq -r '.answer, .session_id'

When to choose claude-video instead

Choose claude-video when the file must not leave your machine, when the budget is zero, or when you want a summary of what a video is about. For a talk, a lecture or a podcast, where the words carry the answer, it reads the captions in about 4.5 seconds and costs nothing.

The verdict

Use /watch to find out what a video is about. It is free, it installs in one command, and on a captioned talk it answers in about 4.5 seconds. Use Playhead as soon as the answer has to name a second. The measurements on this page are all one way: 0 of 6 cuts reached the model on a 6 second ad, 70 of 93 on a 10 minute video, and 1 minute 41 of those 10 minutes went on Claude opening 71 pictures one at a time. Playhead answered the same 10 minutes in one call with 93 cuts, 94 shot lengths, 8 sections and the 4 stretches it could not resolve. If your work is ads, product demos, walkthroughs or bug reports, the exact second is the whole job, and a still picture timed to the nearest second cannot carry it.

Common questions

What is the claude-video /watch skill?

The /watch skill is a free, open-source plugin for Claude Code and 50 or more other agents. Given a link or a file, it downloads the video, cuts still pictures out of it with ffmpeg, fetches a transcript, and hands Claude the pictures to look at. Everything runs on your own machine and the licence is MIT.

Does /watch really watch the video?

Still pictures are what the model gets, half a second apart at the closest, because their own code caps sampling at 2 pictures a second. The pictures are real pictures of the file. What is missing is anything that only exists between two of them, such as a dissolve, an animation or a one-frame flash.

How exact are the times that /watch gives Claude?

Times are rounded to the nearest second before Claude sees them. Measured on a 6.04 second advert on 14 September 2026, nine pictures arrived under five different labels, two pictures could carry the same second, and the worst rounding error was half a second.

Can /watch tell me the cuts, the transitions and how fast an ad is cut?

Not as data. A picture chosen because the scene changed is marked as such, but there is no list of cuts, no shot length and no cutting rate in what Claude is given. On the advert measured here its detector found 4 of 6 cuts, and its own fallback rule then discarded all four.

How long does Claude take to watch a 10 minute video with /watch?

Measured on 14 September 2026 on a laptop, with the file already on the disk: 13.4 seconds to cut 71 pictures out of it, then 1 minute 41 seconds for Claude to read those 71 pictures before it answered. That is 1 minute 54 seconds in total, and a download sits on top of it. The reading is the expensive half, because every picture is a separate file the agent has to open.

Can Claude watch a video on my phone?

Playhead is a remote MCP server, so the same answer arrives in the Claude mobile app, in the desktop app, on claude.ai in a browser, in Claude Code and in any other client that speaks MCP. There is nothing to install on the device. The /watch skill needs ffmpeg, yt-dlp and python on the machine it runs on, and their README names Claude Code, the command line hosts and claude.ai with code execution turned on.

Is Playhead free like claude-video?

Playhead is paid and needs an account, where claude-video is free and MIT licensed. A Playhead reading costs credits, a follow-up question in the same session costs a fraction of one, and there is a free level so you can try it on your own video before paying anything.

Where these numbers come from

  1. [1] claude-video: the /watch README read
  2. [2] claude-video: frames.py, the sampling constants 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