How to make videos with Claude
PageToVid runs an MCP server, so Claude can use it as a tool: you describe the video you want, Claude reads the page, writes the storyboard, and renders it. No dashboard, no timeline. This guide covers the connection, the handful of tools that matter, and — the part most people skip — how to direct Claude so the film is worth watching rather than merely finished.
What the connector actually does
MCP (Model Context Protocol) is the open standard that lets an assistant call an external service. When PageToVid is connected, Claude gains about forty tools. In practice you will use six of them.
inspect_pagereads a URL and ranks what is worth filming on it.create_videostarts a render from a URL and a brief.create_animationrenders a storyboard you wrote yourself, with no page at all.get_videoreports the phase, the progress and — when it finishes — the warnings.get_storyboardshows every scene: what it was drawn as, what was said over it, where each shot came from.update_storyboardplusrerender_videofix a film rather than remaking it.
The important thing to understand is that Claude is the director, not a form. It chooses the scene count, the words, the visuals and the cutting rhythm. Everything in this guide is about giving it the information it needs to choose well.
Connecting it
The server speaks HTTP and authenticates with OAuth, so there is nothing to install and no API key to paste anywhere.
- Claude Code — run
claude mcp add --transport http pagetovid https://pagetovid.com/mcp, then/mcpinside Claude Code to sign in. A browser opens once. - Claude on web, desktop or mobile — Settings → Connectors → Add custom connector → paste
https://pagetovid.com/mcp. Custom connectors are available on paid Claude plans. - Cursor, VS Code and other MCP clients — the same URL; the developers page has one-click links that pre-fill the server.
Ask Claude to call get_account first. It answers with your plan, your credit balance and exactly which capabilities the account has — which is the honest way to find out whether AI images are available to you before you write a brief that depends on them.
The brief that produces a good film
A weak prompt is "make a video of my site". You get a video of a headline. A strong prompt gives Claude the three things it cannot read off the page:
- Who it is for and what it must do. "A 40-second ad for developers evaluating us, ending on the free tier."
- The facts that must appear. Prices, numbers, the offer. Claude will not invent a figure, and anything it cannot source from the page it will leave out.
- Any line that must be said word for word. Put it in quotation marks and it is spoken verbatim.
Then let Claude inspect before it films. inspect_page ranks the page's subjects, and a page whose top subjects are the product — a table, a search box, a pricing grid, a live listing — makes a far better film than one whose top subject is a hero image. If the ranking comes back thin, point Claude at a deeper page: your pricing page, your docs, the app's marketing tour.
Aspect ratio chooses the device, not just the crop. 9:16 films your page's own mobile layout in a phone viewport; 16:9 and 1:1 film the desktop one. Inspect in the ratio you will actually film, because the ranked subjects differ between them.
Controlling the length
This is the rule that surprises everyone, and the one worth telling Claude explicitly.
The narration is the length. The voice is recorded as one continuous track and the scenes partition it, so a scene lasts exactly as long as the words spoken over it. You do not set a duration; you write more or fewer words. Roughly 110 words a minute.
So "make it 30 seconds" is a brief, not a lever — the way to get 30 seconds is about 55 words of narration. If you ask for a duration and write 200 words, you get a 110-second video. Tell Claude the target and let it budget the words; it is good at this once it knows the rule applies.
A scene with no narration at all is a silent card and holds for the duration you give it — useful for a title or an end frame.
Directing the look
Three separate questions, and it helps to name them separately when you brief Claude.
- The visual — what a scene is drawn as. Twenty-one of them: a statement, a chart, a timeline, a pricing grid, a quote, a comparison, a message thread, a before/after wipe, a real screen recording of your page.
- The motion — how the contents of that visual animate in.
- The transition — how the scene itself arrives: a cut, a crossfade, a whip, a zoom punch, a flash, a swipe, a glitch.
list_motions publishes all three with what each one is for, so Claude can pick from the real catalogue rather than guess. A motion or transition you name is the one you get — nothing is silently swapped for something safer.
There is also one decision that sets the whole film's rhythm: edit_style. tiktok_punchy cuts hard throughout and punches in on a beat marked as a problem or a win. documentary crossfades between subjects. corporate is neutral. cinematic is slower. Choosing one is usually better than specifying eight transitions by hand.
Reading the result before you call it done
A render can finish and still not be whole, and the status says done either way. This is the single most common way people ship a film with a hole in it.
Ask Claude to read get_video's warnings — they are plain sentences, not codes. They tell you when a scene's AI visual failed, when one was skipped because credits ran out, when one needed a capability your plan does not include, and when a scene was held for less time than the words spoken over it.
Then get_storyboard. It shows, per scene, how long its words take to say against how long it was actually held, which page each shot was captured from, and the provenance of every claim in the narration. If a number appears on screen that you cannot trace to your page, this is where you find out.
Fixing a film rather than remaking it
Remaking from scratch costs another render (40 credits) and throws away everything that was right. update_storyboard changes one thing at a time, and the operations in a single call build on each other — the whole batch is applied, or refused together, never half-applied.
set_shotpoints a scene at a specific element on the page, using a selector frominspect_page, optionally with a click, some typing, a hover or a spotlight.set_datacorrects one figure without re-authoring the scene.set_transitionchanges how a scene cuts in.set_narrationrewrites what is said — and therefore how long the scene runs.
Then rerender_video. And if the only problem is that the captions drift against the voice, rerender_video with captions_only set re-times them on the film's existing voice track without recording a new take — free, once per render.
What it costs
One finished render is 40 credits. A render that fails for a system reason is refunded automatically.
AI visuals are metered on top of that: an AI still is 40 credits, and the house AI clip (Veo 3.1 Fast, eight seconds at 720p, with sound) is 160. A clip from a model you name is priced from what that model really costs, per second at the resolution used — ask Claude to call list_models or quote_cost first, both free. create_animation and create_video return an ai_plan with the bill before anything is generated, and ai_budget caps it in advance, so a film cannot quietly cost more than you meant.
AI generation needs a paid plan. On the free plan a render still produces real screen recordings, an AI script, an AI voice and subtitles — the scenes that asked for a generated visual fall back to text, and the result says so in the warnings rather than failing silently.
Turn your website into a video — free
Paste a URL. PageToVid scripts, records, voices and renders it automatically.
Create your first video →Frequently asked questions
Do I need a paid Claude plan?
For Claude on web, desktop or mobile, custom connectors are a paid-plan feature on Claude's side. Claude Code connects on any plan with claude mcp add. Either way you also need a PageToVid account, and the free one works for real screencast renders.
Can Claude make a video with no website at all?
Yes — that is create_animation. You give it a storyboard directly, so it can film data you are holding in the conversation, a story, a changelog, a set of numbers you just computed. There is no page to read and nothing to capture, so it is also the fastest path to a finished film.
How long does a render take?
Several minutes, and it is asynchronous: create_video returns a video_id immediately and get_video reports the phase, the progress and an estimate recalculated from how long this particular render has actually been running. AI clips are the slowest part.
Can it film a page behind a login?
Yes, on the Scale plan, and only for a session you registered beforehand from the VS Code or browser extension. The session is scoped to that one origin and expires within three days. Without one, a page that answers with a sign-in screen is refused before anything is charged.
Why did my video come out longer than I asked for?
Because the narration ran longer than the target. The voice is one continuous track and the scenes partition it, so word count sets the running time. Ask Claude to cut the script to about 110 words per minute of target length and re-render.
Will Claude invent facts about my product?
It should not, and the storyboard lets you check: get_storyboard returns the provenance of every claim, and the pipeline refuses figures it cannot bind to something on the page. If you want a specific number on screen, put it in the brief.