YouTube Audio & Transcript MCP Server
Converts YouTube videos to audio files in multiple formats such as MP3, M4A, WAV, FLAC, AAC, OPUS, OGG, and WebM, with optional time clipping. Also fetches YouTube transcripts/captions in formats including text, JSON, LLM chunks, Markdown, SRT, and VTT.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@YouTube Audio & Transcript MCP Server Convert https://www.youtube.com/watch?v=jNQXAC9IVRw to a 320 kbps MP3 and give me the link."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
YouTube Audio & Transcript MCP Server
An MCP server that lets AI agents (Claude Desktop, Claude Code, Cursor, and other MCP clients) convert YouTube videos to audio files and fetch YouTube transcripts.
It calls two RapidAPI APIs with your own RapidAPI key:
YouTube Audio Downloader & Converter: MP3, M4A, WAV, FLAC, AAC, OPUS, OGG and WebM, with clipping.
YouTube Transcript, Subtitle & Metadata API (
youtube-transcript-subtitle-metadata-api.p.rapidapi.com): existing manual or automatic captions as text, JSON segments, LLM chunks, Markdown, SRT or VTT.
Tools
Tool | What it does |
| Converts a YouTube URL to audio. Inputs: |
| Gets the transcript from existing captions. Inputs: |
| Checks a job that did not finish in time. Inputs: |
Errors from the API are passed through with their code, for example Error TRANSCRIPT_NOT_AVAILABLE (HTTP 422): ... or Error RAPIDAPI_NOT_SUBSCRIBED (HTTP 403): ....
Related MCP server: YouTube for AI Agents
Get a RapidAPI key
Open the YouTube Audio API on RapidAPI and subscribe to a plan.
To use
youtube_transcript, also subscribe to the YouTube Transcript, Subtitle & Metadata API with the same account.Copy your
X-RapidAPI-Keyfrom the endpoint playground. That value is yourRAPIDAPI_KEY.
Install
The server runs with npx, so you do not need to install anything else. It needs Node.js 18 or later.
RAPIDAPI_KEY=your-key npx -y github:pauliusdotpro/youtube-media-mcpClaude Desktop
Add this to claude_desktop_config.json (Settings, Developer, Edit Config):
{
"mcpServers": {
"youtube-media": {
"command": "npx",
"args": ["-y", "github:pauliusdotpro/youtube-media-mcp"],
"env": {
"RAPIDAPI_KEY": "your-rapidapi-key"
}
}
}
}Claude Code
claude mcp add youtube-media --env RAPIDAPI_KEY=your-rapidapi-key -- npx -y github:pauliusdotpro/youtube-media-mcpCursor
Add this to ~/.cursor/mcp.json, or to .cursor/mcp.json in your project:
{
"mcpServers": {
"youtube-media": {
"command": "npx",
"args": ["-y", "github:pauliusdotpro/youtube-media-mcp"],
"env": {
"RAPIDAPI_KEY": "your-rapidapi-key"
}
}
}
}Environment variables
Variable | Required | Default |
| Yes | None |
| No |
|
| No |
|
Example prompts
"Convert https://www.youtube.com/watch?v=jNQXAC9IVRw to a 320 kbps MP3 and give me the link."
"Get the audio from 1:00 to 2:30 of this video as FLAC."
"Summarize this video from its English transcript."
"Download Spanish subtitles for this video as SRT."
Notes
Download links are short-lived (results expire after about 30 minutes). Download the file soon after you get the link.
Transcripts come from caption tracks that YouTube already has. If a video has no captions, the tool returns
TRANSCRIPT_NOT_AVAILABLE. There is no speech-to-text fallback.Private, removed, age-restricted and live videos are not supported. Sources can be up to three hours long.
Process only content that you own or have the right to use. This project is not affiliated with YouTube or Google.
Development
npm install
npm run build
RAPIDAPI_KEY=your-key node dist/index.jsYou can test with the MCP Inspector: npx @modelcontextprotocol/inspector node dist/index.js.
License
MIT
Available Tools
3 toolsget_jobCheck a conversion or transcript jobARead-onlyIdempotent
Check the status of a job returned by youtube_to_audio or youtube_transcript when it did not finish in time. Long-polls up to waitSeconds (max 25). When the job is done: for api='audio' returns a fresh short-lived download link; for api='transcript' returns the transcript content. Failed jobs return the API error code and message.
Inputs: jobId (required), api, maxChars, waitSeconds.
youtube_to_audioYouTube to audio (MP3, M4A, WAV, FLAC...)AIdempotent
Convert a public YouTube video or Shorts URL to an audio file and return a short-lived download link. Supports mp3 (default), m4a, wav, flac, aac, opus, ogg, webm; bitrate 128/192/256/320 kbps or standard/best; optional clip via startTime/endTime in seconds. Sources up to 3 hours. Returns link, fileName, fileSize and durationSeconds. Waits up to ~2 minutes; if the conversion is still running, returns a jobId to check later with get_job. The link expires (about 30 minutes), so download it promptly. Private, removed, age-restricted and live videos are not supported.
Inputs: url (required), format, endTime, quality, +2 more.
youtube_transcriptYouTube transcript / captionsARead-onlyIdempotent
Get the transcript of a public YouTube video or Shorts from its existing captions (manual or auto-generated). Formats: 'text' (plain transcript, default), 'json' (metadata plus timestamped segments), 'llm' (ordered timestamped chunks for RAG/summaries), 'markdown' (readable with timestamps), 'srt' or 'vtt' (subtitle files). Optionally pick a language tag (e.g. en, es, pt-BR) and caption source. When language is omitted the API prefers manual English, then automatic English, then the first available track. Waits up to ~2 minutes; if still running, returns a jobId for get_job. Fails with TRANSCRIPT_NOT_AVAILABLE when the video has no matching captions (no speech-to-text fallback).
Inputs: url (required), format, source, language, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool targets a clearly distinct action: youtube_to_audio produces audio files, youtube_transcript retrieves captions, and get_job polls async jobs from either. There is no realistic overlap that would cause misselection.
The three names use three different patterns: youtube_to_audio (noun_to_noun with verb), youtube_transcript (noun_noun, no verb), and get_job (verb_noun). All are snake_case and readable, but the convention is mixed rather than predictable.
Three tools is lean but each earns its place: two capabilities plus the shared async-job poller. It is slightly minimal (no batch/playlist helper), but well-scoped for the server's narrow purpose.
The core surface (audio extraction, transcript retrieval, and job-status handling for both async flows) is fully covered with no dead ends. Minor gaps exist: no playlist/batch support and no lightweight video metadata lookup.
Related MCP Connectors
YouTube for AI agents: transcripts, comments, video stats, channel monitor, Shorts captions.
YouTube transcripts for AI agents: captions with timestamps, languages, TXT, SRT and VTT export.
YouTube transcripts, search, channels, playlists and bulk transcript jobs for AI agents. 14 tools.
YouTube transcripts for AI agents: text, JSON, SRT, or VTT in 150+ languages, with AI fallback.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to extract YouTube video metadata and generate high-quality multilingual transcriptions with voice activity detection, supporting 99 languages with translation capabilities and intelligent caching.56MIT
- AlicenseAqualityDmaintenanceEnables AI agents to search, watch, summarize, clip, and extract transcripts from YouTube videos, all without needing an API key or leaving the chat.927 npm61Apache 2.0
- AlicenseAqualityDmaintenanceEnables AI agents to download, transcribe, and inspect video or audio URLs from YouTube, TikTok, X, and 1000+ other sites using server-side yt-dlp, residential proxies, and speech-to-text.940 npmMIT

fetchworks-mcpofficial
AlicenseAqualityCmaintenanceEnables AI agents to retrieve YouTube transcripts from individual videos, channels, and search results, supporting multiple output formats such as plain text, SRT, and VTT.345 npmMIT