YouTube Search
Search YouTube for videos, channels or playlists, or search inside one channel, via the BulkTranscripts API, then fetch transcripts of the results. Use when the user asks to find v…
pratie
@pratie
Install
$ openclaw skills install @pratie/bulktranscripts-youtube-searchYouTube search for agents
Search YouTube, then read the transcripts of what you find, using BulkTranscripts. Docs · OpenAPI spec · MCP server · Free API key
Base URL: https://bulktranscripts.co
All endpoints are plain GET returning JSON, and every one of them needs an API key — including the free endpoints. Send it as a Bearer token on every request:
curl -s "https://bulktranscripts.co/api/v1/..." \
-H "Authorization: Bearer $BULKTRANSCRIPTS_API_KEY"
If BULKTRANSCRIPTS_API_KEY is not set, ask the user for a key: they sign in
with Google at https://bulktranscripts.co/app?tab=mcp, open the Connect AI
tab, and hit Create key in the API keys card. It is free, includes 30
credits, and needs no card. Keys start with bt_ak_, are shown once, and up to
5 can be live per account. A license key from a credit-pack purchase works as a
Bearer token too.
Costs (check billing.remaining in every response)
- Transcript: 1 credit when first added to this account's library — repeat reads are FREE
- Search / channel videos / playlist videos: 1 credit each
channel/latestandaccount: always free- Failures (no captions, video unreachable) are auto-refunded, never charged
When a call returns HTTP 402 out_of_credits, tell the user their credits are
used up and link them to https://bulktranscripts.co/#pricing (one-time packs,
never expire). Credits follow the Google account, so topping up keeps the same
API key working.
Endpoints
Search YouTube (1 credit)
curl -s "https://bulktranscripts.co/api/v1/search?q=QUERY&limit=10" \
-H "Authorization: Bearer $BULKTRANSCRIPTS_API_KEY"
Add type=channel or type=playlist to search for channels/playlists instead
of videos.
Search inside one channel (1 credit)
curl -s "https://bulktranscripts.co/api/v1/channel/search?channel=@HANDLE&q=TOPIC&limit=10" \
-H "Authorization: Bearer $BULKTRANSCRIPTS_API_KEY"
Finds a creator's videos about a topic without listing the whole archive.
Get one transcript
curl -s "https://bulktranscripts.co/api/v1/transcript?video=VIDEO_URL_OR_ID" \
-H "Authorization: Bearer $BULKTRANSCRIPTS_API_KEY"
Params: video (watch URL, youtu.be, Shorts, bare 11-char id, or TikTok video
URL) · language (default en) · segments=0 to omit timestamps (smaller) ·
format=txt|md|srt|vtt|csv|ai to get a rendered file instead of JSON ·
fresh=1 to force re-extraction.
Response fields: title, channel, duration, upload_date, language,
source (manual_caption|auto_caption), cached, word_count, text,
paragraphs[] (silence-grouped — best for reading/chunking), segments[]
({text, start, duration}), billing.
Long videos produce long text. For summarization, prefer segments=0 and read
paragraphs.
Balance
curl -s "https://bulktranscripts.co/api/v1/account" \
-H "Authorization: Bearer $BULKTRANSCRIPTS_API_KEY"
Playbook
- Topic research → search (1 credit), pick the most relevant results by
title and channel, fetch only those transcripts, then compare what they say
and cite each
titleandurl.
Errors come as {"error": {"code", "message"}}. The codes you will actually
hit, and what to do about each:
no_transcript(404) — the video has no captions. Not charged. Skip it and carry on; in a batch this is normal, not a failure.resolution_failed(400) — a well-formed id or URL that could not be resolved (nonexistent, private, removed, or region-blocked). Handle it alongsideno_transcript: skip the video and carry on.missing_api_key(401) — no key was sent. Ask the user to create a key at https://bulktranscripts.co/app?tab=mcp and provide it, then setBULKTRANSCRIPTS_API_KEYand retry.invalid_api_key(401) — the key sent is not valid. Ask the user to check it or create a new one at https://bulktranscripts.co/app?tab=mcp.invalid_input(400) — thevideo/channel/playlistparameter is missing, not a YouTube/TikTok reference, or otherwise malformed. A caller bug, not a video problem.out_of_credits(402) — balance exhausted. Tell the user and link https://bulktranscripts.co/#pricing.rate_limited(429) — respect theRetry-Afterheader before retrying. Limits are per public IP: 120 requests/min overall, 30/min under/api/v1/(cache hits and/accountcount too), so pace bulk fetches at under 30/min.
Need everything in one skill (transcripts, search, channels, playlists, monitoring)? Use the full youtube-transcripts skill. Full reference: bulktranscripts.co/docs
Top skills in this category
Larry
@olliewazzaAutomate TikTok slideshow marketing for any app or product. Researches competitors, generates AI images, adds text overlays, posts via Postiz, tracks analyti...
ATXP
@emilioaccAccess ATXP paid API tools for web search, AI image generation, music creation, video generation, X/Twitter search, email, and agent account management. Use...
Agent Reach
@panniantongGive your AI agent eyes to see the entire internet. 7500+ GitHub stars. Search and read 14 platforms: Twitter/X, Reddit, YouTube, GitHub, Bilibili, XiaoHongS...
Antigravity Image Generator
@ipedraxGenerate images using the internal Google Antigravity API (Gemini 3 Pro Image). High quality, native generation without browser automation.
youtube-full
@therohitdasUse when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles, creator lookups, video summaries, quotes, translations, topic research, tutorials, talks, lectures, expert discussions, product reviews, how-to guides, new product announcements, first looks, or anything where video content is fresher or richer than text search. Covers transcripts, video/channel search, channel browsing, playlists, and within-channel search. Not for uploads, account management, or written-source-only research.