November 12, 2026 · 6 min read
Free YouTube Transcript API Options, and Where Each One Breaks
In short
The free ways to get YouTube transcripts in code: the open-source Python library, the official Data API, and hosted free tiers, plus where each breaks at scale.
There are three free ways to get YouTube transcripts in code: the open-source youtube-transcript-api Python library, the official YouTube Data API, and the free tiers of hosted transcript APIs such as the TranscriptYT API, which gives every account 100 transcripts with no credit card. All three cost nothing to start, but each stops working at a different point: the library when it runs on a cloud server, the Data API when the video isn't yours, and hosted free tiers when you run out of free requests. This guide covers what each one does, the limit you'll hit first, and how to pick one for your project.
The three free options at a glance
Each option is free in a different sense. The library has no fee but needs a network YouTube trusts. The Data API is free within a daily quota but only reads captions on videos you can edit. Hosted APIs are free up to a fixed number of requests, then charge per transcript.
- youtube-transcript-api (Python library): free and open source, any public video with captions, blocked on most cloud servers.
- YouTube Data API v3: free within 10,000 quota units a day, but captions.download needs permission to edit the video.
- Hosted API free tiers: a fixed allowance (100 credits at TranscriptYT), and they run from any server because the provider handles the fetch.
- Free web tools: for a handful of videos by hand, the free transcript tool needs no code at all.
Option 1: the youtube-transcript-api Python library
youtube-transcript-api is an open-source Python package that reads the same caption tracks a viewer sees on YouTube. It needs no API key, handles manual and auto-generated captions, and can ask YouTube to translate a track. For a notebook or a script on your laptop, it is the fastest way to start.
In version 1.x you create an instance and call fetch. The older static get_transcript method was removed, which is the cause of a common AttributeError.
pip install youtube-transcript-api
from youtube_transcript_api import YouTubeTranscriptApi
transcript = YouTubeTranscriptApi().fetch("5f3Pn-N6yLc")
for snippet in transcript:
print(snippet.start, snippet.text)Where the free Python library breaks: cloud IPs and missing captions
The library fetches from whatever IP address it runs on. YouTube blocks or rate-limits caption requests from most datacenter IP ranges, so the same code that works at home raises RequestBlocked or IpBlocked on AWS, Google Cloud, Vercel, Render, or a GitHub Actions runner. The RequestBlocked guide covers the error in detail.
The library's own fix is a rotating residential proxy, which is billed by bandwidth. At that point the library is no longer free: you pay for the proxy pool, handle retries when an exit IP is slow or flagged, and update the code when YouTube changes its pages.
It also returns nothing for videos without a caption track (TranscriptsDisabled or NoTranscriptFound), because it only reads captions. It has no speech-to-text fallback.
- Works well: personal scripts, notebooks, one-off research from a home connection.
- Breaks: any server or serverless deployment, bulk jobs from one IP, videos without captions.
Option 2: the official YouTube Data API
Google's YouTube Data API v3 is free to use within a quota. A new project gets 10,000 units a day, resetting at midnight Pacific time. Captions are handled by two methods: captions.list (50 units) returns the tracks on a video but not their text, and captions.download (200 units) returns the text.
The catch is permission. captions.download requires OAuth authorization from an account that can edit the video. You can list the caption tracks on someone else's public video, but you can't download their text. The Data API is the right tool for a creator dashboard that manages a channel's own captions, not for reading transcripts from public videos.
Even on your own videos, the quota limits volume: at 200 units per download, 10,000 units covers about 50 caption downloads a day if you spend the quota on nothing else. Google offers higher quotas through an audit and extension request, which takes time and isn't guaranteed. The Transcript API vs. Data API comparison goes through when to use each.
Option 3: free tiers of hosted transcript APIs
Hosted transcript APIs run the YouTube fetch on their own proxy networks and return the transcript over HTTPS. Your server never contacts YouTube, so the datacenter IP block doesn't apply, and most offer a free allowance to build against. Allowances as listed on each provider's pricing page in November 2026:
- TranscriptYT: 100 credits once, no credit card, 10 requests a minute, API and MCP server included.
- Supadata: 100 requests a month.
- TranscriptAPI.com, ScrapeCreators, SearchAPI: 100 free credits or requests each.
- youtube-transcript.io: 25 transcripts a month in the web app; API access is on paid plans.
What TranscriptYT's free tier includes
Every account starts on the Free plan: 100 credits, one time, with one API key and a limit of 10 requests a minute. A successful transcript costs 1 credit. Failed requests are never billed, and checking which languages a video has (/v1/languages) or your remaining balance (/v1/usage) is free.
The free credits get the same endpoint as paid plans. Formats are json, text, srt, vtt, csv, and md, at no extra cost, and the language and translate_to parameters cover 150+ languages. You can send up to 10 videos per batch call, and the first 10 uncached playlist, channel, or search lookups each day are free.
One limit to know: the Free plan reads captions only. A video with no caption track returns NO_CAPTIONS, and AI transcription of the audio needs a paid plan or credit pack.
curl "https://transcript-yt.com/v1/transcript?url=5f3Pn-N6yLc&format=text" \ -H "Authorization: Bearer ts_live_xxxx" # Response headers show what the call cost: # X-Credits-Charged: 1 # X-Credits-Remaining: 99
When a free YouTube transcript API stops being enough
Hosted free tiers break in the most predictable way: you run out. 100 transcripts is enough to build and test an integration, not to run a product. Look at what the next step costs before you build on a free tier.
On TranscriptYT the Micro plan is $3 a month for 1,000 credits with 200 requests a minute and AI transcription for videos without captions. Starter is $9 for 4,000, Growth $29 for 15,000, and Scale $79 for 50,000 ($1.58 per 1,000). Credit packs without a subscription start at $45 for 25,000. The best YouTube transcript APIs guide compares these prices with other providers.
- Under 100 videos total: any free tier, or the library from your laptop.
- A product on servers or serverless: a hosted API, starting on its free credits.
- Your own channel's captions only: the YouTube Data API.
- Steady volume or videos without captions: a paid hosted plan.
How to start with 100 free transcripts
Getting a key takes about a minute. If you're moving from the Python library, the response has the same segments with start times and durations, so the change is a few lines; the Python guide shows the full swap.
- Sign in at transcript-yt.com/api with Google and create an API key.
- Send it as Authorization: Bearer ts_live_... (or the x-api-key header).
- Call GET /v1/transcript with a video URL or ID; add format=srt or language=es as needed.
- Check your balance with /v1/usage or the X-Credits-Remaining header. Every parameter is in the docs.
Common questions
Is there a free YouTube transcript API?
Yes. The youtube-transcript-api Python library is free but blocked on most cloud servers, and hosted APIs offer free tiers. TranscriptYT gives every account 100 transcripts with no credit card, through the same API as paid plans.
Can I get YouTube transcripts with the official YouTube Data API for free?
Only for videos you can edit. captions.download needs the owner's OAuth authorization and costs 200 of your 10,000 daily quota units, so it can't read other people's public videos.
Why does youtube-transcript-api stop working on my server?
YouTube blocks caption requests from most datacenter IP ranges, so the library raises RequestBlocked or IpBlocked on AWS, Google Cloud, Vercel, and similar hosts. The fixes are residential proxies or a hosted API.
Does the TranscriptYT free plan include AI transcription?
No. The Free plan reads existing captions only, and a caption-less video returns NO_CAPTIONS. AI transcription needs a paid plan, from $3 a month, or a credit pack.
Do failed requests use free credits?
No. On TranscriptYT any request that fails with a 4xx or 5xx error is not billed, and the X-Credits-Charged header shows 0.