youtube-api

Review·Scanned 2/18/2026

This skill provides YouTube data access via https://transcriptapi.com without a Google API key. It instructs running node ./scripts/tapi-auth.js, writes the TRANSCRIPT_API_KEY into agent config (~/.clawdbot/moltbot.json), shell rc files (e.g., ~/.zshenv, ~/.profile) and ~/.transcriptapi.

from clawhub.ai·vf6683b3·28.2 KB·0 installs
Scanned from 1.3.2 at f6683b3 · Transparency log ↗
$ vett add clawhub.ai/therohitdas/youtube-apiReview findings below

YouTube API

YouTube data access via TranscriptAPI.com — no Google API quota needed.

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.

Endpoint Reference

All endpoints: https://transcriptapi.com/api/v2/youtube/...

EndpointMethodCost
/transcript?video_url=IDGET1
/search?q=QUERY&type=videoGET1
/channel/resolve?input=@handleGETfree
/channel/latest?channel_id=UC_IDGETfree
/channel/videos?channel_id=UC_IDGET1/page
/channel/search?channel_id=UC_ID&q=QGET1
/playlist/videos?playlist_id=PL_IDGET1/page

Quick Examples

Search videos:

curl -s "https://transcriptapi.com/api/v2/youtube/search\
?q=python+tutorial&type=video&limit=10" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Get transcript:

curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=dQw4w9WgXcQ&format=text&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Resolve channel handle (free):

curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@mkbhd" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Latest videos (free):

curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel_id=UC_CHANNEL_ID" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Browse channel uploads (paginated):

curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?channel_id=UC_CHANNEL_ID" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
# Use continuation token from response for next pages

Browse playlist (paginated):

curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist_id=PL_PLAYLIST_ID" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Parameter Validation

FieldRule
channel_id^UC[a-zA-Z0-9_-]{22}$ (24 chars total)
playlist_idstarts with PL, UU, LL, FL, or OL
q (search)1-200 chars
limit1-50
continuationnon-empty string

Why Not Google's API?

Google YouTube Data APITranscriptAPI
Quota10,000 units/day (100 searches)Credit-based, no daily cap
SetupOAuth + API key + projectSingle API key
TranscriptsNot availableCore feature
Pricing$0.0015/unit overage$5/1000 credits

Errors

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

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