Search & ResearchDocumentedScanned

youtube-full

Complete YouTube toolkit — transcripts, search, channels, playlists, and metadata all in one skill.

Share:

Installation

npx clawhub@latest install youtube-full

View the full skill documentation and source below.

Documentation

YouTube Full

Complete YouTube toolkit via [TranscriptAPI.com](). Everything in one skill.

Setup

If $TRANSCRIPT_API_KEY is not set, help the user create an account (100 free credits, no card):

Step 1 — Register: Ask user for their email, generate a secure password.

node ./scripts/tapi-auth.js register --email USER_EMAIL --password SECURE_PASS --json

→ OTP sent to email. Ask user: _"Check your email for a 6-digit verification code."_
⚠️ SAVE THE PASSWORD — you need it again in Step 2!

Step 2 — Verify: Once user provides the OTP (use SAME password from Step 1):

node ./scripts/tapi-auth.js verify --email USER_EMAIL --password SECURE_PASS --otp CODE --json

→ Returns api_key (starts with sk_).

Step 3 — Save: Store the key (auto-configures agent + shell):

node ./scripts/tapi-auth.js save-key --key API_KEY --json

→ Ready to use. Agent runtime picks up the key automatically.

Manual option: [transcriptapi.com/signup]() → Dashboard → API Keys.

Transcript — 1 credit

curl -s "
?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
ParamRequiredDefaultValues
video_urlyesYouTube URL or 11-char video ID
formatnojsonjson, text
include_timestampnotruetrue, false
send_metadatanofalsetrue, false
Response (format=json):
{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [{ "text": "...", "start": 18.0, "duration": 3.5 }],
  "metadata": { "title": "...", "author_name": "...", "author_url": "..." }
}

Search — 1 credit

# Videos
curl -s "" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

# Channels
curl -s "" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
ParamRequiredDefaultValidation
qyes1-200 chars
typenovideovideo, channel
limitno201-50

Channels

Resolve handle — FREE

curl -s "" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Response: {"channel_id": "UC...", "resolved_from": "@mkbhd"}

Latest 15 videos — FREE

curl -s "" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Requires channel_id matching ^UC[a-zA-Z0-9_-]{22}$. Returns exact viewCount and ISO published timestamps.

All channel videos — 1 credit/page

# First page (100 videos)
curl -s "" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

# Next pages
curl -s "" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Provide exactly one of channel_id or continuation. Response includes continuation_token and has_more.

Search within channel — 1 credit

curl -s "
?channel_id=UC_ID&q=QUERY&limit=30" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Playlists — 1 credit/page

# First page
curl -s "" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

# Next pages
curl -s "" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Valid prefixes: PL, UU, LL, FL, OL. Response includes playlist_info, results, continuation_token, has_more.

Credit Costs

EndpointCost
transcript1
search1
channel/resolvefree
channel/latestfree
channel/videos1/page
channel/search1
playlist/videos1/page

Validation Rules

FieldRule
channel_id^UC[a-zA-Z0-9_-]{22}$
playlist_idstarts with PL/UU/LL/FL/OL
q1-200 chars
limit1-50

Errors

CodeMeaningAction
401Bad API keyCheck key
402No creditstranscriptapi.com/billing
404Not foundResource doesn't exist or no captions
408TimeoutRetry once after 2s
422Validation errorCheck param format
429Rate limitedWait, respect Retry-After

Typical Workflows

Research workflow: search → pick videos → fetch transcripts

# 1. Search
curl -s "
?q=machine+learning+explained&limit=5" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
# 2. Transcript
curl -s "
?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Channel monitoring: resolve → latest (free) → transcript

# 1. Resolve handle (free)
curl -s "" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
# 2. Latest uploads (free)
curl -s "
?channel_id=UCBcRF18a7Qf58cCRy5xuWwQ" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
# 3. Transcript of latest
curl -s "
?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Free tier: 100 credits, 300 req/min. Starter ($5/mo): 1,000 credits.