Get the FREE Ultimate OpenClaw Setup Guide →

youtube-channels

Scanned
npx machina-cli add skill ZeroPointRepo/youtube-skills/youtube-channels --openclaw
Files (1)
SKILL.md
6.3 KB

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"
ParamRequiredValidation
inputyes1-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"
ParamRequiredValidation
channelyes@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"
ParamRequiredValidation
channelconditional@handle, channel URL, or UC... ID
continuationconditionalnon-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"
ParamRequiredValidation
channelyes@handle, channel URL, or UC... ID
qyes1-200 chars
limitno1-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

CodeAction
400Invalid param combination (both or neither channel/continuation)
402No credits — transcriptapi.com/billing
404Channel not found
408Timeout — retry once
422Invalid channel identifier

Free tier: 100 credits, 300 req/min. Free endpoints (resolve, latest) require auth but don't consume credits.

Source

git clone https://github.com/ZeroPointRepo/youtube-skills/blob/main/skills/youtube-channels/SKILL.mdView on GitHub

Overview

Works with YouTube channels via TranscriptAPI.com to resolve handles, browse uploads, and fetch latest videos. All channel endpoints accept flexible input — @handle, URL, or UC... IDs, so you can work with a channel even if you only have a handle or URL.

How This Skill Works

Use the channel/resolve endpoint when you need a canonical channel_id, but you can also pass @handle, URL, or UC... IDs directly to most endpoints. Retrieve the latest videos with channel/latest (15 results) or list all uploads with channel/videos using pagination tokens. All requests require a Bearer API key.

When to Use It

  • Someone asks for a specific channel's activity
  • See the latest uploads from a channel like TED
  • List all videos uploaded to a channel
  • Monitor channel activity over time
  • Work with a channel when you only have a handle or URL

Quick Start

  1. Step 1: Resolve the channel input (handle, URL, or UC... ID) to a canonical channel_id using /api/v2/youtube/channel/resolve.
  2. Step 2: Fetch the latest videos with /api/v2/youtube/channel/latest?channel=...
  3. Step 3: If more videos are needed, paginate with /api/v2/youtube/channel/videos?continuation=TOKEN

Best Practices

  • Resolve first when you only have a handle or URL to ensure a canonical channel_id
  • Use channel/latest for a quick snapshot of recent activity (15 videos with stats)
  • Use channel/videos with continuation tokens for a full uploads list
  • Prefer channel_id in integrations to avoid handle changes
  • Cache results for frequent channels to reduce API calls and respect rate limits

Example Use Cases

  • What has TED posted lately?
  • Show me NASA's channel videos
  • List all videos on the TED channel
  • Browse channel uploads for https://www.youtube.com/@TED
  • Find the latest video from the TED channel

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers