360 Secure SkillHub
360 安全技能中心

youtube-search

通过 BulkTranscripts 的 HTTP 接口检索 YouTube 视频、频道与播放列表,支持在单个频道内按主题搜索,并可拉取指定视频的字幕文本与分段结构,用于主题调研与内容比对。调用需 API Key,按积分计费。

pratie
pratie
热度 30.82
最近更新 2026-09-22 01:29:31
分类:搜索依赖:第三方 API / 代码执行应用场景:研究 / 摘要总结 / 社交媒体

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add pratie/youtube-search
Metadata
name
youtube-search
description
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 videos about a topic, research what YouTube says about something, or locate a creator's videos on a subject. Requires a free BulkTranscripts API key in BULKTRANSCRIPTS_API_KEY, created at https://bulktranscripts.co/app?tab=mcp (Google sign-in, 30 free credits, no card).
license
Proprietary API; this skill file is freely redistributable.

YouTube 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 MCP & API 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/latest and account: 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 title and url.

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 alongside no_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 set BULKTRANSCRIPTS_API_KEY and 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) — the video / channel / playlist parameter 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 the Retry-After header before retrying. Limits are per public IP: 120 requests/min overall, 30/min under /api/v1/ (cache hits and /account count 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