Modern Creator
Matt Penny | Applied AI · YouTube

A Claude Code Skill That Actually Watches Videos, Not Just Their Transcripts

Most AI video tools only read the transcript and guess at the rest. This skill grabs real screenshots, batches them to a cheap vision model, and answers questions about what's actually on screen.

Posted
3 months ago
Duration
Format
Tutorial
educational
Views
5K
124 likes
Big Idea

The argument in one line.

A Claude Code skill fixes AI video analysis by extracting real timestamped frames and sending them to a cheap vision model instead of only reading the transcript, so it answers questions about on-screen visuals that a transcript-only AI has to guess at and gets wrong.

Who This Is For

Read if. Skip if.

READ IF YOU ARE…
  • You use Claude Code or a similar agentic coding tool and want it to correctly describe what's happening visually in a video, not just what's said.
  • You research or reverse-engineer other creators' videos and need to know layout, on-screen text, and shot type, not just the script.
  • You're building a pipeline that translates, dubs, or duplicates video content and has to account for on-screen text and visual timing, not just audio.
SKIP IF…
  • You only need a plain transcript or summary of what was said — YouTube's own captions already cover that.
  • You don't have Claude Code or another tool that can install and run a downloadable skill.
TL;DR

The full version, fast.

AI tools that only read a video's transcript will confidently invent details about anything shown on screen instead of admitting they can't see it. The creator built a free Claude Code skill, Peek, that downloads a video with yt-dlp, pulls or generates a transcript, and separately extracts timestamped screenshots at a rate tuned to video length, batching them to Gemini 2.5 Flash Lite via OpenRouter for cheap image descriptions. The result is an agent that can correctly answer questions about specific visual moments, and the same pipeline enables research, competitor-video analysis, visual-aware translation, and video duplication.

Free for members

Chat with this breakdown — free.

Sign in and you get 23 free chat messages on us — ask for the hook, quote a framework, find the exact transcript moment, generate a markdown action plan. Bring your own key when you want unlimited.

Create a free account →
Chapters

Where the time goes.

00:0000:37

01 · Cold open: the promise

The creator states the premise up front: a new Claude Code skill that watches a video's actual visuals, not just its transcript, and previews that he'll show the problem, the solution, setup, and the technical build.

00:3701:40

02 · The problem: transcript-only AI just makes things up

Using a video explaining how LLMs work, he asks Gemini via voice dictation what a percentage chart at the 2:52 mark means. Gemini answers confidently and completely wrong, without ever admitting it can't see the video.

01:4002:55

03 · The fix: Peek gets it right

He runs the same question through Claude Code with the /peek skill installed. It takes about a minute to process the video, then correctly identifies the on-screen labels and explains what the percentages mean, matching the source video exactly.

02:5503:42

04 · Aside: 600+ free Claude Code skills

While Peek processes in the background, he plugs a free library of over 600 Claude Code skills he's compiled, covering image enhancement, SEO, PDF work, and Remotion-style motion video, available via a link in the description.

03:4204:22

05 · Why it matters: use cases

He lists why seeing the actual visuals matters: research that captures information only shown, not said; analyzing competitor videos for graphics, motion-graphic switches, and layout so they can be recreated; and translation work that needs to know when on-screen text needs changing too.

04:2205:13

06 · More use cases: translation and duplication

He extends the translation point and adds video duplication: because the AI understands the visuals, it can help recreate not just the audio of a video but the visual structure too.

05:1305:46

07 · Installing the skill

He walks through the public GitHub repo, creating a fresh project folder in Claude Code, and prompting Claude to install the skill from the repo URL and explain which API keys are needed.

05:4606:26

08 · The two required API keys

Only two keys are needed: OpenRouter and Deepgram. He points out Deepgram gives $200 of free credit on signup, which is enough for most users' needs.

06:2606:55

09 · How it works: downloading the video

Technical walkthrough begins. The skill downloads the source video with yt-dlp, which works across YouTube, X, Instagram, and TikTok, then splits the result into its audio and visual components for separate processing.

06:5507:44

10 · How it works: the audio pipeline

On a whiteboard-style diagram he explains the transcript logic: try to grab YouTube's own captions for free first; if unavailable, strip the video to an mp3 with ffmpeg and send just that smaller file to Deepgram (chosen for its $200 free credit, ElevenLabs works too); as a last-resort fallback, Supadata generates a transcript from the URL alone.

