ConvertFleet

MCP docsTools › YouTube Transcript Extractor

YouTube Transcript Extractor

youtube_transcript fast Video, audio & downloads

Get the transcript / closed captions for one or many YouTube videos. Returns, per video, the full plain-text transcript, timestamped segments, and an .srt subtitle string. Works with manual and auto-generated captions; can target a language or auto-translate.

When to use. Reading what was actually SAID in videos — summarising talks, mining podcasts/webinars, repurposing content, answering questions about a video's contents.
Not for. Videos with captions disabled (returns an error row for those) or non-YouTube video.

Parameters

NameTypeRequiredDefaultDescription
urls string[] yes 1-50 YouTube video URLs (watch?v=, youtu.be, /shorts/) to transcribe.
languages string[] no Preferred caption language codes in priority order, e.g. ['en','es']. Defaults to English then any available.
prefer_manual boolean no true Prefer human-written captions, falling back to auto-generated. Set false to prefer auto captions.
translate_to string no Optional target language code to auto-translate the transcript into (e.g. 'en').
include_timestamps boolean no true Include the timestamped segment list and .srt string in each row.

Returns

Per video: full plain text, timestamped segments and an .srt string.

Each row typically carries: video_id url title language is_generated text segments srt word_count

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": "youtube_transcript",
    "arguments": {
      "urls": [
        "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
      ],
      "languages": [
        "en"
      ]
    }
  }
}

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":"yt_tx","params":{"urls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"languages":["en"]}}'

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": {
    "urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "1-50 YouTube video URLs (watch?v=, youtu.be, /shorts/) to transcribe."
    },
    "languages": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Preferred caption language codes in priority order, e.g. ['en','es']. Defaults to English then any available."
    },
    "prefer_manual": {
      "type": "boolean",
      "description": "Prefer human-written captions, falling back to auto-generated. Set false to prefer auto captions.",
      "default": true
    },
    "translate_to": {
      "type": "string",
      "description": "Optional target language code to auto-translate the transcript into (e.g. 'en')."
    },
    "include_timestamps": {
      "type": "boolean",
      "description": "Include the timestamped segment list and .srt string in each row.",
      "default": true
    }
  },
  "additionalProperties": false,
  "required": [
    "urls"
  ]
}