A curated list of libraries, APIs, MCP servers, agent skills and apps for getting the transcript or subtitles of a YouTube video, plus speech-to-text tools for videos that have no captions.
Entries are open source unless they are in Hosted APIs. Star counts change, so none are listed; every repo here had a commit in the last 12 months when it was added.
- Which tool should I use?
- Libraries
- Speech-to-text for videos without captions
- Hosted APIs
- MCP servers
- Agent skills
- Framework integrations
- Summarizers and apps
- Bulk and archiving
- Guides and references
| You want to | Start with |
|---|---|
| Fetch captions from a script on your own machine | youtube-transcript-api (Python) or YouTube.js (JavaScript) |
| Download subtitle files from the command line | yt-dlp with --write-subs --write-auto-subs --skip-download |
| Transcribe a video that has no captions | faster-whisper or whisper.cpp on the downloaded audio |
| Fetch transcripts from a server or cloud function | A hosted API, or a library behind your own proxies. YouTube often blocks requests from cloud IP ranges (details) |
| Let an AI assistant read YouTube videos | An MCP server or an agent skill |
- youtube-transcript-api - Fetches manual and auto-generated transcripts, lists available languages and translates them. No API key or headless browser. Includes a CLI.
- yt-dlp - The standard video downloader. Its subtitle options save captions as VTT, SRT or JSON3 without downloading the video.
- YouTube.js - Client for YouTube's internal InnerTube API.
getTranscript()returns timed segments (example). - youtube-transcript - Small npm package with a single
fetchTranscript()call. Uses an unofficial endpoint, so it can break when YouTube changes.
- Whisper - OpenAI's open speech recognition model, the base most tools below build on.
- faster-whisper - Whisper reimplemented on CTranslate2. Several times faster than the original with lower memory use.
- whisper.cpp - Whisper in C/C++. Runs on CPU, Apple Silicon and small devices.
- WhisperX - Adds word-level timestamps and speaker diarization to Whisper.
- insanely-fast-whisper - CLI for batched Whisper transcription on GPUs.
Use these when you need transcripts from servers that YouTube blocks, or don't want to run proxies. All are commercial services; check each site for current pricing and limits.
- GetYouTubeTranscript - REST API and remote MCP server for transcripts, YouTube search, channels and playlists. Python and Node SDKs.
- SearchAPI - YouTube transcripts endpoint inside a general search API.
- Supadata - Transcripts and metadata for YouTube, TikTok, Instagram, X, Facebook and web pages.
- TranscriptAPI - YouTube transcripts, search, channels and playlists, with an MCP server.
- TranscriptOut - YouTube transcript API with agent skills and an MCP server.
- YouTube Transcript (youtube-transcript.io) - Web tool and API for YouTube transcripts.
Model Context Protocol servers let Claude, Cursor, VS Code and other MCP clients read YouTube videos.
- jkawamoto/mcp-youtube-transcript - Transcripts and metadata, with automatic pagination for long videos and proxy settings.
- kimtaeyoon83/mcp-server-youtube-transcript - One
get_transcripttool, installable through Smithery. - anaisbetts/mcp-youtube - Downloads subtitles with a local yt-dlp install.
- tubeagentkit/youtube-mcp - Transcripts, search, channels and playlists through the GetYouTubeTranscript API. Remote HTTP or local stdio.
- ZeroPointRepo/youtube-mcp - Transcripts, search, channels and playlists through the TranscriptAPI service.
Agent Skills are folders of instructions that Claude Code, Cursor, Codex and similar agents load when a task matches.
- artemchuikin/youtube-skills - Twelve skills for transcripts, search, channels and playlists through TranscriptOut.
- JimmySadek/video-fetcher-to-markdown - Turns YouTube, Instagram, TikTok and X video links into Obsidian-ready Markdown notes.
- michalparkola/tapestry-skills - Claude Code skills that download articles, PDFs and YouTube transcripts as sources.
- tubeagentkit/youtube-transcript-skills - Transcripts, search, channels and playlists through the GetYouTubeTranscript API. Shell scripts, no runtime to install.
- zarazhangrui/youtube-to-ebook - Claude skill that turns transcripts from chosen channels into EPUB ebooks.
- ZeroPointRepo/youtube-skills - Transcripts, search, channels and playlists through TranscriptAPI.
- LlamaIndex YoutubeTranscriptReader - Built-in LlamaIndex reader that loads transcripts as Documents.
- llama-index-readers-getyoutubetranscript - LlamaIndex reader backed by the GetYouTubeTranscript API.
- getyoutubetranscript-haystack - Haystack component that returns transcripts as Documents.
- n8n-nodes-getyoutubetranscript - n8n community node for transcripts, search, channels and playlists.
- dify-plugin-getyoutubetranscript - Dify tool plugin for transcripts with timestamps.
- martinopiaggi/summarize - Summarizes videos from YouTube and 10 other sources into Markdown with any OpenAI-compatible model. CLI, Streamlit, HTTP API and Docker.
- Milkshiift/YouTubeTLDR - Lightweight self-hosted YouTube summarizer using Gemini.
- PaoloJN/recap - YouTube summaries, a searchable transcript and chat about the video.
- zarazhangrui/youtube-digest - Turns videos into study material with transcripts, bilingual translation and notes.
- DevRico003/youtube_summarizer - Next.js app for AI summaries of YouTube videos.
- jimmc414/onefilellm - Combines GitHub repos, papers, web pages and YouTube transcripts into one text file for an LLM prompt.
- openzim/youtube - Packs a channel or playlist, with its subtitles, into an offline ZIM archive for Kiwix.
- Ebrizzzz/Youtube-playlist-to-formatted-text - Desktop app that pulls a playlist's transcripts and turns them into a formatted book with Gemini.
- Dicklesworthstone/bulk_transcribe_youtube_videos_from_playlist - Transcribes a whole playlist with Whisper.
- Working around IP bans - Why transcript requests from cloud servers get
RequestBlockedorIpBlocked, and how proxies help. - yt-dlp subtitle options - Every flag for choosing subtitle languages and formats.
- youtube-transcript-errors - What each transcript error means, what triggers it and what to do about it.
- youtube-transcript-benchmark - Open, reproducible comparison of transcript methods by success rate and latency.
Pull requests are welcome. See CONTRIBUTING.md.
This list is maintained by the team behind GetYouTubeTranscript, so some entries are our own projects. Competing tools are listed on the same terms, and a PR that improves a description of ours is as welcome as any other.
CC0 1.0. To the extent possible under law, the contributors have waived all copyright to this list.