07:4409:10

11 · How it works: the visual pipeline

Since AI doesn't understand video but does understand images, ffmpeg rips a series of screenshots from the video at a polling rate that scales with length (sparser for long videos, up to ten frames a second for short clips where exact motion timing matters). The stills are batched and sent to a vision model for description.

09:1009:47

12 · Model choice: Gemini 2.5 Flash Lite over Claude vision

He explains he uses OpenRouter to call Gemini 2.5 Flash Lite for the batched frame descriptions rather than Claude's own vision, because Claude vision would burn through tokens fast on a full video's worth of frames, while Gemini 2.5 Flash Lite is economical enough to run at near-zero cost.

09:4709:59

13 · Wrap-up: env setup and CTA

He closes by pointing to where the two API keys go, in Claude's settings.json under the env section, and repeats the call to grab the free 600+ skill library from the description.

Atomic Insights

Lines worth screenshotting.

  • Transcript-only AI tools don't say they can't see a video's visuals, they confidently invent an answer instead, which is worse than an honest refusal.
  • Videos are just a collection of images, so a vision model can describe on-screen content even though AI doesn't natively understand video.
  • Sending only the stripped audio (a few megabytes) instead of the full video file (up to a gigabyte) to a transcription API is what keeps the pipeline fast.
  • Screenshot polling rate scales with video length: roughly one frame every few seconds for long videos, up to ten frames a second for short clips where exact motion timing matters.
  • Batching multiple frames into a single vision-model call is what keeps image description costs near zero, rather than one API call per frame.
  • Gemini 2.5 Flash Lite was chosen over Claude's own vision for the frame-description step specifically because Claude vision is expensive enough to burn through tokens fast on a full video's worth of frames.
  • A transcript alone misses information that's shown but never spoken, so any research workflow built only on transcripts is working with half the video's information.
  • Accurate video translation requires knowing when on-screen text appears, not just translating the spoken audio, or the visual and audio versions end up out of sync.
Takeaway

Give AI real screenshots and it stops guessing about what's on screen

WHAT TO LEARN

A transcript-only AI will confidently invent an answer about anything it can't actually see, so any video-analysis workflow that needs to be right about visuals has to feed the model real, timestamped frames.

02The problem: transcript-only AI just makes things up
  • AI that only reads a transcript will fabricate answers about on-screen visuals instead of admitting it can't see them, which is worse than no answer at all.
03The fix: Peek gets it right
  • Feeding an agent real timestamped screenshots alongside the transcript lets it correctly answer questions about specific visual moments.
05Why it matters: use cases
  • Research and competitor analysis based only on a transcript is working from half the source material, since a lot of information in any video is shown, not said.
06More use cases: translation and duplication
  • Accurate video translation and duplication both require tracking when on-screen text and visuals change, not just translating or copying the audio.
09How it works: downloading the video
  • Splitting a downloaded video into separate audio and visual components lets each half be processed with the tool best suited to it.
10How it works: the audio pipeline
  • Order your data sources by cost: try a free source (platform captions) first, fall back to a paid but cheap one, and reserve the most expensive method for when everything else fails.
  • Stripping audio out of a video file before sending it to a transcription API keeps the request small (megabytes instead of a gigabyte) and dramatically faster.
11How it works: the visual pipeline
  • Videos are just a sequence of images, so a general vision model can describe on-screen content even though AI has no native understanding of video as a format.
  • Screenshot frequency should scale with video length: sparse sampling wastes nothing on long videos, while short clips need dense sampling to capture exact motion timing.
  • Batch multiple images into a single vision-model call instead of one call per image to keep visual-description costs near zero.
12Model choice: Gemini 2.5 Flash Lite over Claude vision
  • Pick the vision model for cost, not brand: a flagship model's own vision mode can burn through a budget fast, while a lite model from another provider does the same job for a fraction of the price.
Glossary

Terms worth knowing.

Claude Code skill
A downloadable, installable capability that extends what Claude Code can do in a project, invoked with a slash command like /peek.
yt-dlp
A free command-line tool that downloads video and audio from YouTube and most other video platforms, similar to right-click-save-as but scriptable.
OpenRouter
A service that provides API access to many different AI models, including Google's Gemini, through one account and one API key.
Vision model
An AI model that can accept images as input and describe or answer questions about their visual content, as opposed to a text-only language model.
Polling rate
How often the pipeline pulls a screenshot from the source video, for example one frame every few seconds versus several frames per second.
Resources

