transcribe-video
POST
/api/v1/transcribe-video
1 credits/call
video
transcription
Get the transcript of a YouTube video from its URL: title, duration, full text and optional timestamped segments. 1 credit per call.
Sign in + create an API key on the keys page to authenticate calls.
curl -X POST https://mcp.toolio.pro/api/v1/transcribe-video \
-H "Authorization: Bearer mcpsk_<your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"include_segments": false
}'
Add this server to Claude Desktop's claude_desktop_config.json. The endpoint becomes a callable tool inside Claude. See the MCP setup guide for the full walk-through.
{
"mcpServers": {
"this-api": {
"url": "https://mcp.toolio.pro/mcp",
"transport": "http",
"auth": {
"type": "bearer",
"token": "mcpsk_<your_api_key>"
}
}
}
}
Inside Claude this endpoint surfaces as the tool transcribe-video.
Standard requests — no custom SDK needed. pip install requests first.
import requests
r = requests.post(
"https://mcp.toolio.pro/api/v1/transcribe-video",
headers={"Authorization": "Bearer mcpsk_<your_api_key>"},
json={
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"include_segments": false
},
)
r.raise_for_status()
print(r.json())
Plain fetch. Works in Node 18+, Deno, Bun, and any modern browser.
const r = await fetch("https://mcp.toolio.pro/api/v1/transcribe-video", {
method: "POST",
headers: {
"Authorization": "Bearer mcpsk_<your_api_key>",
"Content-Type": "application/json",
},
body: JSON.stringify({
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"include_segments": false
}),
});
if (!r.ok) throw new Error(`HTTP ${r.status}`);
console.log(await r.json());
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| url | string | required | — |
YouTube video URL (watch, youtu.be, shorts, embed, live) or the 11-character video id.
maxLength=500
minLength=11
|
| lang | string | null | optional | — | Caption language code (e.g. en, fr, de-DE). Leave empty to get the video's own language; see available_languages in the response. |
| include_segments | boolean | optional | False | Also return the timestamped segments (larger response). |
Output
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| video_id | string | required | — | |
| title | string | required | — | |
| duration_seconds | integer | null | required | — | |
| language | string | required | — | Requested language, or 'auto'. |
| available_languages | array<string> | required | — | |
| text | string | required | — | |
| characters | integer | required | — | |
| segments | array<any> | null | optional | — |
Try it
Fires a real POST /api/v1/transcribe-video from your browser. Charges 1 credit per call against your account.