Skip to Content

YouTube Transcript API

Use a simple and performant API to turn YouTube videos into text — with timestamps, multi-language support, and AI-powered fallback transcription.

✔️ Instantly fetch transcripts from a library of billions of YouTube videos

✔️ Extract accurate and time-stamped video transcripts for content analysis

✔️ High performance and high availability API for bulk requests

Trusted by top teams

Appsflyer
Bosch
Hellofresh
Huel
Openai
Usage
curl 'https://api.supadata.ai/v1/transcript?url=https://youtu.be/dQw4w9WgXcQ' \
  -H 'x-api-key: {your_api_key}'
{
  "lang": "en",
  "content": [
    {
      "text": "[Music]",
      "offset": 0,
      "duration": 14650,
      "lang": "en"
    },
    {
      "text": "We're no strangers to",
      "offset": 18800,
      "duration": 1000,
      "lang": "en"
    },
    {
      "text": "love you know the rules and so do I",
      "offset": 21800,
      "duration": 3360,
      "lang": "en"
    },
    {
      "text": "I full commitments while I'm thinking",
      "offset": 26040,
      "duration": 3080,
      "lang": "en"
    },
    {
      "text": "of",
      "offset": 29640,
      "duration": 5880,
      "lang": "en"
    },
    {
      "text": "you wouldn't get this from any other guy",
      "offset": 31240,
      "duration": 3200,
      "lang": "en"
    },
    {
      "text": "I just want to tell you how I'm",
      "offset": 35520,
      "duration": 2640,
      "lang": "en"
    },
    {
      "text": "feeling got to make you understand Never",
      "offset": 39440,
      "duration": 3680,
      "lang": "en"
    },
    {
      "text": "Going To Give You Up never going to let",
      "offset": 43360,
      "duration": 2400,
      "lang": "en"
    },
    {
      "text": "you down never going to run around and",
      "offset": 46200,
      "duration": 3040,
      "lang": "en"
    },
    {
      "text": "desert you never going to make you cry",
      "offset": 49720,
      "duration": 3160,
      "lang": "en"
    },
    {
      "text": "never going to say goodbye never going",
      "offset": 53640,
      "duration": 2400,
      "lang": "en"
    },
    {
      "text": "to tell a lie and hurt you",
      "offset": 56120,
      "duration": 2880,
      "lang": "en"
    },
    {
      "text": "We've known each other for so",
      "offset": 60760,
      "duration": 2360,
      "lang": "en"
    },
    {
      "text": "long your heart's been aching but your",
      "offset": 63960,
      "duration": 3080,
      "lang": "en"
    },
    {
      "text": "to sh to say it inside we both know",
      "offset": 67320,
      "duration": 3000,
      "lang": "en"
    },
    {
      "text": "what's been going",
      "offset": 70600,
      "duration": 880,
      "lang": "en"
    },
    {
      "text": "on we know the game and we're going to",
      "offset": 72520,
      "duration": 3240,
      "lang": "en"
    },
    {
      "text": "playing and if you ask me how I'm",
      "offset": 76640,
      "duration": 3720,
      "lang": "en"
    },
    {
      "text": "feeling don't tell me you're too my you",
      "offset": 81400,
      "duration": 2920,
      "lang": "en"
    },
    {
      "text": "see Never Going To Give You Up never",
      "offset": 84600,
      "duration": 2880,
      "lang": "en"
    },
    {
      "text": "going to let you down never to run",
      "offset": 87720,
      "duration": 2440,
      "lang": "en"
    },
    {
      "text": "around and desert you never going to",
      "offset": 90800,
      "duration": 3360,
      "lang": "en"
    },
    {
      "text": "make you cry never going to say goodbye",
      "offset": 94400,
      "duration": 2680,
      "lang": "en"
    },
    {
      "text": "never going to tell a lie and hurt you",
      "offset": 98080,
      "duration": 3200,
      "lang": "en"
    },
    {
      "text": "never going to give you up never going",
      "offset": 102240,
      "duration": 2360,
      "lang": "en"
    },
    {
      "text": "to let you down never going to run",
      "offset": 104680,
      "duration": 2400,
      "lang": "en"
    },
    {
      "text": "around and desert you never going to",
      "offset": 107680,
      "duration": 3360,
      "lang": "en"
    },
    {
      "text": "make you cry never going to sing goodbye",
      "offset": 111320,
      "duration": 2880,
      "lang": "en"
    },
    {
      "text": "going to tell a lie and hurt",
      "offset": 115200,
      "duration": 2400,
      "lang": "en"
    },
    {
      "text": "you",
      "offset": 118840,
      "duration": 3000,
      "lang": "en"
    },
    {
      "text": "give",
      "offset": 121960,
      "duration": 2320,
      "lang": "en"
    },
    {
      "text": "you give",
      "offset": 125240,
      "duration": 1000,
      "lang": "en"
    },
    {
      "text": "you going to give going to give",
      "offset": 127640,
      "duration": 2160,
      "lang": "en"
    },
    {
      "text": "you going to give going to give",
      "offset": 131880,
      "duration": 2160,
      "lang": "en"
    },
    {
      "text": "you we've known each other for so",
      "offset": 135840,
      "duration": 3320,
      "lang": "en"
    },
    {
      "text": "long your heart's been aching but you're",
      "offset": 140040,
      "duration": 3080,
      "lang": "en"
    },
    {
      "text": "too sh to say inside we both know what's",
      "offset": 143360,
      "duration": 3280,
      "lang": "en"
    },
    {
      "text": "been going",
      "offset": 146920,
      "duration": 640,
      "lang": "en"
    },
    {
      "text": "on we the game and we're going to play",
      "offset": 148480,
      "duration": 3720,
      "lang": "en"
    },
    {
      "text": "it I just want to tell you how I'm",
      "offset": 152720,
      "duration": 3720,
      "lang": "en"
    },
    {
      "text": "feeling got to make you understand Never",
      "offset": 157760,
      "duration": 3640,
      "lang": "en"
    },
    {
      "text": "Going To Give You Up never going to let",
      "offset": 161640,
      "duration": 2520,
      "lang": "en"
    },
    {
      "text": "you down never going to run around and",
      "offset": 164480,
      "duration": 3080,
      "lang": "en"
    },
    {
      "text": "desert you never going to make you cry",
      "offset": 168080,
      "duration": 3120,
      "lang": "en"
    },
    {
      "text": "never going to say goodbye never going",
      "offset": 171960,
      "duration": 2400,
      "lang": "en"
    },
    {
      "text": "to tell you my and Hurt You Never Going",
      "offset": 174440,
      "duration": 4120,
      "lang": "en"
    },
    {
      "text": "To Give You Up",
      "offset": 178640,
      "duration": 920,
      "lang": "en"
    },
    {
      "text": "never going to let you down never going",
      "offset": 180400,
      "duration": 2360,
      "lang": "en"
    },
    {
      "text": "to run around and desert you never going",
      "offset": 182880,
      "duration": 4120,
      "lang": "en"
    },
    {
      "text": "to make you C never going to say goodbye",
      "offset": 187080,
      "duration": 2960,
      "lang": "en"
    },
    {
      "text": "never going to",
      "offset": 191040,
      "duration": 280,
      "lang": "en"
    },
    {
      "text": "tell and Hur You Never Going To Give You",
      "offset": 192400,
      "duration": 3840,
      "lang": "en"
    },
    {
      "text": "Up never going to let you down never",
      "offset": 196640,
      "duration": 2840,
      "lang": "en"
    },
    {
      "text": "going to run around and desert you never",
      "offset": 199680,
      "duration": 4000,
      "lang": "en"
    },
    {
      "text": "going to make you going to",
      "offset": 203960,
      "duration": 2160,
      "lang": "en"
    },
    {
      "text": "[Music]",
      "offset": 207030,
      "duration": 3970,
      "lang": "en"
    },
    {
      "text": "goodbye",
      "offset": 208680,
      "duration": 5320,
      "lang": "en"
    },
    {
      "text": "and",
      "offset": 211000,
      "duration": 3000,
      "lang": "en"
    }
  ]
}