Things they pointed at.

05:51toolOpenRouter
05:58toolDeepgram
08:15toolGemini 2.5 Flash Lite
06:31toolyt-dlp
07:05toolffmpeg
07:28toolSupadata
Quotables

Lines you could clip.

02:00
It hasn't even said, hey, I can't watch the video. It's just made shit up, which like is the worst part of AI.
sharp, quotable indictment of transcript-only AI toolsTikTok hook↗ Tweet quote
07:04
AI doesn't understand video, but it does understand images. And as you know, videos are just a collection of images.
clean one-line explanation of the whole techniqueIG reel cold open↗ Tweet quote
08:20
Claude's super expensive. It's just gonna tear through your tokens, and actually, Gemini 2.5 flash light is super economical.
practical cost-optimization tip for anyone building AI pipelinesnewsletter pull-quote↗ Tweet quote
The Script

Word for word.

Read-along

Don't just watch it. Burn it in.

See every word as it's spoken — crank it to 2× and still catch all of it. The same dual-channel trick behind Amazon's Kindle + Audible.

analogystory
I have just created this Claude code skill which can actually watch videos for you, and I don't just mean read the transcript. It can really watch them. You can feed it YouTube videos, x videos, short form videos, whatever, and it will see what's on the screen, not just read the transcript.
Transcript. This means that now I can fully analyze videos, not just analyze what is being said.
In this video, I'm gonna show you it in action. I'm gonna show you the problem and how it solves the problem. I'm gonna show you how you can use it yourself and download this plug in yourself for free, and I'm also gonna show you how it works technically behind the scenes.
So if you wanna make any tweaks to it, you wanna change it so it can solve whatever problem you're trying to solve, then you can do that too. So let's get into it.
Let's start with the problem. So let's take this video for example. This is a video explaining how LLMs work.
This guy's really good, and he has a load of visuals in his videos too, which are really helpful. But if I want to ask AI, hey, I don't understand this part here. I don't understand what these percentages are.
Let me try and do that. So let me take the URL, go up to Gemini, and I'm gonna use super whisper to say, hey, can you look at this video and tell me what the percentages mean at the two minute fifty two mark?
I don't really understand it. So we will paste that in here, send it off.
So it's gonna go it's gonna try and have a look. However, it's just gonna make things up. So it says matte floor cloud.
Let's have a look over here. They're they're not there at all. They're not before.
They're not after. It's just completely guessed and made up. What's even worse is that it hasn't even said, hey, I can't watch the video.
It's just made shit up, which like is the worst part of AI. So now let's have a look at what I have made and the solution. So here we are within Claude code, and I'm gonna use this command called peak because we're gonna have a peek at the video, and I'm gonna say, can you have a look at this video and tell me what the percentages actually mean at the two minute fifty two mark?
I don't quite understand it. Okay. And I'll paste in the URL of the video.
It's gonna go over. It's gonna peek at that video, and it's gonna tell us what actually is going on.
So it takes a minute to process the video. So whilst it's waiting, let me show you this. So these are 643 Claude code skills that I have put together.
You can use them, download them absolutely for free. They do a load of things such as enhancing images, SEO, a CEO advisor, p d PDF work, creating motion videos, which I do a lot like Remotion.
Just a load of skills which really help you speed up your workflows. Absolutely for free. I'll leave a link on in the description where you can go and get access to all of these, plus the one that I'm showing you in this video now.
Cool. So here we are. It's come back and it's given me a load of text as AI always does, but we can see that it says, this is what it shows at 02:52, and let's go back and check that that is correct.
That is exactly correct. We got worst age and worst, and if we have a look, that is precisely what it says. And then it goes on to explain how these actually link to it and what that means in terms of LLMs.
So you can see here, it is actually looking at the video, not just reading the transcript and then just making something up. Now you might be asking, Matt, what's the point of this?
Let me give you some examples. So firstly, I use this for research because if you are just researching by the transcript of a video, you're essentially missing out on half of the information, like all of the visual information. And a lot of cases, there is a lot of information which is not said, but it's shown instead.
And this way, you capture all of it if you want to research. Also, I can use it for analyzing other YouTube videos. So if I find a video that I really like, I can throw in the video, I can get AI to analyze it, and it's not just analyzing the script and everything like that.
It's analyzing what's being shown, what graphics are being shown, when they're switching to motion graphics, when they're speaking head, how the layout looks like. Are they do they have, like, talking head and, like, me in the corner? What does it all look like?
I'm getting AI to understand all of this so I can better recreate videos. Also, another use of this is transcription of videos. So it's very easy to transcribe the audio of a video, but if you're taking something from English and turning it into Spanish, you also need to see when is there English in the video, which you then need to change to Spanish in the video so that actually the entire video itself and the visuals are translated, not just the audio.
Also, if you want to duplicate a video, then you can duplicate not just the audio, but also the visuals too because AI can understand everything there. And these are just a handful. There are a load more of applications out there.
So let me talk you through how to set this up for yourself. So come to this link here. This is my GitHub.
This is a public repost. You can use this absolutely for free. Come here.
I'll put a link in the description, and you can copy this. And essentially, all we're gonna do is come over to Claude. We're gonna go over to code, go on new session.
Make sure you create a new folder. I've called this one peaker, and when you're in a new folder, you simply wanna say install this skill here in this GitHub repo, I'm gonna paste in that, and I'm also gonna say explain to me what API keys I need to collect and where I need to put them.
And I'm send that off, and I wonder what it's gonna do because I actually already have this skill installed. So it might tell me I've already got it installed, but essentially that's all you need to do, then just follow the instructions and you'll just get it all set up. The only API keys you need are from OpenRooter, this one here, and also from Deepgram.
And Deepgram is great because if you go into the pricing, you can see they give you $200 worth of free credits, which is very nice. Like with any skill, you need to click through and allow it to install a few things, but simply just go through this process and you'll have it installed within no time at all.
Okay. So for my fellow nerds out there who wanna know what's going on behind the scenes, let me explain it. So first of what we need to do is download the video.
When we're running this skill, we are downloading the video and to do this we're using y t d l p. You can pretty much download any tool on the Internet with this, like YouTube, X, Instagram, TikTok, whatever. It's basically the same as like a right click save as sort of feature, except when you're doing it via code.
So once we have downloaded the video, what we need to do is we need to strip the two components. So there is audio and there is visual, and we need to get AI to understand both of these.
So let's start with the audio as that's the easier one. What we're looking for here is the transcript, and sometimes, especially with YouTube videos, we can just grab the transcript with that same tool. And if we can, sweet.
We don't need to do anything else. We've just got the transcript. However, if it's not a YouTube video or I think sometimes if it's a smaller YouTube video and the captions haven't been generated, then we need to use another method.
So essentially, need to strip the audio from the video. So we're using FFmpeg to take the m p four and strip the m p three file from it.
The reason we're doing this is that we're gonna send this m p three file off to an API, and we only wanna send the m p three. If you send the entire m p four, you're gonna send like a gigabyte file instead of like a 10 megabyte file.
So it just speeds up dramatically. Okay. So we send off to an API.
I use Deepgram. Deepgram's great because it gives you, like, $200 worth of credit for free when you sign up, which, like, is a load.
You should, like, rarely need more than that, but feel free to use eleven Labs or whatever you want to use. I then have a second backup built into this system, which is SuperData. Essentially, this does is you give it the URL of the video, and it generates a transcription by itself doing lots of different things.
That's like if everything else fails, it uses SuperData, but usually, it doesn't need to do that. Okay. So that's the audio side.
Right? We've either got the transcript directly from YouTube or we've generated it with Deepgram or something else. Now the trickier part, which is the video.
And actually, it's not tricky at all. So let me explain how works. So AI doesn't understand video, but it does understand images.
And as you know, videos are just a collection of images. So what we're gonna use is FFmpeg to essentially rip some screenshots, some stills from this video.
And then what we're gonna do is take those stills and we're gonna send them off and get them described essentially by AI. There's several things going on here as well though. So there's a polling process, which essentially means how often are we grabbing a screenshot from the video.
The way that I've got it set up is that if it's a longer video, it's gonna grab a screenshot every couple of seconds. If it's like a ten minute long video, it would do a screenshot every second. If it's just a short clip, it would do it even up to ten a second because sometimes if you want a short clip, you wanna see exactly how things are moving.
So like you wanna see exactly how a motion graphic is appearing so you can duplicate it for example. So once we've got all those screenshots, we're going over to a vision model and getting it to describe all of those and give us the descriptions back.
Now for this, I've played around with it. I am using OpenRooter and I am using Gemini 2.5 flashlight.
The reason for this is that, yes, you can use Claude. You might be saying, Matt, are you running in Claude? Wanna just use Claude's vision anyway?
Yeah. You can do that. However, Claude's super expensive.
It's just gonna tear through your tokens, and actually, Gemini 2.5 flash light is super economical. This is it here using Gemini 2.5 flash, and this is for like a batch of images too because we send a batch because it's more economical.
We are basically spending no money at all, which is sweet. And that's essentially it. We're getting back all those descriptions of the images, and then we've got description of what is happening and a description of what's being said.
Also, is in the tool is making sure that we've got the time stamps for every frame so that we can reference and say, hey, what's happening here? What's happening here? What's happening when the audio is saying this?
And we can actually match it up with what is being said. And that's basically it. Not that tricky.
You just have to do a little bit wiring up or you don't, so you can use the skill. But I just have to do a little bit wiring up in order to get it all to work. The only things which you might have to do after downloading this skill are getting your OpenRooter API key and your Deepgram API key, and then going into Claude here, wherever you have Claude saved, then going into settings dot JSON and putting those into your ENV section.
I won't show you this because you'll see my API keys. If you're unsure on how to do it, just ask Claude on how to do it. So that's it for this video.
I hope you found it useful. If you want access to a load more Claude Co. Skills absolutely for free, then as I said, link in the description.
I will see you in the next one. Adios.
The Hook

