youtube-full
Complete YouTube toolkit — transcripts, search, channels, playlists, and metadata all in one skill.
Installation
npx clawhub@latest install youtube-fullView 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"
| Param | Required | Default | Values |
video_url | yes | — | YouTube URL or 11-char video ID |
format | no | json | json, text |
include_timestamp | no | true | true, false |
send_metadata | no | false | true, false |
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"
| Param | Required | Default | Validation |
q | yes | — | 1-200 chars |
type | no | video | video, channel |
limit | no | 20 | 1-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
| Endpoint | Cost |
| transcript | 1 |
| search | 1 |
| channel/resolve | free |
| channel/latest | free |
| channel/videos | 1/page |
| channel/search | 1 |
| playlist/videos | 1/page |
Validation Rules
| Field | Rule |
channel_id | ^UC[a-zA-Z0-9_-]{22}$ |
playlist_id | starts with PL/UU/LL/FL/OL |
q | 1-200 chars |
limit | 1-50 |
Errors
| Code | Meaning | Action |
| 401 | Bad API key | Check key |
| 402 | No credits | transcriptapi.com/billing |
| 404 | Not found | Resource doesn't exist or no captions |
| 408 | Timeout | Retry once after 2s |
| 422 | Validation error | Check param format |
| 429 | Rate limited | Wait, 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.