YouTube Channels YouTube channel tools via TranscriptAPI.com . 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. All channel endpoints accept flexible input — @handle , channel URL, or UC... channel ID. No need to resolve first. GET /api/v2/youtube/channel/resolve — FREE Convert @handle, URL, or UC... ID to canonical channel ID. curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY " Param Required Validation input yes 1-200 chars — @handle, URL, or UC... ID Response: { "channel_id" : "UCsT0YIqwnpJCM-mx7-gSA4Q" , "resolved_from" : "@TED" } If input is already UC[a-zA-Z0-9_-]{22} , returns immediately. GET /api/v2/youtube/channel/latest — FREE Latest 15 videos via RSS with exact stats. curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY " Param Required Validation channel yes @handle , channel URL, or UC... ID Response: { "channel" : { "channelId" : "UCsT0YIqwnpJCM-mx7-gSA4Q" , "title" : "TED" , "author" : "TED" , "url" : "https://www.youtube.com/channel/UCsT0YIqwnpJCM-mx7-gSA4Q" , "published" : "2006-04-17T00:00:00Z" } , "results" : [ { "videoId" : "abc123xyz00" , "title" : "Latest Video Title" , "channelId" : "UCsT0YIqwnpJCM-mx7-gSA4Q" , "author" : "TED" , "published" : "2026-01-30T16:00:00Z" , "updated" : "2026-01-31T02:00:00Z" , "link" : "https://www.youtube.com/watch?v=abc123xyz00" , "description" : "Full video description..." , "thumbnail" : { "url" : "https://i1.ytimg.com/vi/.../hqdefault.jpg" } , "viewCount" : "2287630" , "starRating" : { "average" : "4.92" , "count" : "15000" , "min" : "1" , "max" : "5" } } ] , "result_count" : 15 } Great for monitoring channels — free and gives exact view counts + ISO timestamps. GET /api/v2/youtube/channel/videos — 1 credit/page Paginated list of ALL channel uploads (100 per page).
First page
curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY "
Next pages
curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?continuation=TOKEN" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY " Param Required Validation channel conditional @handle , channel URL, or UC... ID continuation conditional non-empty (next pages) Provide exactly one of channel or continuation , not both. Response: { "results" : [ { "videoId" : "abc123xyz00" , "title" : "Video Title" , "channelId" : "UCsT0YIqwnpJCM-mx7-gSA4Q" , "channelTitle" : "TED" , "channelHandle" : "@TED" , "lengthText" : "15:22" , "viewCountText" : "3.2M views" , "thumbnails" : [ ... ] , "index" : "0" } ] , "playlist_info" : { "title" : "Uploads from TED" , "numVideos" : "5000" , "ownerName" : "TED" } , "continuation_token" : "4qmFsgKlARIYVVV1..." , "has_more" : true } Keep calling with continuation until has_more: false . GET /api/v2/youtube/channel/search — 1 credit Search within a specific channel. curl -s "https://transcriptapi.com/api/v2/youtube/channel/search\ ?channel=@TED&q=climate+change&limit=30" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY " Param Required Validation channel yes @handle , channel URL, or UC... ID q yes 1-200 chars limit no 1-50 (default 30) Typical workflow
1. Check latest uploads (free — pass @handle directly)
curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY "
2. Get transcript of recent video
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\ ?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY " Errors Code Action 400 Invalid param combination (both or neither channel/continuation) 402 No credits — transcriptapi.com/billing 404 Channel not found 408 Timeout — retry once 422 Invalid channel identifier Free tier: 100 credits, 300 req/min. Free endpoints (resolve, latest) require auth but don't consume credits.