Skip to main content
Glama
ZeroPointRepo

TranscriptAPI YouTube Transcript + YouTube Search MCP

Powering 15M+ transcripts every month · 500K+ transcripts processed daily · 49ms median response time Trusted in production by youtubetotranscript.com (~11M/mo) and recapio.com (~2.8M/mo).


Why TranscriptAPI MCP

Most YouTube MCP servers do one thing — pull a single transcript. TranscriptAPI MCP is a full toolkit: transcripts, video search, channel search, channel browsing, playlist extraction, and free RSS-based upload tracking — all from one remote endpoint, all designed for AI agents.

TranscriptAPI MCP

Typical YouTube MCP

Hosting

✅ Remote (no local install)

❌ Local stdio install

Tools

✅ 6 tools

❌ 1 (transcript only)

YouTube search

✅ Yes

❌ No

Channel & playlist extraction

✅ Yes

❌ No

Latest-uploads monitoring (free)

✅ Yes

❌ No

OAuth 2.1 + API key auth

✅ Both

❌ Usually neither

Production scale (15M+ req/mo)

✅ Yes

❌ Hobbyist scrapers

Works on mobile Claude & web Claude

✅ Yes

❌ No

Agent-friendly error messages

✅ Yes

❌ Bare HTTP codes

Quick taste:

Find Andrew Huberman's three most-viewed videos about sleep,
get the transcript of each, and write a 5-bullet comparison.

That single prompt uses 3 of our 6 tools — search_youtube, search_channel_videos, get_youtube_transcript — without you writing a line of code.


🧩 Install as an Agent Plugin · easiest

This repository root is a conformant Agent Plugins 1.0.0 package — the portable format published 2026-08-06 and supported by ChatGPT, Codex, Cursor, GitHub Copilot, Kiro and VS Code. One install gets you the MCP server and a bundled youtube skill that teaches your agent when to use each tool and how not to waste credits.

plugin.json                    # Agent Plugins 1.0.0 manifest
mcp.json                       # hosted MCP server, streamable-http, OAuth (no keys)
skills/youtube/SKILL.md        # when + how to use the 6 tools
.cursor-plugin/plugin.json     # Cursor plugin manifest, same MCP + skill (+ marketplace.json)

VS Code — Command Palette → Chat: Install Plugin From Source, then paste:

https://github.com/ZeroPointRepo/youtube-mcp

Or register a local clone in settings.json:

"chat.pluginLocations": { "/absolute/path/to/youtube-mcp": true }

CursorCustomize in the sidebar → find the plugin → Install. For a local clone:

git clone https://github.com/ZeroPointRepo/youtube-mcp ~/.cursor/plugins/local/transcriptapi

Then Developer: Reload Window.

Add to Cursor — MCP server only, no clone. Paste this deeplink into your browser:

cursor://anysphere.cursor-deeplink/mcp/install?name=transcriptapi&config=eyJ1cmwiOiJodHRwczovL3RyYW5zY3JpcHRhcGkuY29tL21jcCJ9

ChatGPT, Codex, GitHub Copilot, Kiro, any other client — point your client's plugin mechanism at this repository, or at a local clone. Agent Plugins 1.0.0 standardizes the package format, not installation, so each client owns its own install flow.

30-second example

Summarize this video for me: https://youtu.be/dQw4w9WgXcQ

The agent calls get_youtube_transcript, gets the full timestamped transcript and summarizes it. No API key to configure — the first call opens an OAuth sign-in (free account, 100 credits, no card). Then try:

What has @TED posted in the last month?     → get_channel_latest_videos (free)
Find talks on protein folding, summarize the best three.
                                             → search_youtube, then transcripts

There are no credentials in this package — Agent Plugins 1.0.0 forbids embedded secrets, and authorization is client-managed. Verify the package yourself:

curl -sO https://agent-plugins.org/schemas/1.0.0/plugin.schema.json
curl -sO https://agent-plugins.org/schemas/1.0.0/mcp.schema.json
npx ajv-cli@5 validate --spec=draft2020 -s plugin.schema.json -d plugin.json
npx ajv-cli@5 validate --spec=draft2020 -s mcp.schema.json    -d mcp.json

🛠️ Quick Install

Requirements:

  • A TranscriptAPI account (sign up free — first 100 credits free)

  • An API key from your dashboard OR use OAuth (Claude, ChatGPT)

Recommended: Add a Rule to Auto-Invoke TranscriptAPI

Add this rule to your AI client so you don't need to explicitly ask for transcripts:

When I share a YouTube URL, automatically use the TranscriptAPI MCP tool
to fetch the transcript before responding. This applies to any video analysis,
summarization, or question about YouTube content.

One-Click Install:

Install MCP Server

Manual Configuration:

Go to: SettingsFeaturesMCPAdd New MCP Server

  • Name: transcript-api

  • Type: SSE (Remote)

  • URL: https://transcriptapi.com/mcp