The bait, then the rug-pull.

AI tools that read a video's transcript and nothing else will still answer questions about what's on screen, they just make the answer up. The creator built a free Claude Code skill that fixes this by giving the agent real screenshots to look at.

Frameworks

Named ideas worth stealing.

06:55list

Three-tier transcript sourcing

  1. Try YouTube's own captions first (free)
  2. Strip audio with ffmpeg and send to Deepgram or ElevenLabs
  3. Fall back to Supadata (URL-only transcription)

A cost-ordered fallback chain for getting a video's transcript, cheapest and fastest option first.

Steal forany pipeline that needs a transcript from an arbitrary video URL without paying for transcription every time
07:44concept

Length-scaled screenshot polling

Screenshot frequency scales inversely with video length: a couple of seconds apart on long videos, up to ten frames a second on short clips where exact motion timing (e.g. a motion graphic) needs to be reproducible.

Steal forany frame-extraction step in a video-analysis or video-recreation pipeline
CTA Breakdown

How they asked for the click.

VERBAL ASK
04:24link
I'll leave a link on in the description where you can go and get access to all of these, plus the one that I'm showing you in this video now.

Soft-pitched twice, once mid-video during a natural pause and once at sign-off, pointing to a free skills-library landing page rather than a paid product.

FROM THE DESCRIPTION
PRIMARY CTAWhere the creator wants you to go next.
OTHER LINKSAlso linked in the description.
Storyboard

Visual structure at a glance.

GitHub repo README
hookGitHub repo README00:00
Gemini gets it wrong
promiseGemini gets it wrong00:57
Peek gets it right
valuePeek gets it right02:33
audio pipeline whiteboard
valueaudio pipeline whiteboard07:05
frame-batching diagram
valueframe-batching diagram08:32
API keys in settings.json
ctaAPI keys in settings.json09:47
Frame Gallery

Visual moments.

One-click upgrade to your Google

Get more breakdowns in your search results

Add Modern Creator as a preferred source and Google shows you more of our breakdowns in Search, Top Stories, and AI Overviews. It only changes what you see, and you can undo it in your Google settings anytime.

Add to Preferred SourcesOpens your Google source preferences with us pre-loaded. Tick the box and you're done.
Watch next

More from this channel + related breakdowns.

23:48
Nick Saraev · Tutorial

Cerebras Just Killed Second Brains

Cerebras published exactly how its internal knowledge base works, and it's a plain retrieval pipeline any team can copy — no graph visualizations, no floating brain, just Slack and Wiki and code stitched into one queryable table.

July 19th