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. node ./scripts/tapi-auth.js register --email USER_EMAIL → OTP sent to email. Ask user: "Check your email for a 6-digit verification code." Step 2 — Verify: Once user provides the OTP: node ./scripts/tapi-auth.js verify --token TOKEN_FROM_STEP_1 --otp CODE API key saved to your shell profile and agent config. Ready to use. Manual option: transcriptapi.com/signup → Dashboard → API Keys. API Reference Full OpenAPI spec: transcriptapi.com/openapi.json — consult this for the latest parameters and schemas. Endpoint Reference All endpoints: https://transcriptapi.com/api/v2/youtube/... Channel endpoints accept channel — an @handle , channel URL, or UC... ID. Playlist endpoints accept playlist — a playlist URL or ID. Endpoint Method Cost /transcript?video_url=ID GET 1 /search?q=QUERY&type=video GET 1 /channel/resolve?input=@handle GET free /channel/latest?channel=@handle GET free /channel/videos?channel=@handle GET 1/page /channel/search?channel=@handle&q=Q GET 1 /playlist/videos?playlist=PL_ID GET 1/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=@TED" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY " Latest videos (free): curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY " Browse channel uploads (paginated): curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA" \ -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=PL_PLAYLIST_ID" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY " Parameter Validation Field Rule channel @handle , channel URL, or UC... ID playlist Playlist URL or ID ( PL / UU / LL / FL / OL prefix) q (search) 1-200 chars limit 1-50 continuation non-empty string Why Not Google's API? Google YouTube Data API TranscriptAPI Quota 10,000 units/day (100 searches) Credit-based, no daily cap Setup OAuth + API key + project Single API key Transcripts Not available Core feature Pricing $0.0015/unit overage $5/1000 credits Errors Code Meaning Action 401 Bad API key Check key 402 No credits transcriptapi.com/billing 404 Not found Resource doesn't exist 408 Timeout/retryable Retry once after 2s 422 Validation error Check param format 429 Rate limited Wait, respect Retry-After Free tier: 100 credits, 300 req/min. Starter ($5/mo): 1,000 credits.