- Home
- MCP servers
- YouTube Transcript DL
YouTube Transcript DL
- typescript
3
GitHub Stars
typescript
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"jedarden-yt-transcript-dl-mcp": {
"command": "yt-transcript-dl-mcp",
"args": [
"start"
],
"env": {
"HOST": "0.0.0.0",
"PORT": "3000",
"CACHE_TTL": "3600",
"LOG_LEVEL": "info",
"LOG_FORMAT": "simple",
"CORS_ENABLED": "true",
"CORS_ORIGINS": "*",
"CACHE_ENABLED": "true",
"MCP_TRANSPORT": "stdio",
"CACHE_MAX_SIZE": "1000",
"RATE_LIMIT_MAX": "100",
"RATE_LIMIT_WINDOW": "900000"
}
}
}
}You can run the YouTube Transcript DL MCP Server to extract transcripts from YouTube videos using multiple transport methods, with options for single videos, bulk processing, and playlists. It supports caching, rate limiting, and easy containerization through Docker and an npm package, making it simple to deploy and scale for production or personal use.
How to use
To start working with transcripts, run the MCP server in the transport mode you prefer. For quick local testing, use stdio transport to start the server in the current process. If you want to serve requests over the network, you can use SSE or HTTP transports. Use the CLI test commands to verify transcripts for a YouTube video, a language preference, or a specific output format.
Practical usage patterns you can follow include:
How to install
# Prerequisites: Node.js and npm should be installed
- Install the MCP server globally via npm
npm install -g yt-transcript-dl-mcp
- Run in stdio mode (default)
yt-transcript-dl-mcp start
- Run in SSE mode on a specific port
yt-transcript-dl-mcp start --transport sse --port 3000
- Run in HTTP mode on a specific port
yt-transcript-dl-mcp start --transport http --port 3000
- Verbose logging
yt-transcript-dl-mcp start --verbose
- Quick test of a sample video from the CLI
yt-transcript-dl-mcp test dQw4w9WgXcQ
- Build from source (clone, install, build)
git clone <repository-url>
cd yt-transcript-dl-repo
npm install
npm run build
- Docker (pull and run)
# From a registry
docker pull ghcr.io/jedarden/yt-transcript-dl-mcp:latest
docker run -p 3001:3001 -p 3002:3002 ghcr.io/jedarden/yt-transcript-dl-mcp:latest --multi-transport
# Build from source and run
docker build -t yt-transcript-dl-mcp .
docker run -p 3001:3001 -p 3002:3002 yt-transcript-dl-mcp --multi-transport
```]} ,{
Additional configuration and usage notes
Configuration covers server settings, transport choice, caching, and logging. You can tune access control, rate limits, and cache behavior to match your needs.
Tools exposed by the MCP server enable you to obtain transcripts in different formats and scopes. Use these tools as building blocks for your workflows.
Configuration and security
Environment variables let you customize ports, transports, rate limits, and caching for production deployments. The following commonly used variables can be set to tailor behavior:
# Server configuration
PORT=3000
HOST=0.0.0.0
MCP_TRANSPORT=stdio
# CORS settings
CORS_ENABLED=true
CORS_ORIGINS=*
# Rate limiting
RATE_LIMIT_WINDOW=900000 # 15 minutes in ms
RATE_LIMIT_MAX=100
# Caching
CACHE_ENABLED=true
CACHE_TTL=3600 # 1 hour in seconds
CACHE_MAX_SIZE=1000
# Logging
LOG_LEVEL=info
LOG_FORMAT=simple
Troubleshooting and tips
If transcripts are not returning as expected, check your video accessibility, language selection, and output format. Enable debug logs to diagnose issues and review health indicators if you are running in Docker.
Available tools
get_transcript
Extract transcript from a single YouTube video in the requested language and format.
get_bulk_transcripts
Extract transcripts from multiple YouTube videos with options for language and output format.
get_playlist_transcripts
Extract transcripts from all videos in a YouTube playlist with language and format options.
format_transcript
Format transcript data into different formats such as text, json, or srt.
get_cache_stats
Retrieve current cache statistics and performance metrics.
clear_cache
Clear the transcript cache to free up memory and refresh data.