Or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "transcript-api": {
      "url": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Claude supports adding MCP servers directly via the "Custom Connector" UI.

Quick Setup:

  1. Open Claude Settings (click your profile icon → Settings)

  2. Go to ConnectorsAdd custom connector

  3. Enter the following details:

    • Name: TranscriptAPI

    • URL: https://transcriptapi.com/mcp

  4. Click Add, then click Connect to authorize via your browser.

  5. (Optional) In the connector settings, change permissions to "Allow unsupervised" for seamless usage.

Full Guide: Claude Integration Guide →

claude mcp add --transport http transcript-api https://transcriptapi.com/mcp

ChatGPT supports OAuth for secure authentication. Enable Developer Mode in ChatGPT settings first.

Quick Setup:

  1. In ChatGPT, go to SettingsConnected AppsAdd

  2. Enter the MCP Server URL: https://transcriptapi.com/mcp

  3. Client ID & Secret are optional:

    • Leave them blank to use Dynamic Client Registration (recommended/simpler).

    • (Advanced) Or enter Client ID & Secret from your dashboard for static registration.

  4. Click Add and authorize via the browser popup.

Full Guide: ChatGPT Integration Guide →

Or add this to VS Code user settings (settings.json):

"mcp.servers": {
  "transcript-api": {
    "type": "http",
    "url": "https://transcriptapi.com/mcp",
    "headers": {
      "Authorization": "Bearer YOUR_API_KEY"
    }
  }
}

OpenAI Agent Builder currently requires API Key authentication (OAuth not yet supported).

  1. Create a new Agent

  2. Under "Actions" or "Tools", add a new MCP Server

  3. URL: https://transcriptapi.com/mcp

  4. Auth Type: API Key

  5. Paste your API Key from the dashboard

Step-by-Step Guide →

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "transcript-api": {
      "serverUrl": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
{
  "mcpServers": {
    "transcript-api": {
      "url": "https://transcriptapi.com/mcp",
      "type": "streamableHttp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In Zed settings.json:

{
  "context_servers": {
    "transcript-api": {
      "source": "remote",
      "url": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
{
  "mcpServers": {
    "transcript-api": {
      "type": "streamable-http",
      "url": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
amp mcp add transcript-api https://transcriptapi.com/mcp --header "Authorization: Bearer YOUR_API_KEY"

In settings.json under augment.advanced:

"augment.advanced": {
  "mcpServers": [
    {
      "name": "transcript-api",
      "url": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  ]
}

In .kilocode/mcp.json:

{
  "mcpServers": {
    "transcript-api": {
      "type": "streamable-http",
      "url": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In Settings → Tools → AI Assistant → MCP:

{
  "mcpServers": {
    "transcript-api": {
      "url": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In ~/.gemini/settings.json:

{
  "mcpServers": {
    "transcript-api": {
      "httpUrl": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In ~/.qwen/settings.json:

{
  "mcpServers": {
    "transcript-api": {
      "httpUrl": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
{
  "mcpServers": {
    "transcript-api": {
      "serverUrl": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
{
  "mcpServers": {
    "transcript-api": {
      "url": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In mcp.json:

{
  "mcpServers": {
    "transcript-api": {
      "url": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In Plugins → JSON Config:

{
  "mcpServers": {
    "transcript-api": {
      "url": "https://transcriptapi.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In Settings → AI → MCP:

{
  "transcript-api": {
    "url": "https://transcriptapi.com/mcp",
    "headers": {
      "Authorization": "Bearer YOUR_API_KEY"
    }
  }
}

In Settings → Connectors → Advanced:

{
  "url": "https://transcriptapi.com/mcp",
  "headers": {
    "Authorization": "Bearer YOUR_API_KEY"
  }
}

🔐 Authentication

API Key

Simple and universal. Works with every MCP client.

  1. Get your API key from your dashboard

  2. Keys start with sk_ prefix

  3. Add to config as a Bearer token:

"headers": {
  "Authorization": "Bearer sk_your_api_key_here"
}

Security: Store keys in environment variables where possible and never commit them to version control.

OAuth 2.1

Automatic, secure authentication without manual key management.

Dynamic Client Registration (DCR):

  • Supported by: Claude Desktop, Claude Web, ChatGPT

  • Just add the MCP URL — client auto-registers

  • No credentials needed

  • You'll authorize once via browser redirect

Static Client Registration:

Full reference: Authentication docs →


🧰 Available Tools

All six tools are exposed automatically once you connect. 1 credit = 1 successful (HTTP 200) request. Failed/rate-limited calls do not consume credits.

1. get_youtube_transcript

Fetch the transcript for any YouTube video — as markdown (with metadata) or structured JSON. Drop the output straight into summarizers, search indexes, or AI pipelines.

Parameter

Type

Default

Description

video_url

string

required

YouTube URL (full or short) or 11-char video ID

send_metadata

boolean

true

Include video title, author, thumbnail

format

string

"text"

"text" (markdown) or "json"

include_timestamp

boolean

true

Add timestamps to each segment

Cost: 1 credit per successful request.

Example output (markdown):

# Metadata

## Title: Rick Astley - Never Gonna Give You Up
## Author: RickAstleyVEVO

# Transcript

[0.0s] Never gonna give you up
[4.12s] Never gonna let you down

Example output (JSON):

{
  "transcript": [
    { "text": "Never gonna give you up", "start": 0.0, "duration": 4.12 },
    { "text": "Never gonna let you down", "start": 4.12, "duration": 3.85 }
  ],
  "metadata": { "title": "Rick Astley...", "author_name": "RickAstleyVEVO" }
}

2. search_youtube

Search YouTube for videos or channels. Filter by type and paginate with a continuation token — perfect for discovery, research, and building content pipelines.

Parameter

Type

Default

Description

query

string

required

Search query

search_type

string

"video"

"video" or "channel"

continuation

string

null

Token from a prior call for next page

Cost: 1 credit per page (~20 results per page).

Example prompt:

Search YouTube for "transformer architecture explained" and pick the
top 3 results by relevance.

3. get_channel_latest_videos · FREE

Get the ~15 most recent uploads from any channel via RSS — no credits required. Perfect for monitoring, daily recaps, or triggering downstream pipelines.

Parameter

Type

Default

Description

channel

string

required

@handle, channel URL, or UC… channel ID

Cost: Free.

Example prompt:

Every morning, list new uploads from @lexfridman and @hubermanlab.

4. search_channel_videos

Search inside one specific channel for videos matching a query. Great for researching a creator's content or finding niche topics in large channels.

Parameter

Type

Default

Description

channel

string

required

@handle, channel URL, or UC… ID

query

string

required

Query to search within the channel

continuation

string

null

Pagination token

Cost: 1 credit per page (~30 results per page).

Example prompt:

On Andrew Huberman's channel, find every video about sleep.

5. list_channel_videos

List every video on a channel, ~100 per page. Ideal for building databases, bulk transcript extraction, or auditing a channel's full content library.

Parameter

Type

Default

Description

channel

string

required

@handle, channel URL, or UC… ID

continuation

string

null

Pagination token

Cost: 1 credit per page (~100 results per page).


6. list_playlist_videos

Get every video in a YouTube playlist (PL/UU/LL/FL/OL IDs supported). Process entire courses, lecture series, or curated collections in a single call.

Parameter

Type

Default

Description

playlist

string

required

Playlist URL or playlist ID

continuation

string

null

Pagination token

Cost: 1 credit per page (~100 results per page).


💡 Use Cases & Prompts

Use Case

Example Prompt

📝 Summarize a video

"Summarize the key points from this video: [URL]"

🔍 Research a topic

"Search YouTube for the 5 most-watched videos on neural radiance fields; summarize each."

🧠 Study notes

"Create study notes from this MIT lecture series playlist: [PLAYLIST URL]"

⚖️ Compare perspectives

"Compare arguments in these two videos: [URL1] [URL2]"

🌐 Translate

"Translate this video's transcript to Spanish: [URL]"

✍️ Repurpose content

"Turn this video into a 1,500-word blog post: [URL]"

📡 Monitor a creator

"Each morning, list new uploads from @hubermanlab and tell me which to watch."

🏛️ Build a content database

"Pull every video from @veritasium and store title + transcript."

🎯 Competitor analysis

"Search inside @MKBHD for any video about [competitor product] and summarize the takeaways."


💳 Pricing & Rate Limits

Plan

Price

Credits

Rate Limit

Free

$0 (one-time)

100

60 req/min

Starter Monthly

$5/month

1,000/month

200 req/min

Starter Annual

$54/year ($4.50/mo)

1,000/month

300 req/min

  • 1 Credit = 1 successful request (HTTP 200)

  • Failed and rate-limited requests do not consume credits.

  • get_channel_latest_videos is free (no credits charged).

  • View pricing · Manage credits


🚨 Troubleshooting

  • Verify your API key starts with sk_

  • Check for extra spaces when copying

  • Ensure the key is active in your dashboard

  • If using OAuth, try re-authorizing

  • Check your credit balance at the dashboard

  • Purchase more credits or upgrade your plan

  • The video might not have captions/subtitles enabled

  • The video might be private or age-restricted

  • The video might be region-locked

  • Respect the Retry-After header

  • Implement exponential backoff in your client

  • Upgrade to a paid plan for higher limits

  • Clear browser cookies and try again

  • For ChatGPT, try switching between Dynamic and Static registration

  • Ensure popup blockers aren't preventing the auth window


🔗 Also available as a REST API

Building an app instead of an agent? The same backend ships as a JSON REST API.

MCP

REST API

Best for

AI assistants & agents

Apps & backend services

Setup

Add a URL

Code integration

Get started

This README

API docs → · Swagger →

Base URL: https://transcriptapi.com/api/v2


🤝 Connect


📋 MCP Registry

This server is published to the official Model Context Protocol Registry under the name:

com.transcriptapi/youtube-transcript-and-youtube-search