ConvertFleet

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.

When to use. Creating frame-by-frame screenshots or 1-second interval image sequences from video for multimodal Vision AI analysis (Gemini, GPT-4o, Claude 3.5).
Not for. Audio-only files or downloading plain videos.

Parameters

NameTypeRequiredDefaultDescription
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
}