โ† Back to Search & Research
Search & Research by @therohitdas

youtube-data

Access YouTube video data โ€” transcripts, metadata, channel

0
Source Code

YouTube Data

YouTube data access via TranscriptAPI.com โ€” lightweight alternative to Google's YouTube Data API.

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 ~/.openclaw/openclaw.json. See File Writes below for details. Existing file is backed up before modification.

Manual option: transcriptapi.com/signup โ†’ Dashboard โ†’ API Keys.

File Writes

The verify and save-key commands save the API key to ~/.openclaw/openclaw.json (sets skills.entries.transcriptapi.apiKey and enabled: true). Existing file is backed up to ~/.openclaw/openclaw.json.bak before modification.

To use the API key in terminal/CLI outside the agent, add to your shell profile manually: export TRANSCRIPT_API_KEY=<your-key>

API Reference

Full OpenAPI spec: transcriptapi.com/openapi.json โ€” consult this for the latest parameters and schemas.

Video Data (transcript + metadata) โ€” 1 credit

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

Response:

{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [
    { "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 }
  ],
  "metadata": {
    "title": "Rick Astley - Never Gonna Give You Up",
    "author_name": "Rick Astley",
    "author_url": "https://www.youtube.com/@RickAstley",
    "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
  }
}

Search Data โ€” 1 credit

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

Video result fields: videoId, title, channelId, channelTitle, channelHandle, channelVerified, lengthText, viewCountText, publishedTimeText, hasCaptions, thumbnails

Channel result fields (type=channel): channelId, title, handle, url, description, subscriberCount, verified, rssUrl, thumbnails

Channel Data

Channel endpoints accept channel โ€” an @handle, channel URL, or UC... ID. No need to resolve first.

Resolve handle to ID (free):

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

Returns: {"channel_id": "UCsT0YIqwnpJCM-mx7-gSA4Q", "resolved_from": "@TED"}

Latest 15 videos with exact stats (free):

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

Returns: channel info, results array with videoId, title, published (ISO), viewCount (exact number), description, thumbnail

All channel videos (paginated, 1 credit/page):

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

Returns 100 videos per page + continuation_token for pagination.

Search within channel (1 credit):

curl -s "https://transcriptapi.com/api/v2/youtube/channel/search\
?channel=@TED&q=QUERY&limit=30" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Playlist Data โ€” 1 credit/page

Accepts playlist โ€” a YouTube playlist URL or playlist ID.

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

Returns: results (videos), playlist_info (title, numVideos, ownerName, viewCount), continuation_token, has_more

Credit Costs

Endpoint Cost Data returned
transcript 1 Full transcript + metadata
search 1 Video/channel details
channel/resolve free Channel ID mapping
channel/latest free 15 videos + exact stats
channel/videos 1/page 100 videos per page
channel/search 1 Videos matching query
playlist/videos 1/page 100 videos per page

Errors

Code Action
402 No credits โ€” transcriptapi.com/billing
404 Not found
408 Timeout โ€” retry once
422 Invalid param format

Free tier: 100 credits, 300 req/min.