Playhead vs claude-video — MCP server or Skill?
claude-video is a free, MIT-licensed Agent Skill that installs yt-dlp and ffmpeg on your machine, downloads a video, picks frames with scene detection and hands them to Claude — with Whisper transcription through a Groq or OpenAI key you supply. Playhead does the same job as a hosted service instead: nothing installs, the timestamp is burned into every frame, every response states what it covered, and the same engine is reachable from a REST API and a TypeScript SDK as well as from a chat.
Last updated
What claude-video is better at
First, because a comparison that opens with our own advantages is an advertisement rather than a comparison.
- Free and MIT-licensed, with no account and no credits to think about.
- The video never leaves your machine, which matters for footage under NDA.
- Installs into 50+ agent hosts through the skills ecosystem, not only MCP clients.
- Frame deduplication drops near-identical frames before they cost you tokens — a genuinely smart touch.
- Four clear modes, including a transcript-only one that extracts no frames at all.
Their repository: github.com/bradautomates/claude-video. Everything claimed about it on this page comes from that README, read on 6 August 2026.
What it is, and where it runs
| Capability | Playhead | claude-video |
|---|---|---|
| Runs without installing anything on your machine | Yesffmpeg, yt-dlp and transcription run on our servers. You connect a URL. | Noclaude-video needs yt-dlp and ffmpeg on the machine it runs on. It installs them for you on first run, but they have to be installable there. |
| Works without your own transcription API key | YesTranscription is included in a credit. There is no second vendor to sign up with. | PartlyCaptions are free when the video has them. Without them claude-video needs a Groq or OpenAI key of your own, billed to you separately. |
| Works from Claude on a phone | YesA remote connector runs nowhere near your device, so the same connection follows you from the laptop to the iOS and Android apps. | Not documentedclaude-video's README documents Claude Code, claude.ai and desktop CLIs. Mobile is not mentioned either way. |
What it can look at
| Capability | Playhead | claude-video |
|---|---|---|
| Timestamp burned into the pixels of every frame | YesEvery tile carries its time in a strip above the picture. A model cannot lose track of which frame it is looking at, and cannot invent a time for one. | NoFrames are passed as files and the times live in the surrounding text, which is a separate thing the model has to keep aligned. |
| States what it covered and where the gaps are | YesEvery response carries a coverage object: covered seconds, whether that was the whole video, every second it was not, and where to resume. | NoFrame caps thin coverage out silently on longer videos. The README warns about it; the output does not. |
| 30 fps inspection, frames 33 ms apart | YesThe motion level puts two consecutive frames on a sheet at full size — the level at which easing curves and dropped frames become visible. | NoSampling is scene-driven and capped by frame count, so consecutive-frame comparison is not a mode it has. |
| SMPTE timecode from camera and edit-suite masters | YesWhen a file carries timecode, every tile is stamped with it in blue beside the elapsed time in yellow — the clock an editor's notes and the NLE are already in. | NoElapsed seconds only, which is the right unit for a TikTok and the wrong one for a shoot. |
| Broadcast and production containers | YesMXF (XAVC, XDCAM, AVC-Intra, DNxHD), ProRes MOV, GXF, LXF, TS and DV. Camera raw is refused by name with the export to make instead, rather than failing obscurely. | PartlyWhatever the local ffmpeg build happens to decode. Undocumented, and it varies by machine. |
| Photo carousels (TikTok photo mode, Instagram) | Yesyt-dlp refuses these outright, so we ship our own extractor. Slides become one frame per second — second 0 is slide 1 — and the response says so rather than implying a duration. | NoInherits yt-dlp's refusal, since that is what does the downloading. |
| Meta Ad Library links | YesA facebook.com/ads/library link is a video like any other, which is what makes competitor-ad teardowns a normal call rather than a workaround. | Not documentedNot mentioned. yt-dlp's generic extractor may or may not reach a given ad. |
What it measures
| Capability | Playhead | claude-video |
|---|---|---|
| Cut times returned as numbers | Yesscene_cuts is a list of seconds, with pacing alongside it — segment count, median and shortest segment, cuts per minute. | PartlyScene detection runs, but it is used to choose which frames to keep. The cut times themselves are not part of the output. |
| Transitions classified, not counted as cuts | YesDissolves, fades, dips, wipes and whip-blurs are detected on a longer baseline and named. Without that, a film with six dissolves reads as six extra cuts and its pacing comes back too fast. | NoScene detection runs on neighbouring frames, where a dissolve is six times under the threshold. There is no separate transition pass, and none is claimed. |
| Freezes, black frames and silence detected | YesOne decode produces freezes, black frames, silence gaps and loudness together — the checks a render QA pass is made of. | NoBuilt for understanding a video's content rather than checking a file, so these detectors are outside what it sets out to do. |
| Sees what happened between the sampled frames | YesA separate pass reads every frame at 32x32 grayscale, so a one-frame flash, a three-frame cut and a half-percent-per-second push-in are found even though no sheet shows them. | NoAnalysis is limited to the frames that were extracted. What fell between them is not represented. |
| Says whether the audio was speech at all | YesMusic scored over a video transcribes into fluent sentences nobody said. The response reports that assessment instead of handing back lyrics as dialogue. | NoWhisper output is returned as the transcript either way. |
Building on it
| Capability | Playhead | claude-video |
|---|---|---|
| Callable from your own code, not just from a chat | YesA REST API, a typed TypeScript SDK, and an OpenAPI 3.1 spec for generating a client in any language. | Noclaude-video is a skill invoked by an agent. There is no HTTP API behind it to call from a backend job. |
| Asynchronous jobs, webhooks and idempotency keys | YesLong work queues and returns a job id; a webhook fires when it settles; replaying an idempotency key returns the first result rather than charging twice. | NoSynchronous, in the agent's turn. |
| Methods for recurring jobs, offered as commands | YesSeven playbooks — ad teardowns, hook analysis, caption audits, accessibility passes, brand checks, render QA, SOPs — registered as MCP prompts, so a client shows them before anyone has described their problem. | PartlyThe skill's own instructions are its method, and it is a good one. There is one, for the job it was built for. |
Running it
| Capability | Playhead | claude-video |
|---|---|---|
| Free and open source | PartlyThe MCP client and the SDK are MIT. The engine is a hosted service: 60 credits a month free, then paid. | Yesclaude-video is MIT-licensed and costs nothing to run. |
| Video never leaves your machine | NoThe hosted service downloads and processes on our infrastructure. An on-premise deployment exists for enterprise, but the hosted product does not run locally. | Yesclaude-video downloads and processes locally. For footage under NDA that is a real advantage and not a small one. |
| Repeat questions about the same window are discounted | YesA window already paid for costs 20% of the original, so an agent exploring a video iteratively is not billed as though every pass were the first. | YesNothing is billed at all — it runs on your hardware. |
| Team seats, shared balance and an audit trail | YesOrganizations, invites, a shared credit pool and a per-job ledger. | NoA skill installed per machine. Nothing to share and nothing to audit. |
The verdict
Which is to say: what actually decides it, rather than which row count is higher.
The dividing line is not quality, it is where the work happens. A skill that shells out to ffmpeg needs a machine with ffmpeg on it, which decides everything downstream: it cannot be a connector you add on a phone, it cannot be called by a backend job at three in the morning, and it cannot be shared with a team as one account. Playhead moved the work to a server so that all three become possible — and paid for that with a bill and with your video leaving your machine. If neither of those matters to you, claude-video is a very reasonable choice.
If none of that applies — if you want it on a phone, in a backend job, or shared with a team — the quickstart is two minutes and the free tier needs no card.