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.

Sign in to use Try it. You'll need an API key from the keys page to authenticate the call.