All guides

November 13, 2026 · 6 min read

Do You Need an API Key for YouTube Transcripts? What Works and What Doesn't

In short

Do you need an API key for YouTube transcripts? Why a YouTube Data API key can't download other people's captions, and how to get a TranscriptYT key free.

You don't need any API key to read one video's transcript: YouTube's own Show transcript panel and the free TranscriptYT transcript tool work without one. To fetch transcripts from code, a YouTube Data API key won't do it for videos you don't own, so you need a key from a transcript API such as the TranscriptYT YouTube Transcript API, which gives every account 100 free transcripts. This guide explains why the official key falls short, what the keyless libraries break on, and how to create and use a TranscriptYT key.

Do you need an API key to get a YouTube transcript?

It depends on how many videos you need and where your code runs. For a handful of videos read by a person, no key is needed. For an app, script, or AI agent that fetches transcripts on demand, you need a key from a service that can actually return caption text for public videos.

Here is how the common situations break down:

  • One video, read in a browser: open the video's description on YouTube and click Show transcript, or paste the link into the free transcript tool. No key.
  • Your own channel's captions from code: the YouTube Data API, authorized with OAuth by the channel owner. An API key alone is not enough.
  • Other people's public videos from code: a transcript API with its own key, or an open-source scraper that works until YouTube blocks your server's IP.
  • An AI assistant such as Claude or Cursor: the TranscriptYT MCP server, which signs you in or takes the same key (see the MCP guide).

Why a YouTube Data API key can't download other people's captions

Most developers searching for a YouTube transcript API key start in the Google Cloud console, create a YouTube Data API v3 key, and find that it doesn't return any transcript text. That is by design.

The Data API splits captions into two calls. captions.list tells you which caption tracks a video has (language, name, whether they are auto-generated), but not the words. The words come from captions.download, and Google's captions.download reference requires OAuth 2.0 authorization with the youtube.force-ssl or youtubepartner scope. A plain API key is not accepted for that method.

Even with OAuth, the signed-in account needs sufficient permissions on the video. The reference documents a 403 forbidden error when the permissions on the request aren't enough to download the track, which is what you get when you point it at someone else's video. In practice captions.download serves the video's owner or someone managing the channel, not a developer reading public videos.

Quota is the second limit. A Google Cloud project gets 10,000 quota units a day by default, and captions.download costs 200 units per call, so even for your own videos that is about 50 downloads a day before you request a quota increase. The comparison of the two APIs covers when each one fits.

What a YouTube Data API key is still useful for

The Data API key is the right tool for public metadata: video titles, descriptions, view counts, channel details, playlist contents, and search results. If your product manages a creator's own channel, OAuth plus captions.download and captions.insert is the supported way to read and upload that creator's captions.

What it can't do is the job most people search for: take any public video URL and return the spoken words. For that you need a different kind of service.

Keyless options, and where they stop working

Open-source tools read the same caption tracks a viewer sees in the YouTube player, so they need no key at all. The Python library youtube-transcript-api and yt-dlp's subtitle download are the two most used.

They work well on a laptop. On a cloud server they often don't: YouTube blocks caption requests from many datacenter IP ranges, and the library raises RequestBlocked or IpBlocked on hosts such as AWS, Google Cloud, and Vercel. The usual workaround is paying for rotating residential proxies and maintaining the retry logic yourself. The guide to fixing RequestBlocked errors walks through the options, and the free YouTube transcript API roundup compares free tiers.

A hosted transcript API moves that problem off your server. You send a video URL and a key over HTTPS, and the service handles fetching, proxies, retries, and formats.

How to get a TranscriptYT API key

Creating a key takes about a minute and needs no credit card:

  • Go to the API page and click Get a free key.
  • Sign in with your Google account. A new account starts on the Free plan with 100 credits, one time.
  • Open the API keys page in your dashboard (/dashboard/keys) and create a key. It starts with ts_live_.
  • Copy the key right away. Keys are stored only as a SHA-256 hash, so the dashboard shows the full key once and can't show it again. If you lose it, revoke it and create a new one.
  • Store it in an environment variable or your platform's secret manager, never in source code or a client-side bundle.

Making your first request with the key

Pass the key as a bearer token in the Authorization header, or in an x-api-key header if that is easier in your HTTP client. GET /v1/transcript takes a YouTube URL (watch, youtu.be, shorts, or embed) or a bare 11-character video ID and returns JSON with timestamped segments, full text, the track language, and video details. Add format=text, srt, vtt, csv, or md for other outputs; every format costs the same single credit.

The API docs list every parameter, including language, translate_to for 150+ languages, startTime and endTime, and the batch endpoint for many videos in one call.

export TRANSCRIPTYT_KEY="ts_live_..."

# JSON with timestamped segments
curl "https://transcript-yt.com/v1/transcript?url=5f3Pn-N6yLc" \
  -H "Authorization: Bearer $TRANSCRIPTYT_KEY"

# Plain text, Python
import os, requests

res = requests.get(
    "https://transcript-yt.com/v1/transcript",
    params={"url": "5f3Pn-N6yLc", "format": "text"},
    headers={"Authorization": f"Bearer {os.environ['TRANSCRIPTYT_KEY']}"},
)
res.raise_for_status()
print(res.text)

Free plan limits, paid plans, and how many keys you get

Each successful transcript costs 1 credit. Failed requests (any 4xx or 5xx) are never billed, and the X-Credits-Charged header on every response shows what a call cost. GET /v1/usage returns your remaining credits for free.

The Free plan is for trying the API: 100 credits one time, 1 key, 10 requests a minute, and existing captions only. A video with no captions returns NO_CAPTIONS on Free. Paid plans add AI transcription for caption-less videos, billed at 1 credit per started minute of audio, and raise the rate limit to 200 requests a minute:

  • Micro: $3 a month, 1,000 credits, 1 key.
  • Starter: $9 a month, 4,000 credits, 3 keys.
  • Growth: $29 a month, 15,000 credits, 10 keys.
  • Scale: $79 a month, 50,000 credits, 25 keys.

Keeping your API key safe

Treat the key like a password, because anyone holding it spends your credits. A few habits prevent most problems:

  • Call the API from your server, a serverless function, or a script, not from browser JavaScript where visitors can read the key.
  • On plans with several keys, create one per app or environment so you can revoke one without breaking the others.
  • Revoke a leaked key in the dashboard and create a replacement; requests with a revoked key get 401 UNAUTHORIZED.
  • Watch the X-RateLimit-Remaining and X-Credits-Remaining headers, and back off on a 429 using its Retry-After value.

Common questions

Do I need an API key to get a YouTube transcript?

Not for a single video: YouTube's Show transcript panel and free web tools work without one. To fetch transcripts from code reliably, you need a key from a transcript API, because the official Data API only downloads captions for videos you can manage.

Can I use my YouTube Data API key to download transcripts?

No. captions.list works with an API key but returns only track details, not text. captions.download requires OAuth authorization with enough permission on the video, so it can't read other people's captions.

Is there a free YouTube transcript API key?

Yes. A TranscriptYT account includes 100 free transcripts with no credit card, using the same key and endpoints as paid plans. The Free plan reads existing captions only.

Where do I find my TranscriptYT API key?

Sign in at transcript-yt.com and create one on the API keys page of your dashboard. The full key is shown only once, so copy it then; if you lose it, revoke it and create a new one.

How much does a YouTube transcript API key cost?

Creating a TranscriptYT key is free. Paid plans start at $3 a month for 1,000 transcripts, and failed requests are never charged.

Try the YouTube Transcript API

Get transcripts as JSON, text, SRT, or VTT. 100 free credits, no card required.

More guides