BulkTranscripts logo BulkTranscripts

Developer API

YouTube transcript API

Extract one video or build a bulk transcript pipeline for thousands. Get clean JSON with timestamps, search, channel and playlist endpoints, plus a hosted YouTube MCP server for AI agents.

Read the API docs
30free credits to start
$0your repeat reads, re-exports
No cardfor the free tier
Nevercredits expire

What is the BulkTranscripts YouTube transcript API?

A hosted REST API that returns clean transcript JSON for any YouTube video, plus endpoints to search YouTube, list a channel's or playlist's videos, and poll a channel's latest uploads for free. It runs on residential proxies so it is not blocked the way self-hosted scrapers are, and repeat reads of a transcript already in your own library are free. Every call needs an API key; creating one is free and includes 30 credits.

Which YouTube transcript workflow does this API fit?

BulkTranscripts is a hosted YouTube transcript API for developers and researchers who need more than a one-video downloader. Use the transcript endpoint for a list of YouTube URLs, the channel endpoint to enumerate up to 1,000 uploads, or the playlist endpoint to preserve a course or series in order. Each successful extraction returns clean text, video metadata, language, word count, and timestamped segments that can be stored as JSON or rendered as TXT, Markdown, SRT, VTT, CSV, or an AI-ready file. Search and latest-upload endpoints cover discovery and monitoring, while your own library makes repeated reads and re-exports free. For Claude, ChatGPT, Codex, Cursor, VS Code, and other MCP-capable assistants, the same capabilities are available through the hosted YouTube MCP server; automation tools such as n8n and Make call the REST API directly. Choose the REST API when your application controls batching and storage; choose MCP when an AI assistant should search YouTube, list channel videos, and retrieve transcripts as tools inside a conversation.

Your first call, right now

One GET request, one free API key, no SDK. Create the key at /app → Connect AI → API keys (Google sign-in, 30 credits, no card). You get title, channel, duration, upload date, language, the full text, clean paragraphs, and a segments array of {text, start, duration} objects.

curl "https://bulktranscripts.co/api/v1/transcript?video=https://www.youtube.com/watch?v=jNQXAC9IVRw" \ -H "Authorization: Bearer YOUR_API_KEY"

What you get back

Clean JSON you can use from any language. Need a file instead? Add format=srt (or txt, md, vtt, csv, ai) and the same endpoint returns the rendered document.

{ "title": "Me at the zoo", "channel": "jawed", "duration": 19, "language": "en", "cached": true, "word_count": 43, "text": "All right, so here we are in front of the elephants...", "segments": [{"text": "All right...", "start": 0.0, "duration": 5.4}], "billing": {"remaining": 29, "creditsCharged": 1} }

More than transcripts

/api/v1/search finds videos by keyword. /api/v1/channel/videos lists up to 1,000 videos from any channel. /api/v1/playlist/videos keeps playlist order, so courses stay in sequence. /api/v1/channel/latest returns a channel's newest uploads — free, so you can poll it to trigger pipelines and only spend credits on new videos.

A shared cache makes it fast and cheap

Every transcript anyone extracts lands in a shared cache, so cache hits return in milliseconds without another network fetch. The first addition to your library costs one credit; repeat lookups and channel re-runs from your own library are free. Failed extractions are refunded automatically.

No YouTube blocks to fight

Running youtube-transcript-api or yt-dlp from a datacenter IP means bot checks, empty responses, and constant proxy babysitting. That routing is our problem: residential proxies, proof-of-origin tokens, and retries are built in, so the same request that works on your laptop works in production.

Pricing that respects side projects

Credits are one-time purchases, not a subscription: $4.99 for 200, $14.99 for 1,200, $29 for 5,000. They never expire, and credits top up the account your API key already belongs to, so nothing to re-paste. (The license key you get at checkout works as an API key too.) Signing in gets you 30 free transcripts, no card required.

How BulkTranscripts compares

BulkTranscriptsPython library (youtube-transcript-api)Single-video web toolsSelf-hosted MCP server
Whole channel or playlist in one jobYes, up to 1,000 videosRequires channel listing and orchestration around the libraryCheck the selected tool's bulk limitsCheck the selected server's listing and batch tools
Nothing to install or runYes, hostedRequires a Python environmentYes, for browser-based toolsYou operate the selected server
Handling extraction failuresResidential routing and retries; failures can still occurDepends on your network and configurationDepends on providerDepends on server and network configuration
Repeat reads freeYes, after the first addition to your libraryDepends on your caching setupCheck the selected tool's billing policyDepends on implementation
REST API, MCP server and agent skillAll threePython library; integrations require additional componentsCheck available integrationsCheck available interfaces
ExportsTXT, Markdown, SRT, VTT, CSV, JSON, AI-ready combined fileCheck the library's supported formattersCheck supported formatsDepends on implementation
Price30 free, then one-time packs from $4.99 for 200; credits never expireFree software, plus proxy and hosting costsFree or subscriptionFree software, plus proxy and hosting costs

Questions

Do I need an API key?

Yes, and it is free. Sign in with Google at /app, open Connect AI → API keys, and create one: it starts with <code>bt_ak_</code> and comes with 30 free credits, no card. Credits follow the account, so buying a pack later keeps the same key working. A license key from checkout also works as an API key.

How is this different from the youtube-transcript-api Python library?

The library runs on your IP, so it gets blocked the moment you deploy to a cloud host. This is a hosted service with residential routing, retries, a shared cache, search and channel endpoints, and JSON you can use from any language.

Does it return timestamps?

Yes — every segment carries start and duration in seconds, and SRT/VTT output is timestamped by definition.

Is there an OpenAPI spec?

Yes, at /openapi.json — generate a typed client in any language, or hand it to an AI agent.

More YouTube transcript tools

Read the API docs

Updated