MCP docs › Tools › 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.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
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"
]
}