atareh

Claude Code · AUG 12, 2026

Let Claude Code watch videos — and audit your competitors' topics and hooks

The claude-video skill gives Claude eyes on any Instagram, TikTok, or YouTube video. Break down why competitors go viral, then patch it to transcribe locally for $0.

atareh
@atareh
AUG 12, 2026 · 6 min read
Claude CodeAI WorkflowContent Creation

If you're posting Reels and they're not landing, the problem is almost always one of two things: the topic, or the hook. The creators beating you aren't better editors — they picked a better topic and opened it better. Which means the fastest way to level up is to study exactly that, across every competitor in your niche.

That used to mean hours of watching. Now it's a skill: /watch gives Claude Code eyes on any video on the internet — Instagram, TikTok, YouTube, or a raw file on your desk — and it's free. Below: the install, the competitor topic + hook audit I run with it, and the patch that makes transcription free and local too.


What /watch actually does

Claude Code can read a webpage, run a script, browse a repo. What it couldn't do until now is watch a video. The skill fixes that with a Python pipeline: yt-dlp fetches the video — it speaks Instagram, TikTok, YouTube, Loom, X, and a few hundred other sites, plus local .mp4/.mov files — ffmpeg extracts frames at scene changes, and the transcript comes from native captions when the video has them.

Claude reads every frame as an image, lines them up with the transcript timestamps, and answers your question the way someone who watched the video would. Not “based on the title” — it saw the first frame, it heard the first sentence. For a creator, that combination is exactly the thing you study: what's on screen and what's said in the seconds where a viewer decides to stay or scroll.


Install it in one command

The skills CLI installs it for Claude Code and every other agent you have set up:

terminal · zsh
npx skills add bradautomates/claude-video -g

Claude Code also supports it as a marketplace plugin (/plugin marketplace add bradautomates/claude-video, then /plugin install watch@claude-video) if you'd rather get auto-updates. First run handles the rest: on macOS it installs yt-dlp and ffmpeg through Homebrew and scaffolds a config at ~/.config/watch/.env.


The detail dial is a token dial

Every frame is an image in Claude's context, and image tokens add up fast. The skill exposes a --detail dial so you spend tokens where the question needs them:

  • transcript — no frames at all. For “what did they say” questions, this is nearly free.
  • efficient — fast keyframes, capped at 50. The default answer for most questions.
  • balanced — scene-change frames, capped at 100. When the visuals carry the answer.
  • token-burner — every scene change, uncapped. You were warned by the name.

For hook analysis the killer combo is --start / --end: focus on 0:00–0:05 and the skill samples those seconds densely instead of thinly scanning the whole video. You get every frame of the hook for a fraction of the tokens.


The competitor topic + hook audit

This is the workflow the skill earns its keep on. Collect the links — your niche's top performers, the reels the algorithm keeps showing you, whatever outperformed you this month — and hand the whole list to Claude with one job:

Prompt
Here are 8 reels from creators in my niche: <links>. /watch each one and build me a table: the topic, the hook (exactly what's said AND shown in the first 3 seconds), the hook type (bold claim / contrarian / result tease / urgency), and video length. Then tell me which topics repeat across creators and which hook patterns the top performers share.

Claude watches each video — frames plus transcript — and comes back with the audit: every competitor's topic and opening move in one table, plus the patterns. Which topics show up three times across different creators (that's demand), which hook structures repeat among the winners (that's craft), where the text overlay contradicts the voiceover (that's a 3-part hook). This is the research layer of every “why did this go viral” breakdown, automated.

Then point it at yourself. Run the same audit on your own last ten posts and ask what the flopped ones have in common. The skill doesn't care whose video it is — it's all frames and timestamps now.


The local transcription hack

Here's the catch, and the fix. Captions cover most public videos for free. But the moment a video has no captions — your own raw footage, plenty of Instagram reels, screen recordings — the skill falls back to the Whisper API and asks for a Groq or OpenAI key. Paying per minute to transcribe audio on a Mac that can run Whisper locally is silly, so I patched the skill instead.

First, install MLX Whisper — Apple's Whisper port that runs on the M-series GPU:

terminal · zsh
pip3 install mlx-whisper

Then hand Claude Code the patch as a prompt. This is the exact job I ran — it rewires the skill's fallback so no key means local, not broken:

Prompt
Open the watch skill installed at ~/.agents/skills/watch. Add a local transcription backend: when no GROQ_API_KEY or OPENAI_API_KEY is set, transcribe with the mlx_whisper CLI instead of erroring — run it with --output-format json, map its segments to the skill's {start, end, text} shape, and report the source as "whisper (local)". Add "local" to the --whisper choices, make setup.py treat a present mlx_whisper CLI as a working backend so it stops asking for an API key, and document the local backend in SKILL.md. Then test it end-to-end on a real video file that has no captions and show me the transcript.

Claude reads the skill's scripts, finds that the transcript segments are just {start, end, text} dicts, and slots the local backend into the same seam the API used. The new fallback order: native captions first, an API key if you ever add one, then local MLX Whisper — automatically, with no config.

The bonus workflow this unlocks: your own raw footage. With local transcription, /watch on an unedited take becomes a free edit map —

Prompt
/watch <your-raw-footage>.mp4 --detail transcript give me a timestamped transcript and flag the strongest take of each repeated line

Two knobs worth knowing. Force the free path with --whisper local even when a key is set, and swap the model with WATCH_LOCAL_WHISPER_MODEL in your env — mlx-community/whisper-large-v3-turbo buys more accuracy for roughly double the (still tiny) time. One honest caveat: updating the skill overwrites the patch. The fix is the same prompt again — or a PR to the repo so everyone gets it upstream.


The through-line

Going viral is a research problem before it's a production problem, and the research just got automated: topic and hook, per competitor, in a table, for free. The deeper lesson is what made the cost zero — an installed skill is not a black box. It's code in a folder on your machine, and the same agent that runs it can read it, audit it, and rewire it. The API-key requirement wasn't a rule, it was a default. One prompt turned it into a private, local pipeline.

atareh

Written by

@atareh

AI architect & creator. Writing, designing, and producing in AI and tech. Previously head of product at a healthtech SaaS; background in molecular science. Founded gogray.today in 2017.

Related

Keep reading.

Made by @atareh · x / twitter · instagram