<- all tokdocs

Anthropic Shipped No Video Feature. The Demo Runs claude-watch, a Community Skill That Samples Frames and Calls OpenAI's Whisper

Watch on TikTok

View on TikTok ->

The Claude API accepts JPEG, PNG, GIF, and WebP images, and the vision documentation states that animations are unsupported and only the first frame is used. There is no video content block. Tunde Alao (@itstundealao) runs a 41-second screen-recording demo under his "Fact or Hype" format, and the video reached 370,500 views and 24,600 likes. The opening line says Anthropic quietly closed Claude's biggest blind spot and that Claude can now watch video. What the rest of the 41 seconds shows is a third-party Claude Code skill called claude-watch, which downloads a video with yt-dlp, cuts it into JPEG frames with ffmpeg, sends the audio to OpenAI's Whisper, and hands Claude a pile of stills plus a transcript. Alao tests it honestly on camera and ticks the FACT box at the end. The overclaim lives in the first sentence, not in his testing.

What Claude's models actually accept as input

Anthropic's vision documentation lists four accepted image media types: image/jpeg, image/png, image/gif, and image/webp. It says directly that animations are unsupported and that only the first frame of an animated file is used. The API caps requests at 100 images for models with a 200k-token context window and 600 for other models, with a per-image ceiling of 8000x8000 pixels. Nothing in the input schema takes an .mp4, an .mov, or a URL pointing at one.

Community demand for the real thing is documented. Issue #32130 on the anthropics/claude-code repository, titled "Feature Request: Native video analysis support in Claude," was opened on 2026-03-08 and is now closed. A request that had to be filed is a reasonable signal that the capability was absent when it was filed.

What claude-watch is and who wrote it

Frame 6 of the demo shows the GitHub file listing with the owner name "Taoufik" and a commit reading release: v0.2.0 -- fork as taoufik/claude-watch. The matching public repository is taoufik123-collab/claude-watch: MIT licensed, created 2026-05-25, last pushed 2026-07-24, 844 stars as of this writing. The maintainer identifies himself in the README as Taoufik and links his YouTube channel.

The repository's own AUTHORS.md credits the underlying pipeline to Bradley Bonanno and bradautomates/claude-video, also MIT, created 2026-04-24, currently at 17,432 stars. The README says the yt-dlp download, the ffmpeg frame pipeline, the Groq and OpenAI Whisper backends, the multi-surface install flow, and the SessionStart hook all come from that original project. Taoufik's additions are scene-change frame extraction, a denser pass over the first ten seconds, the structured report.md schema, and optional Obsidian save. One of the commits visible in the demo reads docs: reframe attribution -- credit original author in Credits, which is the attribution fix landing on camera.

Neither repository is published by Anthropic. Both are individual developers distributing a Claude Code plugin under their own names.

Frames plus transcript, and what that architecture cannot reach

The pipeline is four mechanical steps followed by a model call. yt-dlp downloads the file. ffmpeg cuts it into JPEGs, 512 pixels wide by default. The transcript comes from native captions when the source has them, and falls back to Whisper when it does not. Claude then reads the JPEGs as images.

The repository documents hard ceilings of 2 frames per second and 100 frames total, with a duration-aware budget: roughly 30 frames for clips under 30 seconds, about 40 for 30 to 60 seconds, and 100 spread sparsely across anything over 10 minutes. The README is explicit that token cost is dominated by frames and that videos over 10 minutes trigger a "sparse scan" warning.

Those numbers set the boundary of what the tool can know. Motion that happens between two sampled frames is not in the input. A 10-minute video at the 100-frame cap gives Claude one still every six seconds, so a gesture, a cursor movement, or a fast cut inside that window leaves no trace. Tone of voice is absent for the same reason: Whisper returns words and timestamps, and sarcasm, hesitation, and emphasis do not survive the conversion to text. The sampling interval, not the model, decides what gets missed.

The demo contains its own illustration. The generated report's Editorial profile section reads "No scene-change data -- likely a static/screen-recorded source," followed by a note that scene-change detection found nothing because the frame is compositionally static by design. Taoufik's headline feature, one frame per detected cut, returned nothing on this input, and the report correctly says so. The report metadata is also legible in frames 16 and 17: duration 00:55, hero frames frame_0001.jpg, frame_0009.jpg, frame_0017.jpg, frame_0025.jpg, frame_0033.jpg, and Transcript source: whisper (openai). Those hero frames are eight apart, which is sampling stated plainly in the artifact.

The Whisper key means the pipeline leaves Anthropic

