mrkeyoor.com_
Tue 01 Sept 17:44 UTC
AI Toolsevaluationupdated 30 Aug 2026

claude-watch review

claude-watch is a Claude Code, Claude web, and Codex skill that turns a public video URL or local file into sampled frames, a timestamped transcript, and a structured report. It is built for video summaries, hook analysis, and screen-recording diagnosis when the agent cannot play a video directly.

+28 / 1dstars / 7d
Verdict

Our claude-watch run installed 35 packages in 12 seconds and built in 4 seconds, but its missing test target left the video pipeline unverified. Try it for short public videos, hook breakdowns, and bug recordings if you can pin compatible ffmpeg behavior and inspect the report yourself. Avoid it for evidentiary review, private platforms, or sensitive caption-less audio that must stay local.

We ran it

Lab card: what happened when we ran claude-watchScreenshot of claude-watch (github.com/taoufik123-collab/claude-watch)
Install✓ · 12s35 packages · 37 MB
Build✓ · 4s
Testsn/ano test script
Known vulns0(pip-audit)
Repo28 files~2,361 lines of source · 0.1 MB · 1 CI workflows

Answers from our run

Does claude-watch build from source?

Dependencies installed in 12 seconds (35 packages), and the build succeeded in 4 seconds. We cloned commit 7711231 into a clean Debian container with 3 CPUs and no project-specific setup.

Does claude-watch have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does claude-watch have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use claude-watch?

Reviewers who must inspect every frame: the README caps extraction at 100 frames and warns that videos over 10 minutes receive a sparse scan.

What are the alternatives to claude-watch?

Claude Video, yt-dlp, Whisper. Our claude-watch run installed 35 packages in 12 seconds and built in 4 seconds, but its missing test target left the video pipeline unverified.

Setup4/512-second install; video binaries and keys are the extra work
Docs4/5Clear limits, data flow, install paths, and focused-mode examples
Community3/5705 stars and current reports, but open fixes await maintainer action
Maturity2/5No harness test target; ffmpeg 9 and Windows crashes are open

Who it’s for

Claude Code or Codex users who need a quick visual and transcript pass over public videos.
Editors studying the first 10 seconds of a hook or the pacing between cuts.
Developers triaging a short screen recording without opening it manually.
Obsidian users who want an optional report and selected frames saved into a vault.

Who it’s NOT for

Reviewers who must inspect every frame: the README caps extraction at 100 frames and warns that videos over 10 minutes receive a sparse scan.
Users of private, login-gated, or region-locked platforms: the skill does not authenticate to video hosts.
Fresh ffmpeg 9 installations that need scene extraction today: open issue 13 reports that the current -vsync flag is rejected.
Windows users who need a clean unpatched run with non-ASCII output: open issue 14 reproduces a UnicodeEncodeError in report printing.
Teams that cannot send caption-less audio to Groq or OpenAI: the documented fallback uploads extracted audio unless Whisper is disabled.

Setup reality

Our sandbox installed 35 packages in 12 seconds and used 37 MB on disk. The build passed in 4 seconds. The harness found no test script or target, so tests were skipped; pip-audit reported 0 known vulnerabilities.

Actual video work needs Python, ffmpeg, ffprobe, yt-dlp, and a multimodal agent that can read the extracted JPEGs. Videos without usable captions need a Groq or OpenAI API key unless you accept frames without a transcript.

macOS can install missing binaries through Homebrew on first run; Linux and Windows receive manual commands. Public URL access depends on yt-dlp and the host, while frame count, video length, and Whisper's 25 MB upload cap constrain coverage.

A 100-frame ceiling makes this a sampled review

claude-watch gives an agent evidence it can already consume: JPEG frames and text. A URL goes through yt-dlp, while a local file is read in place. ffmpeg extracts one frame around each detected scene change, native captions provide the first transcript option, and Whisper handles videos without captions. The resulting report includes a summary, moments, hook notes, entities, concepts, and source material for the agent to fill. That is enough for many editorial questions without pretending the model played the file continuously.

The hard limit is 100 frames at no more than 2 fps. Clips under 30 seconds target about 30 frames, while videos longer than 10 minutes receive the full 100-frame budget spread sparsely. A focused --start and --end range spends the same budget on a smaller window. This design controls image-token use, but it also means a quiet on-screen change between samples can be missed. Use the output as a guided skim, not a frame-accurate account.

The first 10 seconds get a separate dense pass

The hook microscope samples the opening 10 seconds at 2 fps and requests word-level Whisper timing. That lets an agent compare what appeared on screen with what the speaker said at the same moment. Scene pacing is also estimated from shot count and shot length. For a creator studying intros, those artifacts are more useful than a transcript alone because a title card, product reveal, or cut can carry meaning that nobody says aloud.

