AGENT SKILL

youtube-data

Access YouTube video data — transcripts, metadata, channel info, search, and playlists. A lightweight alternative to Google's YouTube Data API with no quota limits. Use when the user needs structured data from YouTube videos, channels, or playlists without dealing with Google API setup, OAuth, or daily quotas.

License 许可
MIT
最近更新
2026-04-05
Stars
★ 7
Forks
1

01 前言 Front Matter

name
youtube-data
homepage
https://transcriptapi.com
metadata
{ "moltbot": { "emoji": "?", "requires": { "env": [ "TRANSCRIPT_API_KEY" ] }, "primaryEnv": "TRANSCRIPT_API_KEY" } }
description
Access YouTube video data — transcripts, metadata, channel info, search, and playlists. A lightweight alternative to Google's YouTube Data API with no quota limits. Use when the user needs structured data from YouTube videos, channels, or playlists without dealing with Google API setup, OAuth, or daily quotas.

02 资源文件 2

03 SKILL.md 正文

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, 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.

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

Resolve handle to ID (free):

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

Returns: {"channel_id": "UCBcRF18a7Qf58cCRy5xuWwQ", "resolved_from": "@mkbhd"}

Latest 15 videos with exact stats (free):

curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel_id=UC_ID" \
  -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_id=UC_ID" \
  -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_id=UC_ID&q=QUERY&limit=30" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Playlist Data — 1 credit/page

curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist_id=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.

04 同仓库更多 Skills