BulkTranscripts YouTube

Hosted remote MCP server for YouTube: fetch clean transcripts (single or batch), search videos/channels/playlists, list channel or playlist videos, and track new uploads — no signup, free tier, no local install.

Documentation

1,000 videos per bulk joba whole channel or playlist

10 tools for your assistanttranscripts, search, uploads

30 free credits to startGoogle sign-in, no card

$0 to read a video againyour library stays free

What is a YouTube MCP server?

An MCP (Model Context Protocol) server gives an AI assistant such as Claude, ChatGPT or Cursor a set of tools it can call. The BulkTranscripts MCP server is hosted, so there is nothing to run: connect it with one URL and one Google sign-in and the assistant can fetch transcripts, search YouTube, list channels and playlists, and watch for new uploads.

Connect it in about a minute

Pick your app. Every one ends the same way: one Google sign-in, and the account starts with 30 free credits.

Claude (web & desktop): add a custom connector

In Claude, open Settings → Connectors → Add custom connector. Name it BulkTranscripts, paste the URL below, press Add, then Connect. A sign-in page opens: continue with Google and the account includes 30 free credits. Then just ask, for example "Get the transcript of this video and summarize it" with a YouTube link.

https://bulktranscripts.co/mcp

What your assistant can do with it

Ten tools in five jobs. Costs are per call; anything already in your library is free to read again.

Read transcripts

The full text with title, channel and timestamps, so answers quote what was actually said.

  • get_transcript 1 video 1 credit
  • get_transcripts up to 20 at once 1 per video

Pull a whole channel

A channel, playlist or podcast back catalogue in one job. Runs on the server, so the chat never times out.

  • start_bulk_extract up to 1,000 videos 1 per video
  • get_bulk_status progress free
  • list_bulk_results what landed free

Find the right videos

Search all of YouTube, or search inside one creator's channel for a topic.

  • search_youtube by keyword 1 credit
  • search_channel inside a channel 1 credit

List an archive

Every video on a channel or in a playlist, so the assistant picks what to read.

  • get_channel_videos up to 1,000 1 credit
  • get_playlist_videos in order 1 credit

Watch for new uploads

“Did anyone I follow post this week?” Poll it every morning; it never costs a thing.

  • get_latest_videos newest uploads free

You just ask

You never type a tool name. Ask in plain words and the assistant picks the tool, the way it picks a search engine.

Which tool runs for which request ↓

Things people ask it

Paste a link or name a channel. The bigger the archive, the more it saves you.

A whole podcast

“Pull every episode of this podcast and list the books the host keeps recommending, with the episodes that mention them.”

A course playlist

“Read all the lectures in this playlist and build a study guide with one section per lecture.”

Competitor channels

“What have these three channels posted this month? One line each, then the themes they share.”

One creator, one topic

“What has @hubermanlab said about caffeine timing? Quote the episodes.”

Where experts disagree

“Find the most-watched videos on intermittent fasting and tell me where the experts disagree.”

Every morning

“Check @TED, @veritasium and @3blue1brown for new uploads and brief me on anything about AI.” free

Why a hosted server

Nothing to run

No npx, Docker or keys to juggle. BulkTranscripts runs the extraction (proxy routing, retries, a shared cache) and keeps it working when YouTube changes.

Pay once, re-read free

30 free credits with Google sign-in. A transcript costs 1 credit the first time it enters your library; reading it again is free in every app. One-time packs that never expire, no subscription.

Built for whole channels

Bulk jobs run up to 1,000 videos on the server and report progress, so long jobs survive the chat. Videos without captions are skipped and never charged.

Hosted server vs. the GitHub MCP servers

BulkTranscripts operates the extraction service for you. Self-hosting gives you control of the implementation and deployment, with responsibility for its maintenance. Features vary by repository: check the specific server's documentation before choosing. This is a deployment comparison written by BulkTranscripts, not a benchmark of every alternative.

BulkTranscripts MCPSelf-hosted repos (npx / uvx)
SetupHosted URL with OAuth or a license keyRuntime and hosting depend on the chosen repository
Where requests come fromManaged extraction with residential routing and retries; failures remain possibleThe network or proxy you configure
ToolsTranscript, batch of 20, YouTube search, channel search, channel list, playlist list, free new-upload checkCheck the repository's tool list
Whole channel or playlistList up to 1,000 videos, then batch-fetchCheck listing, pagination and batch support
CacheShared cache; repeat reads from your library are freeDepends on implementation and configuration
AuthenticationOAuth sign-in or a license key header; credits follow the accountDepends on implementation and deployment
Cost30 free, then one-time packs from $4.99 for 200; credits never expireCheck licensing, hosting, network and maintenance costs

Which tool runs, and what it costs

You never call these by name — the assistant picks from the descriptions. This is the mapping it lands on, so you know what a request will cost before you ask.

You say…Tool usedCredits
"Summarize this video: [URL]"get_transcript1 (0 if it is already in your library)
"Compare what these four talks say about X"get_transcripts1 per new video
"Find the best explainers on Y"search_youtube, then get_transcripts for the picks1 + 1 per transcript
"What has @creator said about Z?"search_channel, then get_transcripts1 + 1 per transcript
"Turn this course playlist into study notes"get_playlist_videos, then get_transcripts in batches of 201 + 1 per lecture
"Audit this channel's whole archive"get_channel_videos (up to 1,000), then selective get_transcripts1 + 1 per transcript read
"Did @creator post anything this week?"get_latest_videos0

Full parameters and return fields for every tool

