Guide · AI agents
How to extract video frames with Claude, ChatGPT, and other AI agents
AI assistants usually cannot download a video link and decode its frames on their own; they need a tool. Connect the GetVideoFrames remote MCP server for public video links, the open-source GVF local MCP for private files, or call the GetVideoFrames REST API from code your agent writes.
Last reviewed 3 October 2026 against the live GetVideoFrames API and MCP server.
Which tool should my AI agent use to extract frames?
If the video is a public YouTube, TikTok, Instagram, Facebook, X, or Vimeo link, connect the GetVideoFrames remote MCP server: the agent sends the link and receives frame URLs. If the video is a local file that should stay on your machine, run the GVF local MCP. If you are building an app or pipeline, have your coding agent call the REST API at api.getvideoframes.com/v1. The remote MCP and the API share one account and credit balance.
Agent frame extraction options compared
| Option | Input | Best for |
|---|---|---|
| Remote MCP server | Public video links; processed on GetVideoFrames servers | Claude, ChatGPT, Cursor, VS Code, Claude Code chats |
| GVF local MCP | Local files; processed on your machine with FFmpeg | Private footage, offline agents, smart frame selection |
| REST API | Public video links from your own code | Apps, pipelines, webhooks, batch jobs |
Option 1: Connect the remote MCP server
The remote MCP server exposes the Video Frame API as tools such as getvideoframes_create_job and getvideoframes_get_job. Add the server URL to your client, authorize once with a gvf_live_ API key, and ask for frames in plain language. In Claude Code it is one command:
claude mcp add --transport http getvideoframes https://mcp.getvideoframes.com/mcpSetup steps for Claude, ChatGPT, Cursor, VS Code, and other clients are on the MCP server page.
MCP setup for every clientOption 2: Run the GVF local MCP for private files
GVF is an open-source (MIT) MCP server and CLI that runs over stdio on your machine. Its recommended tool, gvf_run, samples a local video, scores scenes and sharpness, can detect objects such as people, and exports only the selected frames at full quality. It never uploads video, has no telemetry, and does not use API credits. Install it from source, then register it:
{
"mcpServers": {
"gvf": { "command": "gvf-mcp" }
}
}GVF on GitHubOption 3: Have your agent call the REST API
When the agent is writing software rather than chatting, point it at the REST API and its OpenAPI spec. One POST creates a job; wait=true returns the frames in the same response for short videos, and webhook_url notifies your server when longer jobs finish.
curl -X POST https://api.getvideoframes.com/v1/jobs \
-H "Authorization: Bearer $GVF_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/shorts/VIDEO_ID","every":2,"wait":true}'The developer dashboard includes a ready-made prompt that teaches a coding agent the endpoints, rate-limit headers, and error types.
Video Frame API docsWhat happens when an agent extracts frames
The agent calls the create tool with the link and options, GetVideoFrames downloads the video, extracts the frames with FFmpeg, and returns signed image URLs or a ZIP. URLs expire after the plan's retention period (1 day on free and packs, 7 days on paid plans). To have the model look at a frame, the client must fetch the image: some clients display image URLs automatically, others need you to open or attach them.
Limits to know
The remote MCP and API only accept public links or direct video URLs; private and login-only videos return PrivateContent and are not charged. The free plan covers 60 credits a month, videos up to 10 minutes, 300 frames per job, and 720p frames. Respect each platform's terms and the creator's rights when you extract frames.