Supadata vs. Alternatives

Not all YouTube transcript solutions are equal. Here’s how Supadata compares to the popular open-source Python library and YouTube’s official Data API:

FeatureSupadataPython youtube-transcript-apiYouTube Data API
TypeREST API (any language)Python library onlyGoogle Cloud API
SetupGet API key, make a requestpip install, Python requiredGoogle Cloud project, OAuth, quota setup
AI fallbackWhisper transcription when no captions existFails with errorNot available
Quota limitsBased on plan (100–1M credits/mo)None, but IP-based rate limits10,000 units/day hard cap
TimestampsPer-segment offset and duration in msPer-segment timestampsNot available via captions API
Language support50+ languages, auto-detectedAvailable languages onlyLimited
No-code integrationsZapier, Make, n8n, Active PiecesNoneNone
SDKsPython, JavaScript/TypeScriptPython onlyGoogle client libraries

Ready to try it? Get your free API key → — 100 requests/month, no credit card.


AI Fallback Transcription

When a YouTube video has no captions — live streams, older uploads, user-generated content — most tools fail silently. Supadata uses Whisper AI to generate the transcript instead, through the same API endpoint with the same response format. No code changes, no separate pricing.

SupadataOther transcript tools
No captions availableAI-transcribed via WhisperRequest fails
API changes neededNone — same endpoint, same responseSeparate fallback logic
Extra costIncluded in all plansPremium tier or not available
Language detectionAutomatic for 50+ languagesManual configuration

