Free tool
YouTube playlist transcript downloader
Paste a playlist URL and get every available transcript in it, in playlist order, in whatever format you need.
How do I download all transcripts from a YouTube playlist?
Paste the playlist URL into BulkTranscripts. It lists the playlist's videos in order, fetches each available transcript, and exports them as individual files or a single combined document that keeps the playlist order. It works on public and unlisted playlists and needs no Python, extension or account. A private playlist cannot be read by anyone but its owner (YouTube reports it as nonexistent): open it on YouTube, choose Edit, and set Visibility to Unlisted first. Playlist ids of any length (13, 18, 26 or 34 characters) work.
Order is preserved
Playlists usually have a sequence that matters: a course runs lesson 1 to lesson 12, a series builds on itself. Transcripts come back in playlist order, and the combined export keeps that order too, so a course reads as a course.
Playlists that span many channels
A playlist often collects videos from different creators. That is handled fine: each transcript records its own source channel, so you can tell who said what even when a single file contains a dozen different voices.
Works on unlisted playlists
If the playlist is reachable by URL, it can be extracted. Private playlists cannot be, because the videos are not publicly readable.
Typical uses
Turning a lecture series into revision notes, condensing a conference track down to the three talks worth watching, or loading a tutorial playlist into an AI assistant so you can ask it questions instead of scrubbing timelines.
Playlist, channel, or a list of your own
A playlist is one of three ways to run a bulk job. Paste a channel handle to take every upload instead, or paste several video links at once when the set you want is not a playlist anyone has made. Whichever you start from, the export and the credit rule are the same: one credit per new transcript, repeat reads free.
What real jobs look like
Numbers from our production database, not a benchmark we staged. Pulled October 14, 2026, covering the last 30 days unless noted.
| Measure | Result | What it means |
|---|---|---|
| Jobs completed | 1,652 | Video, playlist and channel jobs from the app, API and MCP, last 30 days |
| Transcripts delivered | 58,779 | Same window, counting each video once per job |
| Videos that returned a transcript | 94.0% | Out of every video a job attempted |
| Videos skipped | 4.8% | No captions, members-only, private or age-restricted. Listed in the results, never charged |
| Genuine failures | 1.2% | Blocks, timeouts, broken videos. Not charged |
| Fresh fetch, per video | 4.2 s median, 12 s p90 | Jobs fetch many videos in parallel, so a channel is not N × this |
| Speed of a big job | about 2 new videos per second | A 1,000-video channel with almost nothing cached took about 6½ minutes |
| Repeat read from your library | 0.08 s median | Free, in any format |
| Largest single job | 1,000 videos | The per-job cap |
The 4.8% skipped are the main thing to expect: YouTube only has a transcript when the creator uploaded captions or auto-captions were generated, and members-only or private videos cannot be read at all. Those videos are listed in your results so you know exactly what was missing.
Questions
How can I pull the transcripts of every video in a playlist at once?
Paste the playlist link into the box above and press Get transcripts. Every video in the playlist that has captions is fetched in one job, whether it holds 40 videos or 1,000, and you download them as a ZIP or one combined file. Private playlists need to be set to Unlisted first; YouTube hides private ones from everyone but the owner.
Where do I find the playlist URL?
Open the playlist on YouTube and copy the address bar. Anything containing list= works. A watch URL with a list= parameter works too.
Is there a limit on playlist length?
Up to 1,000 videos per job. Longer playlists can be run in batches, and already-extracted videos are served from cache rather than re-fetched.
Can I get one file for the whole playlist?
Yes. The combined export puts the entire playlist into a single document, which is what you want for NotebookLM or a long-context model.