Whisper is a general-purpose speech recognition model released by OpenAI, with code and weights under the MIT license. The claude-watch README offers two hosted backends for the fallback path: Groq's whisper-large-v3, which it prefers for cost and speed, and OpenAI's whisper-1. The setup script scaffolds ~/.config/watch/.env with placeholders for GROQ_API_KEY and OPENAI_API_KEY.

Alao's run took the OpenAI path, which the report header confirms. So the demo of Claude supposedly gaining video comprehension routes its audio through a competitor's transcription service, billed to a separate account, before Anthropic's model sees anything. A native Anthropic video feature would not need a second vendor's API key.

The session credits remark is correct, and the first run failed on camera

Midway through, Alao says the run is going to kill his session credits. That instinct is right and the repository agrees with him. The README states that token cost is dominated by frames, that every frame is an image, and that image tokens add up fast. Anthropic's pricing documentation gives the mechanism: images cost ⌈width / 28⌉ × ⌈height / 28⌉ visual tokens, so a 100-frame run is 100 images billed as input on top of the transcript. The --max-frames, --resolution, --start, and --end flags exist specifically to keep that number down.

The first attempt also failed on camera, which is the most useful thing in the clip. Frame 11 shows the transcript of the failure: "Ran watch setup preflight check," then "Exit 3 -- no Whisper API key. Running the installer to scaffold the config, then I'll need your input." Frame 13 shows the diagnostic underneath it: "ffmpeg present, yt-dlp installed. Still need Whisper API key." Alao supplies the key, sends "I've added the API key," and the second run completes. A feature shipped by Anthropic would not stop to ask for someone else's credentials. Leaving that failure in the edit is the honest part of the video.

Key Takeaways

  • Anthropic's vision documentation lists JPEG, PNG, GIF, and WebP as the accepted image types and states that animations are unsupported with only the first frame used. There is no video input type in the API.
  • The tool in the demo is taoufik123-collab/claude-watch, MIT licensed, maintained by an individual developer named Taoufik, built on Bradley Bonanno's bradautomates/claude-video, also MIT.
  • The architecture is yt-dlp for download, ffmpeg for frame extraction, captions or Whisper for the transcript, and Claude's existing image Read for the analysis. Every component is already-available tooling stitched together.
  • Hard caps of 2 fps and 100 frames define the blind spots: motion between sampled frames is invisible, and tone is lost because the audio becomes text.
  • The tool's own report in the demo says "No scene-change data -- likely a static/screen-recorded source," showing the scene-change feature returning nothing on that input.
  • The pipeline depends on OpenAI's Whisper, an MIT-licensed speech recognition model from OpenAI, reached through Groq or OpenAI's API with a separate key.
  • Alao's on-camera cost worry matches the README, which says token cost is dominated by frames.
  • The first run exited with "Exit 3 -- no Whisper API key" before he added credentials, and he left that in the edit.
  • Alao ticks the FACT box at the end. The tool does work. The framing that Anthropic shipped it is what does not hold.
  • Unverified: I could not confirm from the frames alone which fork Alao installed. The owner name "Taoufik," the fork as taoufik/claude-watch commit, the directory layout (.claude-plugin, .codex-plugin, commands, hooks, scripts), and the report schema all match taoufik123-collab/claude-watch, but the username is partially cut off on screen. The 844-star count is from today and not from the video's August 2026 upload date. I also could not reconcile two different Instagram reel IDs appearing across the frames (DcjExUUKCFW in frames 8 and 11, DZ-ycyNuhgi in frames 9, 10, and 13), which suggests the demo was cut together from more than one run.
  • Transcription note: the Whisper transcript of this TikTok renders Alao saying "It's looking at every frame in the video I sent it." The tool samples frames under a cap and does not read every frame. The transcript also writes the repo as "Claude Watch," where the repository name is claude-watch.

Resources

  • taoufik123-collab/claude-watch -- the repository shown in the demo, MIT licensed, with the README documenting the frame caps, the Whisper backends, and the install flow
  • bradautomates/claude-video -- the original /watch project by Bradley Bonanno that claude-watch is built on, also MIT
  • Anthropic vision documentation -- the supported image formats, the note that animations are unsupported, the per-request image limits, and the visual token cost formula
  • openai/whisper -- OpenAI's speech recognition model, code and weights under MIT, the transcription dependency the demo had to supply a key for
  • anthropics/claude-code issue #32130 -- "Feature Request: Native video analysis support in Claude," opened 2026-03-08, now closed

Published August 28, 2026. Writeup generated from a favorited TikTok.