(24 chars total) |\n\n**Response:**\n\n```json\n{\n \"channel\": {\n \"channelId\": \"UCBcRF18a7Qf58cCRy5xuWwQ\",\n \"title\": \"MKBHD\",\n \"author\": \"MKBHD\",\n \"url\": \"https://www.youtube.com/channel/UCBcRF18a7Qf58cCRy5xuWwQ\",\n \"published\": \"2008-03-21T00:00:00Z\"\n },\n \"results\": [\n {\n \"videoId\": \"abc123xyz00\",\n \"title\": \"Latest Video Title\",\n \"channelId\": \"UCBcRF18a7Qf58cCRy5xuWwQ\",\n \"author\": \"MKBHD\",\n \"published\": \"2026-01-30T16:00:00Z\",\n \"updated\": \"2026-01-31T02:00:00Z\",\n \"link\": \"https://www.youtube.com/watch?v=abc123xyz00\",\n \"description\": \"Full video description...\",\n \"thumbnail\": { \"url\": \"https://i1.ytimg.com/vi/.../hqdefault.jpg\" },\n \"viewCount\": \"2287630\",\n \"starRating\": {\n \"average\": \"4.92\",\n \"count\": \"15000\",\n \"min\": \"1\",\n \"max\": \"5\"\n }\n }\n ],\n \"result_count\": 15\n}\n```\n\nGreat for monitoring channels — free and gives exact view counts + ISO timestamps.\n\n## GET /api/v2/youtube/channel/videos — 1 credit/page\n\nPaginated list of ALL channel uploads (100 per page).\n\n```bash\n# First page\ncurl -s \"https://transcriptapi.com/api/v2/youtube/channel/videos?channel_id=UC_CHANNEL_ID\" \\\n -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n\n# Next pages\ncurl -s \"https://transcriptapi.com/api/v2/youtube/channel/videos?continuation=TOKEN\" \\\n -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param | Required | Validation |\n| -------------- | ----------- | ------------------------------------ |\n| `channel_id` | conditional | `^UC[a-zA-Z0-9_-]{22} youtube-channels · Skills-SI 市场 (first page) |\n| `continuation` | conditional | non-empty (next pages) |\n\nProvide exactly one of `channel_id` or `continuation`, not both.\n\n**Response:**\n\n```json\n{\n \"results\": [{\n \"videoId\": \"abc123xyz00\",\n \"title\": \"Video Title\",\n \"channelId\": \"UCBcRF18a7Qf58cCRy5xuWwQ\",\n \"channelTitle\": \"MKBHD\",\n \"channelHandle\": \"@mkbhd\",\n \"lengthText\": \"15:22\",\n \"viewCountText\": \"3.2M views\",\n \"thumbnails\": [...],\n \"index\": \"0\"\n }],\n \"playlist_info\": {\"title\": \"Uploads from MKBHD\", \"numVideos\": \"1893\", \"ownerName\": \"MKBHD\"},\n \"continuation_token\": \"4qmFsgKlARIYVVV1...\",\n \"has_more\": true\n}\n```\n\nKeep calling with `continuation` until `has_more: false`.\n\n## GET /api/v2/youtube/channel/search — 1 credit\n\nSearch within a specific channel.\n\n```bash\ncurl -s \"https://transcriptapi.com/api/v2/youtube/channel/search\\\n?channel_id=UC_CHANNEL_ID&q=iphone+review&limit=30\" \\\n -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param | Required | Validation |\n| ------------ | -------- | ----------------------- |\n| `channel_id` | yes | `^UC[a-zA-Z0-9_-]{22} youtube-channels · Skills-SI 市场 |\n| `q` | yes | 1-200 chars |\n| `limit` | no | 1-50 (default 30) |\n\n## Typical workflow\n\n```bash\n# 1. Resolve handle to ID (free)\ncurl -s \"https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@mkbhd\" \\\n -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n\n# 2. Check latest uploads (free)\ncurl -s \"https://transcriptapi.com/api/v2/youtube/channel/latest?channel_id=UC_CHANNEL_ID\" \\\n -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n\n# 3. Get transcript of recent video\ncurl -s \"https://transcriptapi.com/api/v2/youtube/transcript\\\n?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true\" \\\n -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n## Errors\n\n| Code | Action |\n| ---- | ------------------------------------------------------------------- |\n| 400 | Invalid param combination (both or neither channel_id/continuation) |\n| 402 | No credits — transcriptapi.com/billing |\n| 404 | Channel not found |\n| 408 | Timeout — retry once |\n| 422 | Invalid channel_id format |\n\nFree tier: 100 credits, 300 req/min. Free endpoints (resolve, latest) require auth but don't consume credits.\n","licenseDocuments":[]}}
界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

youtube-channels

youtube-channels

【开发与工程】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 MKBHD", "show me their channel", "list channel videos", "browse channel uploads".

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: youtube-channels description: 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 MKBHD", "show me their channel", "list channel videos", "browse channel uploads". homepage: https://transcriptapi.com metadata: { "moltbot": { "emoji": "📡", "requires": { "env": ["TRANSCRIPT_API_KEY"] }, "primaryEnv": "TRANSCRIPT_API_KEY", }, }

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

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=@mkbhd" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
ParamRequiredValidation
inputyes1-200 chars — @handle, URL, or UC... ID

Response:

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

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_id=UC_CHANNEL_ID" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
ParamRequiredValidation
channel_idyes^UC[a-zA-Z0-9_-]{22}$ (24 chars total)

Response:

{
  "channel": {
    "channelId": "UCBcRF18a7Qf58cCRy5xuWwQ",
    "title": "MKBHD",
    "author": "MKBHD",
    "url": "https://www.youtube.com/channel/UCBcRF18a7Qf58cCRy5xuWwQ",
    "published": "2008-03-21T00:00:00Z"
  },
  "results": [
    {
      "videoId": "abc123xyz00",
      "title": "Latest Video Title",
      "channelId": "UCBcRF18a7Qf58cCRy5xuWwQ",
      "author": "MKBHD",
      "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_id=UC_CHANNEL_ID" \
  -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
channel_idconditional^UC[a-zA-Z0-9_-]{22}$ (first page)
continuationconditionalnon-empty (next pages)

Provide exactly one of channel_id or continuation, not both.

Response:

{
  "results": [{
    "videoId": "abc123xyz00",
    "title": "Video Title",
    "channelId": "UCBcRF18a7Qf58cCRy5xuWwQ",
    "channelTitle": "MKBHD",
    "channelHandle": "@mkbhd",
    "lengthText": "15:22",
    "viewCountText": "3.2M views",
    "thumbnails": [...],
    "index": "0"
  }],
  "playlist_info": {"title": "Uploads from MKBHD", "numVideos": "1893", "ownerName": "MKBHD"},
  "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_id=UC_CHANNEL_ID&q=iphone+review&limit=30" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
ParamRequiredValidation
channel_idyes^UC[a-zA-Z0-9_-]{22}$
qyes1-200 chars
limitno1-50 (default 30)

Typical workflow

# 1. Resolve handle to ID (free)
curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@mkbhd" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

# 2. Check latest uploads (free)
curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel_id=UC_CHANNEL_ID" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

# 3. 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_id/continuation)
402No credits — transcriptapi.com/billing
404Channel not found
408Timeout — retry once
422Invalid channel_id format

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

我的收藏