MCP docs › Tools › Video Frame Extractor
Video Frame Extractor
video_frame_extractor medium Video, audio & downloads
Extract frame-by-frame or each-second screenshots from social media videos (YouTube, TikTok, Instagram, Facebook) or uploaded files. Generates a ZIP archive, timestamped images, and structured multimodal Vision AI payloads.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url |
string | no | — | Video URL from YouTube, TikTok, Instagram, Facebook, Snapchat, X, etc. |
file_path |
string | no | — | Path to uploaded video file on server. |
interval |
number | no | 1 |
Seconds between extracted frames (e.g. 1.0 for each second screenshot). |
max_frames |
integer | no | 120 |
Maximum number of frames to generate (default 120, max 300). |
scale_width |
integer | no | 0 |
Width to scale image (e.g. 1024 for high-res Vision AI, 720, 512, 0 for original). |
timestamp_overlay |
boolean | no | false |
Whether to burn timestamp badge onto the screenshot. |
frames_per_image |
integer | no | 1 |
Number of frames per storyboard sheet (e.g. 1 for individual frames only, 6 for 3x2 grid, 12 for 4x3 grid, -1 for all in one contact sheet). |
Returns
ZIP download URL, list of timestamped frame URLs, and Vision AI prompt payload.
Each row typically carries: title duration interval_seconds total_frames frames storyboard_sheets zip_url vision_ai
The response body is { status, count, fields, results }. Runs that exceed the inline wait return { status: "running", job_id, tool_flow } instead — see Jobs & errors.
Call it over MCP
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "video_frame_extractor",
"arguments": {
"url": "https://www.youtube.com/watch?v=aircAruvnKk",
"interval": 1,
"max_frames": 60
}
}
}
Call it over the REST API
curl -X POST https://convertfleet.online/api/tool-run \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"tool":"video_frames","params":{"url":"https://www.youtube.com/watch?v=aircAruvnKk","interval":1,"max_frames":60}}'
Both paths run the same job engine, enforce the same plan limits and count against the same monthly quota. See the REST API page.
Related tools
JSON Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Video URL from YouTube, TikTok, Instagram, Facebook, Snapchat, X, etc."
},
"file_path": {
"type": "string",
"description": "Path to uploaded video file on server."
},
"interval": {
"type": "number",
"description": "Seconds between extracted frames (e.g. 1.0 for each second screenshot).",
"default": 1
},
"max_frames": {
"type": "integer",
"description": "Maximum number of frames to generate (default 120, max 300).",
"default": 120
},
"scale_width": {
"type": "integer",
"description": "Width to scale image (e.g. 1024 for high-res Vision AI, 720, 512, 0 for original).",
"default": 0
},
"timestamp_overlay": {
"type": "boolean",
"description": "Whether to burn timestamp badge onto the screenshot.",
"default": false
},
"frames_per_image": {
"type": "integer",
"description": "Number of frames per storyboard sheet (e.g. 1 for individual frames only, 6 for 3x2 grid, 12 for 4x3 grid, -1 for all in one contact sheet).",
"default": 1
}
},
"additionalProperties": false
}