Youtube-skills youtube-full

Complete YouTube toolkit — transcripts, search, channels, playlists, and metadata all in one skill. Use when you need comprehensive YouTube access, want to search and then get transcripts, browse channel content, work with playlists, or need the full suite of YouTube data endpoints. The all-in-one YouTube skill for agents.

install
source · Clone the upstream repo
git clone https://github.com/ZeroPointRepo/youtube-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ZeroPointRepo/youtube-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/youtube-full" ~/.claude/skills/zeropointrepo-youtube-skills-youtube-full-d7d4b8 && rm -rf "$T"
manifest: skills/youtube-full/SKILL.md
source content

YouTube Full

Complete YouTube toolkit via TranscriptAPI.com. Everything in one skill.

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.

Transcript — 1 credit

curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
ParamRequiredDefaultValues
video_url
yesYouTube URL or 11-char video ID
format
no
json
json
,
text
include_timestamp
no
true
true
,
false
send_metadata
no
false
true
,
false

Response (

format=json
):

{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [{ "text": "...", "start": 18.0, "duration": 3.5 }],
  "metadata": { "title": "...", "author_name": "...", "author_url": "..." }
}

Search — 1 credit

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

# Channels
curl -s "https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=channel&limit=10" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
ParamRequiredDefaultValidation
q
yes1-200 chars
type
no
video
video
,
channel
limit
no
20
1-50

Channels

All channel endpoints accept

channel
— an
@handle
, channel URL, or
UC...
channel ID. No need to resolve first.

Resolve handle — FREE

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

Response:

{"channel_id": "UC...", "resolved_from": "@TED"}

Latest 15 videos — FREE

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

Returns exact

viewCount
and ISO
published
timestamps.

All channel videos — 1 credit/page

# First page (100 videos)
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"

Provide exactly one of

channel
or
continuation
. Response includes
continuation_token
and
has_more
.

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"

Playlists — 1 credit/page

Accepts

playlist
— a YouTube playlist URL or playlist ID.

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

# Next pages
curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?continuation=TOKEN" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Valid ID prefixes:

PL
,
UU
,
LL
,
FL
,
OL
. Response includes
playlist_info
,
results
,
continuation_token
,
has_more
.

Credit Costs

EndpointCost
transcript1
search1
channel/resolvefree
channel/latestfree
channel/videos1/page
channel/search1
playlist/videos1/page

Validation Rules

FieldRule
channel
@handle
, channel URL, or
UC...
ID
playlist
Playlist URL or ID (
PL
/
UU
/
LL
/
FL
/
OL
prefix)
q
1-200 chars
limit
1-50

Errors

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

Typical Workflows

Research workflow: search → pick videos → fetch transcripts

# 1. Search
curl -s "https://transcriptapi.com/api/v2/youtube/search\
?q=machine+learning+explained&limit=5" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
# 2. Transcript
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"

Channel monitoring: latest (free) → transcript

# 1. 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. Transcript of latest
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"

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