TranscriptYT

YouTube transcripts for AI agents: text, JSON, SRT, or VTT in 150+ languages, with AI fallback.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
88%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~948Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (0.74% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "transcriptyt": {
      "url": "https://transcript-yt.com/mcp"
    }
  }
}

Remote endpoints

https://transcript-yt.com/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_transcript(url, language, translate_to, format, timestamps, ...)

Fetch the transcript of a public YouTube video. Accepts a full URL or an 11-character video ID. Defaults to Markdown (title + text), which is the most compact format for reading or summarizing. Use json for timestamped segments, srt/vtt for subtitle files. Costs 1 credit on success.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "YouTube URL or video ID"
    },
    "language": {
      "description": "Preferred caption language (BCP-47, e.g. en, es, pt-BR)",
      "type": "string"
    },
    "translate_to": {
      "description": "Translate the transcript into this language",
      "type": "string"
    },
    "format": {
      "default": "md",
      "description": "Output format",
      "type": "string",
      "enum": [
        "json",
        "text",
        "srt",
        "vtt",
        "csv",
        "md"
      ]
    },
    "timestamps": {
      "default": false,
      "description": "Prefix lines with timestamps (text/md)",
      "type": "boolean"
    },
    "original_language": {
      "description": "Prefer the spoken language's captions over English",
      "type": "boolean"
    },
    "start_time": {
      "description": "Only return the part from this second on",
      "type": "number"
    },
    "end_time": {
      "description": "Only return the part before this second",
      "type": "number"
    },
    "search": {
      "description": "Only return lines containing this text",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_languages(url)

List the caption tracks available for a YouTube video. Free, and does not use credits.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "YouTube URL or video ID"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_playlist_videos(url, limit)

List the videos in a YouTube playlist, or a channel's uploads (newest first), with titles and durations. Accepts playlist links or IDs and channel links or @handles. Free. Use get_transcript on the videos you need.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Playlist URL/ID, or channel URL/@handle"
    },
    "limit": {
      "default": 50,
      "description": "Maximum videos to return",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    }
  },
  "required": [
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢search_youtube(query, channel, limit)

Search YouTube for videos, or search within one channel by passing its link or @handle. Returns video IDs, titles, channels, durations, and view counts. Free. Use get_transcript on the videos you need.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search terms"
    },
    "channel": {
      "description": "Only search this channel (URL, channel ID, or @handle)",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "description": "Maximum videos to return",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢summarize_video(url, language, translate_to)

Summary, key points, and timestamped study notes for a public YouTube video, generated from its transcript. Written in the transcript's language (translate_to changes which transcript is summarized). Costs 1 credit for the transcript plus 1 for the summary (2 total).

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "YouTube URL or video ID"
    },
    "language": {
      "description": "Preferred caption language (BCP-47, e.g. en, es, pt-BR)",
      "type": "string"
    },
    "translate_to": {
      "description": "Summarize a translation of the transcript into this language",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_usage

Show the remaining TranscriptYT credits and plan for this API key. Free.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools