v1.4.1

Youtube Channels

therohitdas therohitdas ← All skills

Work with YouTube channels — resolve handles to IDs, browse uploads, get latest videos, search within channels. Use when the user asks about a specific channel, wants to see recent uploads, or says "what has X posted lately", "latest from TED", "show me their channel", "list channel videos", "browse channel uploads".

Downloads
1.2k
Stars
0
Versions
12
Updated
2026-02-24

Install

npx clawhub@latest install youtube-channels

Documentation

YouTube Channels

YouTube channel tools via [TranscriptAPI.com](https://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 ~/.openclaw/openclaw.json. See File Writes below for details. Existing file is backed up before modification.

Manual option: [transcriptapi.com/signup](https://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](https://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.

Launch an agent with Youtube Channels on Termo.