Generated from the same tool schema the server sends to your client, so what you see here is exactly what Claude, Cursor or ChatGPT sees.

ToolParametersReturnsCost
get_transcript Get YouTube video transcript- video string · required YouTube video URL or 11-character video id. - language string · optional Preferred caption language code, e.g. 'en' or 'de'. Defaults to 'en', falling back to whatever exists. - include_segments boolean · optional Include the timestamped segment list. Default false — the plain text is usually what you want. - fresh boolean · optional Bypass the cache and re-extract (costs a credit). Default false.Title, channel, duration, upload date, language, clean paragraph text, word count and (on request) timed segments for one video.1 credit on first library addition · repeat reads free
get_transcripts Get many transcripts at once- videos array of string · required Up to 20 YouTube video URLs or ids. - language string · optional Preferred caption language code. Default 'en'.Up to 20 transcripts in one call, fetched in parallel; the call returns within about 40 seconds and anything still fetching comes back on the next call, free. Videos without captions are reported per item and do not fail the batch. One call is one request against the rate limit.1 credit per new transcript · repeats free
get_channel_videos List a channel's videos- channel string · required Channel @handle, URL, or UC… id. - limit integer · optional Max videos to list, default 100.A channel's video list (id, title, duration, URL), up to 1,000, ready to feed into get_transcripts.1 credit
get_playlist_videos List a playlist's videos- playlist string · required Playlist URL or id (the list= value). - limit integer · optional Max videos to list, default 100.Every video in a playlist, in playlist order.1 credit
get_latest_videos Track new uploads (free)- channel string · required Channel @handle, URL, or UC… id.A channel's newest uploads (up to 15) with publish dates and views.Free — always
start_bulk_extract Start a bulk extraction job- url string · required Channel (@handle or URL), playlist URL/id, or a single video URL. - max_videos integer · optional Cap on videos to process, default 100. - language string · optional Preferred caption language code. Default 'en'.A run_id straight away, plus videos_found once the listing is done (small sources list within the call). The server then fetches every transcript into this account's library in the background.Listing free · 1 credit per new transcript
get_bulk_status Check a bulk job- run_id string · required The run_id from start_bulk_extract.status, total, completed, failed, skipped, quota, remaining and check_again_in_seconds for a job.Free
list_bulk_results List a bulk job's results- run_id string · required The run_id from start_bulk_extract. - cursor integer · optional next_cursor from the previous page; omit for the first page. - limit integer · optional Items per page, default 50.A page of per-video outcomes (id, title, channel, duration, word count, status, error code) with next_cursor. No transcript text.Free

Troubleshooting

The connector shows “Needs authentication” or never finishes connecting

Open the sign-in your client offers (Claude Code: /mcp → Authenticate; Claude web: Settings → Connectors → the connector's menu → Reconnect; Cursor: Settings → MCP → Login). The sign-in page is served by BulkTranscripts and accepts Google or a license key. If the page never opens, the client is probably an older build without MCP OAuth: use the key-in-URL form https://bulktranscripts.co/mcp?key=YOUR_LICENSE_KEY instead.

I get 401 right after buying a pack

The key is issued at checkout but the payment webhook that activates it can land a few seconds later. Wait a moment and retry; nothing is charged for the failed call.

The assistant answers from memory instead of calling the tool

Paste the full YouTube URL (not just the title) and say “use BulkTranscripts” or “fetch the transcript” once. Check the connector is enabled for the current chat; ChatGPT and Claude web both have a per-conversation toggle.

out_of_credits in the middle of a batch

The transcripts already fetched are returned with partial: true and a stopped count, and the error carries a purchase link. Credits are added to the same account you signed in with, so nothing needs reconnecting afterwards.

no_transcript for a video that clearly has captions

Some videos only have captions in one language; ask for that language explicitly (“get the German transcript”). Live streams and members-only videos expose no captions. Never charged.

Long videos (2h+) take a while or the client times out

Extraction usually finishes in a few seconds, but the first read of a long, uncached video can take longer than a strict client timeout. Ask again: the second request returns instantly from the cache and the credit is not charged twice.

Something else

Every error has a stable code listed in the error table. Still stuck? Email hello@bulktranscripts.co with the tool name and the code.

Building against the REST API instead? Same engine, same credits: API docs · OpenAPI spec · agent skill.

Questions

Which MCP clients does it work with?

Anything that speaks MCP over streamable HTTP: Claude Code, Claude web/desktop connectors, ChatGPT developer mode, Cursor, Windsurf, VS Code, Codex, Cline, Grok, and the official MCP SDKs.

Is it really free to try?

Yes. Signing in with Google includes 30 free transcript additions, no card needed. The latest-uploads tool is free forever.

Do I have to run anything locally?

No. It is a hosted remote server at https://bulktranscripts.co/mcp: no npx, no uvx, no Docker, no API key juggling to start.

How is this different from the open-source YouTube transcript MCP servers?

BulkTranscripts is hosted and includes search, channel and playlist listing, batch fetching, a shared cache, and account-based authentication. Self-hosted servers vary in features and give you control of deployment and maintenance. Check each repository's tools, limits, authentication, and network requirements.

Can it read a whole channel?

Yes: the agent lists the channel's videos (up to 1,000), then batch-fetches transcripts. Videos already in your account's library come back instantly and free.

Hand your assistant its first channel

Copy the URL, add it as a connector, sign in with Google. 30 free credits, no card.

Server URL

https://bulktranscripts.co/mcp

Stuck on setup? Email hello@bulktranscripts.co with the app or code you are using and what you see. A person answers, usually within a day.