Playhead vs claude-watch — notes or evidence?
claude-watch is a free, MIT-licensed Agent Skill built for one job and good at it: turning a tutorial or lecture into structured markdown study notes — a TLDR, key concepts, timestamped sections with screenshots, and a Code & Commands block. Playhead is not a note-taker. It returns the evidence — frames with the timestamp burned in, cut times, freezes, silences, a transcript with word timings — and leaves the writing to whatever asked for it.
Last updated
What claude-watch is better at
First, because a comparison that opens with our own advantages is an advertisement rather than a comparison.
- Produces a finished artifact, not raw material. For a lecture you want to keep, that is the whole job done.
- Free, MIT-licensed, and runs entirely on your own machine.
- Inserts a coverage frame every 45 seconds through static stretches, so a slide-heavy talk does not lose its middle.
- Pulls out code blocks and commands specifically — exactly the thing you go back to a tutorial for.
- A captions-only mode that costs nothing at all, not even a Whisper call.
Their repository: github.com/devinilabs/claude-watch. 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-watch |
|---|---|---|
| Runs without installing anything on your machine | Yesffmpeg, yt-dlp and transcription run on our servers. You connect a URL. | Noclaude-watch 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-watch 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-watch's README documents Claude Code, claude.ai and desktop CLIs. Mobile is not mentioned either way. |
What it can look at
| Capability | Playhead | claude-watch |
|---|---|---|
| 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-watch |
|---|---|---|
| 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-watch |
|---|---|---|
| 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-watch 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-watch |
|---|---|---|
| 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-watch 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-watch 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.
These two are less competitors than different layers. claude-watch decides in advance what the output should look like — study notes — and everything it does serves that shape, which is why it is good at lectures and not aimed at a six-second ad. Playhead declines to decide: it measures and hands back numbers and frames, and the shape of the answer belongs to whoever asked. That makes it usable for an ad teardown, a render QA pass or a brand-compliance matrix, and it also means it will not hand you a finished set of notes unless you ask your agent to write them. Its 80-frame default cap and 30-minute sweet spot are the other practical difference — Playhead covers an hour end to end by design.
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.