Server data from the Official MCP Registry
YouTube transcripts, subtitles, and video metadata as structured JSON via an Apify Actor.
YouTube transcripts, subtitles, and video metadata as structured JSON via an Apify Actor.
Remote endpoints: streamable-http: https://mcp.apify.com/?tools=johnvc/YoutubeTranscripts
Valid MCP server (1 strong, 1 medium validity signals). 1 known CVE in dependencies Imported from the Official MCP Registry. Trust signals: trusted author (4/4 approved).
Endpoint verified ยท Requires authentication ยท 2 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"io-github-johnisanerd-youtube-transcripts": {
"url": "https://mcp.apify.com/?tools=johnvc/YoutubeTranscripts"
}
}
}From the project's GitHub README.
The efficient, reliable, and developer-friendly way to use the YouTube Transcripts API.
Actor page: apify.com/johnvc/YoutubeTranscripts Input schema: apify.com/johnvc/YoutubeTranscripts/input-schema
The YouTube Transcripts API extracts the transcript for one or more YouTube videos and returns clean, structured JSON. Each video comes back with a timestamped caption list (text, start, and duration), a plain-text version of the full transcript, and language metadata. It works with standard videos, Shorts, youtu.be short links, embed URLs, and mobile URLs, processes multiple URLs in parallel, and is billed per video.
Clone the repository
git clone https://github.com/johnisanerd/Apify-Youtube-Transcripts-API.git
cd Apify-Youtube-Transcripts-API
Install dependencies with UV
# Install UV if you do not have it:
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install project dependencies:
uv sync
Configure your API key
cp .env.example .env
# Edit .env and add your Apify API key
# Get your free API key at: https://apify.com?fpr=9n7kx3
Run the example
uv run python youtube-transcripts-api.py
export APIFY_API_TOKEN="your_api_key_here"
uv run python youtube-transcripts-api.py
Two transcript formats. Each video returns a timestamped caption list and a plain-text version, so you can build interactive players or feed clean text straight into search and analysis.
Many URL formats. Standard videos, Shorts, youtu.be short links, embed URLs, and mobile URLs all work.
Batch in parallel. Pass an array of URLs and each is processed in parallel; invalid URLs are recorded as errors in the dataset without stopping the run.
Language metadata. Every record reports the transcript language, language code, and whether the captions were auto-generated.
Predictable, pay-per-use pricing. Billing is per video, not per second, with no subscription, which keeps both single and batch runs inexpensive.
Easy to automate. Call it from Python in a few lines, or load it as an MCP tool so assistants like Claude and Cursor can pull transcripts for you on demand.
{
"youtube_url": "https://www.youtube.com/watch?v=aircAruvnKk"
}
{
"youtube_url": [
"https://www.youtube.com/watch?v=aircAruvnKk",
"https://youtu.be/9bZkp7q19f0",
"https://www.youtube.com/shorts/abcdEFGhijk"
]
}
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
youtube_url | string or array | Yes | - | One YouTube URL as a string, or several as an array. Works with standard videos, Shorts, youtu.be, embed, and mobile URLs. Each URL is processed in parallel. |
One item per video. The transcript text below is shown as a placeholder to respect content copyright; your own run returns the actual caption text.
{
"video_id": "aircAruvnKk",
"language": "English",
"language_code": "en",
"is_generated": false,
"total_seconds": 1105.64,
"timestamped": [
{ "text": "<caption segment text>", "start": 4.22, "duration": 1.18 }
],
"non_timestamped": "<full transcript as a single plain-text string>",
"url": "https://www.youtube.com/watch?v=aircAruvnKk",
"timestamp": "2026-05-29T11:58:40",
"success": true
}
The timestamped array holds one entry per caption segment with its text, start, and duration in seconds; non_timestamped is the full transcript as a single string. Language metadata (language, language_code, is_generated) and total_seconds describe the video, and success is true when a transcript was found. Invalid or unavailable URLs are returned with success: false and an error note instead.
You can load the YouTube Transcripts API as an MCP tool so assistants call it for you. The MCP server URL preloads just this one Actor:
https://mcp.apify.com/?tools=actors,docs,johnvc/YoutubeTranscripts
Authenticate with OAuth in the browser when offered, or with your Apify API token (the same APIFY_API_TOKEN used by the Python example). Get a token at https://console.apify.com/settings/integrations and a free Apify account at https://apify.com?fpr=9n7kx3 .

Cowork is the desktop app's automation mode. To give it the YouTube Transcripts API as a tool, add the Apify MCP server as a connector.
claude_desktop_config.json directly).
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.apify.com/?tools=actors,docs,johnvc/YoutubeTranscripts"
]
}
}
}
Download the desktop app and start a free trial: https://claude.ai/referral/uIlpa7nPLg More help: https://docs.apify.com/platform/integrations/claude-desktop

Claude Code is the command-line tool. Add the Actor's MCP server with one command:
claude mcp add --transport http apify \
"https://mcp.apify.com/?tools=actors,docs,johnvc/YoutubeTranscripts"
To use a token instead of browser OAuth:
claude mcp add --transport http apify \
"https://mcp.apify.com/?tools=actors,docs,johnvc/YoutubeTranscripts" \
--header "Authorization: Bearer YOUR_APIFY_TOKEN"
Then verify with claude mcp list, or run /mcp inside a session. Ask Claude Code to call the YouTube Transcripts API.
Try Claude Code free: https://claude.ai/referral/uIlpa7nPLg Claude Code MCP docs: https://code.claude.com/docs/en/mcp

On claude.ai you add Apify as a connector, then enable just this Actor's tool.
johnvc/YoutubeTranscripts.https://mcp.apify.com/?tools=actors,docs,johnvc/YoutubeTranscripts, using OAuth when prompted.Open Claude on the web: https://claude.ai

Cursor reads MCP servers from a project file at .cursor/mcp.json.
.cursor/mcp.json:{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=actors,docs,johnvc/YoutubeTranscripts"
}
}
}
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=actors,docs,johnvc/YoutubeTranscripts",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}
New to Cursor? Get it here: https://cursor.com/referral?code=XQP4VBLI3NNX

ChatGPT connects to the Apify MCP server through Developer mode (available on ChatGPT Pro, Plus, Business, Enterprise, and Education plans).
https://mcp.apify.com/?tools=actors,docs,johnvc/YoutubeTranscriptsMore help: https://docs.apify.com/platform/integrations/mcp
Use the YouTube Transcripts API to power content repurposing, search indexing, and research with reliable, structured captions.
Last Updated: 2026.07.14
Be the first to review this server!
by Microsoft ยท Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by Toleno ยท Developer Tools
Toleno Network MCP Server โ Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace ยท Developer Tools
Create, build, and publish Python MCP servers to PyPI โ conversationally.