BulkTranscripts YouTube
Server Details
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents.
- Status
- Healthy
- Uptime
- 95.5% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 10 tools
Most tools target distinct actions: single vs batch transcript fetch (get_transcript/get_transcripts), within-channel vs global search (search_channel/search_youtube), and bulk orchestration (start_bulk_extract/get_bulk_status/list_bulk_results) are all clearly separable. The main overlap is get_channel_videos vs get_latest_videos, which both return a channel's videos, though the descriptions clearly distinguish full paid listing from free newest-15 RSS monitoring.
All names are snake_case with a consistent verb_noun pattern: get_/list_/search_/start_ prefixes applied uniformly. No style mixing or vague verbs, so the surface reads predictably.
10 tools is well within the ideal 3-15 range and each maps to a distinct capability (discovery, single/batch/bulk extraction, job monitoring). No redundant or filler tools inflate the surface.
The core workflow—discover videos, fetch transcripts (single, batch, bulk), and monitor results—is fully covered with lifecycle status and pagination. Gaps remain: there is no tool to browse the account's saved transcript library (central to the free-repeat model) and no way to stop a running bulk job despite a 'stopped' status being referenced.
Available Tools
10 toolsget_bulk_statusCheck a bulk jobARead-onlyIdempotentInspect
Progress of a bulk extraction job: status (running, completed, stopped, failed), total, completed, failed, skipped (no captions), quota (not attempted for lack of credits), remaining, and check_again_in_seconds, the suggested wait before the next check (0 means the job is finished). Free.
Inputs: run_id (required). Returns: error, phase, quota, total, +13 more
get_channel_videosList a channel's videosARead-onlyIdempotentInspect
List the videos of a YouTube channel (id, title, duration, URL) without fetching transcripts. Accepts @handle, channel URL, or UC… channel id. Costs 1 credit.
Inputs: channel (required), limit. Returns: count, title, billing, channel, +2 more
get_latest_videosTrack new uploads (free)ARead-onlyIdempotentInspect
Get a channel's newest uploads (up to 15) with publish dates, from YouTube's RSS feed (or a lightweight listing when the feed is unavailable). Always free — no credit charged — so it is ideal for monitoring channels, daily recaps, and 'did they post this week?' checks. Accepts @handle, URL, or UC… id.
Inputs: channel (required). Returns: count, source, channel, results, +2 more
get_playlist_videosList a playlist's videosARead-onlyIdempotentInspect
List every video in a YouTube playlist, in playlist order (courses and series keep their sequence). Accepts a playlist URL or bare playlist id (13, 18, 26 or 34 characters — all valid). Public and unlisted playlists only: YouTube reports a private playlist as nonexistent (error playlist_private) until its owner sets Visibility to Unlisted. Costs 1 credit.
Inputs: playlist (required), limit. Returns: count, title, billing, results, +2 more
get_transcriptGet YouTube video transcriptAInspect
Fetch the full transcript of one YouTube video as clean text with metadata (title, channel, duration, upload date, language). Accepts a watch URL, youtu.be link, Shorts URL, or bare 11-character video id. Costs 1 credit the first time it is added to this account's library; repeat reads are free. Set include_segments to true only when per-line timestamps are needed (much larger output).
Inputs: video (required), fresh, language, include_segments. Returns: url, text, title, cached, +11 more
get_transcriptsGet many transcripts at onceAIdempotentInspect
Fetch transcripts for up to 20 videos in one call — pass an array of YouTube URLs or ids. Videos are fetched in parallel and the call returns within about 40 seconds; any video still being fetched at that point is listed in failed with code still_fetching, is not charged, and keeps fetching in the background, so a repeat call with those ids 15-30 seconds later returns them instantly. Each new library addition costs 1 credit; repeats from this account's library are free. Videos without captions are reported per-item and do not fail the batch. One call counts as one request against the rate limit however many videos it holds. If the balance runs out, completed items are returned with partial=true and an out_of_credits stopped block.
Inputs: videos (required), language. Returns: failed, billing, partial, stopped, +3 more
list_bulk_resultsList a bulk job's resultsARead-onlyIdempotentInspect
One page of per-video outcomes for a bulk job: video id, title, channel, duration, word count and status (ok, cached, or error with a code). Never includes transcript text; every ok or cached video is in the library and free to read again. next_cursor from one page continues to the next. Free.
Inputs: run_id (required), limit, cursor. Returns: note, items, total, run_id, +2 more
search_channelSearch inside a channelARead-onlyIdempotentInspect
Search within one channel's uploads to find its videos on a topic — great for researching what a creator has said about something without listing the whole archive. Accepts @handle, channel URL, or UC… id. Costs 1 credit.
Inputs: query (required), channel (required), limit. Returns: count, query, billing, channel, +2 more
search_youtubeSearch YouTubeARead-onlyIdempotentInspect
Search YouTube by keyword for videos, channels, or playlists (set type). Returns titles, ids, and URLs — useful for research, discovery, and finding videos to transcribe. Costs 1 credit per search.
Inputs: query (required), type, limit. Returns: type, count, query, billing, +1 more
start_bulk_extractStart a bulk extraction jobAInspect
Extract every transcript of a YouTube channel, playlist or video list in the background. Returns immediately with a run_id; the server discovers the videos (free), fetches each transcript into this account's library (1 credit per new transcript, cache hits and repeats free, failures never charged) and keeps going after this call returns. Transcripts it adds are free to read again from the library. Up to 1,000 videos per job, 2 jobs per account at a time; suited to anything larger than about 20 videos.
Inputs: url (required), content, language, start_at, +1 more. Returns: error, phase, quota, total, +13 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
YouTube for AI agents: transcripts, comments, video stats, channel monitor, Shorts captions.
YouTube transcripts, search, and channel and playlist listings for any AI app. Hosted.
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
YouTube transcripts, search, channels, playlists and bulk transcript jobs for AI agents. 14 tools.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides AI agents with token-optimized access to YouTube data, including video details, transcripts, channel statistics, trending videos, and search.2,236 npmMIT
- AlicenseAqualityCmaintenanceConnect AI assistants to YouTube: search, transcripts, metadata, and more.19518 npm6MIT

fetchworks-mcpofficial
AlicenseAqualityCmaintenanceEnables AI agents to retrieve YouTube transcripts from individual videos, channels, and search results, supporting multiple output formats such as plain text, SRT, and VTT.345 npmMIT- AlicenseNot gradedqualityBmaintenanceEnables AI clients to pull full transcripts from YouTube videos, search videos and channels, browse a channel's complete upload history, search within a single channel, and extract every video in a playlist through one hosted remote endpoint. It supports API-key or OAuth 2.1 sign-in with no local installation, returning metadata and paginated results with stable error codes.14MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.