Scene detection is still a heuristic. A static screencast may contain meaningful cursor, text, or state changes without a large visual cut. Open pull request 9 describes a 17-minute, 43-second screencast where 13 detected frames left gaps of more than 4 and 6 minutes. That report is not proof that every source build behaves the same way. It is a concrete reason to check timestamp coverage and rerun a focused range when the initial report looks thin.

What happened when we ran it

Our sandbox cloned commit 7711231 and installed 35 packages in 12 seconds. The installed environment occupied 37 MB, compared with the 0.1 MB checkout. Building succeeded in 4 seconds. The repository contained 28 files and about 2,361 lines of source, with 1 CI workflow, no Dockerfile, and no top-level tests directory. Pip-audit found 0 known vulnerabilities in the Python environment.

The harness found no test script or target, so it skipped tests rather than recording a pass. That distinction matters for a pipeline that shells out to downloaders, media tools, and hosted transcription APIs. We did not download a video, extract frames, call Whisper, open Obsidian, or compare a generated report with its source. The 12-second install and 4-second build prove packaging mechanics at commit 7711231, not video-analysis accuracy.

ffmpeg 9 can stop scene extraction before analysis

Open issue 13 reports that ffmpeg 9.0.1 rejects the -vsync option used by the scene-change command. The issue includes a direct reproduction and says -fps_mode works on that version. Two open pull requests propose related compatibility fixes, including one that probes support and retains a fallback for older ffmpeg releases. Until a fix lands, a fresh media-tool install can be less reliable than the README's first-run flow suggests.

Windows has a separate output problem. Issue 14 reports a UnicodeEncodeError when Python 3.13.15 prints an arrow through a cp1252 console during a focused run. The reporter says setting PYTHONIOENCODING=utf-8 avoids the crash. An open pull request addresses broader non-Latin output, but it was not merged when fetched. Windows users should test one short local clip before relying on batch work or multilingual transcripts.

Caption-less audio may leave the machine

Native captions are the cheapest path because yt-dlp obtains them directly from the video host. If none exist, claude-watch extracts mono 16 kHz audio and sends it to Groq's whisper-large-v3 or OpenAI's whisper-1, depending on the configured key. The README says it does not upload the video itself. For confidential meetings or customer recordings, sending the audio is still an external disclosure that needs an explicit policy decision.

The Whisper path has a 25 MB upload ceiling, described as roughly 50 minutes at the chosen audio settings. Focused ranges can keep an upload below that boundary. --no-whisper prevents external transcription and leaves a caption-less source with frames only. The current documented release does not offer a local speech model, although a closed pull request proposed one. Teams with a strict local-processing requirement should pair yt-dlp and ffmpeg with a separately managed local Whisper installation instead.

Three installation surfaces do not behave identically

Claude Code installs the project as a marketplace plugin, Claude web takes a packaged skill file, and Codex uses a cloned skill directory. The shared Python scripts do the media work, but hooks, command exposure, file permissions, and image-reading behavior depend on the host agent. Obsidian integration is optional: WATCH_VAULT_DIR selects a vault, after which the workflow can stage the report and chosen frames and ask whether to ingest them.

GitHub listed 705 stars, 10 combined issues and pull requests, and a last source push on July 24, 2026. The latest release was v0.2.0 from May 25, while new compatibility reports and pull requests arrived through August 28. A stale tag alone does not settle project health, but the gap means the packaged web skill may not contain proposed fixes visible in open branches. Pin the commit you test and keep ffmpeg behavior in the acceptance check.

Alternatives

ProjectWhat it isPick it when
Claude VideoThe original Claude video-analysis skill that supplied much of this pipeline.pick this instead when you want the simpler upstream workflow without hook and Obsidian additions.
yt-dlp gh↗The downloader and caption extractor used underneath claude-watch.pick this instead when you only need media or subtitles and will build the analysis step yourself.
WhisperA local speech-recognition model for producing transcripts without a hosted video skill.pick this instead when audio transcription matters and sampled visual analysis does not.

What people are saying

  1. [github-trending] taoufik123-collab/claude-watch

Sources

  1. claude-watch repository and README
  2. claude-watch v0.2.0 release
  3. Issue 13: ffmpeg 9 scene extraction failure
  4. Issue 14: Windows Unicode output crash
  5. Pull request 9: sparse scene coverage report

More ai tools reviews

claudian · SkillSpector · robin · mjlab · MoGe · awesome-design-md · the whole board →