Built for Developers, by Developers

Nobody likes bloated APIs and unnecessary complexity. That’s why we’ve built our service to be:

Fast

Plug & Play

Scalable

Reliable

Well-documented

Affordable


Use Cases

SaaS Products

Build products powered by video data:

  • AI chatbots and agents
  • Content repurposing tools
  • Brand mention monitoring
  • Market research dashboards

Content Analysis

Extract insights at scale:

  • Research and data mining
  • Content moderation
  • Topic and trend detection
  • Competitive analysis

AI & Machine Learning

Feed your models with quality data:

  • Retrieval-Augmented Generation (RAG)
  • Fine-tuning datasets
  • Sentiment analysis pipelines
  • Video summarization

Pricing

Start free with 100 requests/month. Scale to millions of credits with predictable pricing — no hidden fees, no per-character billing.

View Pricing


Trusted by Builders

“Finally, an API that just works without the BS.” — Sarah Chen, AI Maker

“Saved me weeks of development time.” — Mark T., Solopreneur


Performance & Capabilities

CapabilitySupported
Native captions when available
AI (Whisper) fallback when no captions exist
Millisecond-precision timestamps
50+ languages, auto-detected
Batch endpoint for multiple videos
Plain-text or segmented JSON output

Processing speed is typically under a second for captioned videos; AI fallback adds time proportional to length. For high volume, use the batch endpoint and cache results — transcripts don’t change once a video is published.


Code Examples

Get transcripts in seconds. No OAuth, no YouTube API key, no quota limits.

curl 'https://api.supadata.ai/v1/transcript?url=https://youtu.be/dQw4w9WgXcQ' \ -H 'x-api-key: YOUR_API_KEY'

Response:

{ "lang": "en", "content": [ { "text": "We're no strangers to love", "offset": 18800, "duration": 1000 }, { "text": "You know the rules and so do I", "offset": 21800, "duration": 3360 } ] }

FAQ

What happens when a video has no captions?

Supadata automatically transcribes the audio using Whisper AI. You use the same API endpoint, get the same response format, and pay the same price. No code changes needed on your side.

What languages are supported?

50+ languages with automatic detection. You can request a specific language with the lang parameter, or omit it to get the default language.

How do timestamps work?

Each transcript includes a content array where every entry has text, offset (start time in ms), and duration fields.

What are the rate limits?

The free tier supports up to 100 credits per month. Paid plans range from 1,000 to 1,000,000 credits/month with higher concurrency. See pricing for details.

Do you support batch requests?

Yes. The batch endpoint lets you fetch transcripts for multiple videos in a single API call.

What SDKs and integrations are available?

Official SDKs for Python and JavaScript/TypeScript, plus no-code integrations with Zapier, Make, n8n, and Active Pieces. There’s also an MCP server for AI assistants like Claude and Cursor.

Is there a free tier?

Yes. The Basic plan includes 100 credits/month at no cost, with no credit card required. Every new account starts on Basic automatically.


Other Supadata APIs

The YouTube Transcript API is one endpoint in a larger toolkit. Every API below shares the same key and response format, so adding a platform is a one-line change:


Ready to build?

Get your API key in 30 seconds. No credit card required. Start Building Now →