[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PXTHX4HJ3R5609P040F4AX":3,"skill-same:01M6PXTHX4HJ3R5609P040F4AX":83},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6PXTHX4HJ3R5609P040F4AX","transcriptapi",null,"Full TranscriptAPI toolkit — fetch YouTube transcripts, search videos and channels, browse channel uploads, get latest videos, and explore playlists. Use when the user wants to work with YouTube content programmatically, get transcripts for summarization or analysis, find videos, or monitor channels. Triggers on YouTube URLs, \"transcript\", \"transcriptapi\", \"video summary\", \"what did they say\", \"find videos about\", \"search youtube\".","Kernel8901\u002Fai-agent-skills-classification","Kernel8901","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F72647553?v=4","01M6KV388J2H5PNC8D8P940BJD","01M6KV38CS5B3AY63RKZB410YM",7,"MIT","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F媒体与流媒体\u002Ftranscriptapi\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"use","for","with","channels","triggers","get","uploads","youtube content","say","monitor","fetch","explore","browse","Video","api","analysis","search","transcript","toolkit","2026-11-10 10:12:30",false,"---\nname: transcriptapi\ndescription: Full TranscriptAPI toolkit — fetch YouTube transcripts, search videos and channels, browse channel uploads, get latest videos, and explore playlists. Use when the user wants to work with YouTube content programmatically, get transcripts for summarization or analysis, find videos, or monitor channels. Triggers on YouTube URLs, \"transcript\", \"transcriptapi\", \"video summary\", \"what did they say\", \"find videos about\", \"search youtube\".\nhomepage: https:\u002F\u002Ftranscriptapi.com\nmetadata:\n  {\n    \"moltbot\":\n      {\n        \"emoji\": \"?\",\n        \"requires\": { \"env\": [\"TRANSCRIPT_API_KEY\"] },\n        \"primaryEnv\": \"TRANSCRIPT_API_KEY\",\n      },\n  }\n---\n\n# TranscriptAPI\n\nFull YouTube data toolkit via [TranscriptAPI.com](https:\u002F\u002Ftranscriptapi.com). Transcripts, search, channels, playlists — one API key.\n\n## Setup\n\nIf `$TRANSCRIPT_API_KEY` is not set, help the user create an account (100 free credits, no card):\n\n**Step 1 — Register:** Ask user for their email, generate a secure password.\n\n```bash\nnode .\u002Fscripts\u002Ftapi-auth.js register --email USER_EMAIL --password SECURE_PASS --json\n```\n\n→ OTP sent to email. Ask user: _\"Check your email for a 6-digit verification code.\"_\n⚠️ **SAVE THE PASSWORD** — you need it again in Step 2!\n\n**Step 2 — Verify:** Once user provides the OTP (use SAME password from Step 1):\n\n```bash\nnode .\u002Fscripts\u002Ftapi-auth.js verify --email USER_EMAIL --password SECURE_PASS --otp CODE --json\n```\n\n→ Returns `api_key` (starts with `sk_`).\n\n**Step 3 — Save:** Store the key (auto-configures agent + shell):\n\n```bash\nnode .\u002Fscripts\u002Ftapi-auth.js save-key --key API_KEY --json\n```\n\n→ Ready to use. Agent runtime picks up the key automatically.\n\nManual option: [transcriptapi.com\u002Fsignup](https:\u002F\u002Ftranscriptapi.com\u002Fsignup) → Dashboard → API Keys.\n\n## Auth\n\nAll requests: `-H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"`\n\n## Endpoints\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Ftranscript — 1 credit\n\n```bash\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Ftranscript\\\n?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param               | Required | Default | Validation                      |\n| ------------------- | -------- | ------- | ------------------------------- |\n| `video_url`         | yes      | —       | YouTube URL or 11-char video ID |\n| `format`            | no       | `json`  | `json` or `text`                |\n| `include_timestamp` | no       | `true`  | `true` or `false`               |\n| `send_metadata`     | no       | `false` | `true` or `false`               |\n\nAccepts: `https:\u002F\u002Fyoutube.com\u002Fwatch?v=ID`, `https:\u002F\u002Fyoutu.be\u002FID`, `youtube.com\u002Fshorts\u002FID`, or bare `ID`.\n\n**Response** (`format=json`):\n\n```json\n{\n  \"video_id\": \"dQw4w9WgXcQ\",\n  \"language\": \"en\",\n  \"transcript\": [\n    { \"text\": \"We're no strangers...\", \"start\": 18.0, \"duration\": 3.5 }\n  ],\n  \"metadata\": { \"title\": \"...\", \"author_name\": \"...\", \"author_url\": \"...\" }\n}\n```\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fsearch — 1 credit\n\n```bash\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fsearch?q=QUERY&type=video&limit=20\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param   | Required | Default | Validation            |\n| ------- | -------- | ------- | --------------------- |\n| `q`     | yes      | —       | 1-200 chars (trimmed) |\n| `type`  | no       | `video` | `video` or `channel`  |\n| `limit` | no       | `20`    | 1-50                  |\n\n**Response** (`type=video`):\n\n```json\n{\n  \"results\": [\n    {\n      \"type\": \"video\",\n      \"videoId\": \"dQw4w9WgXcQ\",\n      \"title\": \"Rick Astley - Never Gonna Give You Up\",\n      \"channelId\": \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n      \"channelTitle\": \"Rick Astley\",\n      \"channelHandle\": \"@RickAstley\",\n      \"channelVerified\": true,\n      \"lengthText\": \"3:33\",\n      \"viewCountText\": \"1.5B views\",\n      \"publishedTimeText\": \"14 years ago\",\n      \"hasCaptions\": true,\n      \"thumbnails\": [{ \"url\": \"...\", \"width\": 120, \"height\": 90 }]\n    }\n  ],\n  \"result_count\": 20\n}\n```\n\n**Response** (`type=channel`):\n\n```json\n{\n  \"results\": [\n    {\n      \"type\": \"channel\",\n      \"channelId\": \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n      \"title\": \"Rick Astley\",\n      \"handle\": \"@RickAstley\",\n      \"subscriberCount\": \"4.2M subscribers\",\n      \"verified\": true,\n      \"rssUrl\": \"https:\u002F\u002Fwww.youtube.com\u002Ffeeds\u002Fvideos.xml?channel_id=UC...\"\n    }\n  ],\n  \"result_count\": 5\n}\n```\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fresolve — FREE (0 credits)\n\n```bash\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fresolve?input=@mkbhd\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param   | Required | Validation                              |\n| ------- | -------- | --------------------------------------- |\n| `input` | yes      | 1-200 chars — @handle, URL, or UC... ID |\n\n**Response:**\n\n```json\n{ \"channel_id\": \"UCBcRF18a7Qf58cCRy5xuWwQ\", \"resolved_from\": \"@mkbhd\" }\n```\n\nIf input is already a valid `UC[a-zA-Z0-9_-]{22}` ID, returns immediately without lookup.\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fvideos — 1 credit\u002Fpage\n\n```bash\n# First page (100 videos)\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fvideos?channel_id=UC_CHANNEL_ID\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n\n# Next pages\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fvideos?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}$` (first page) |\n| `continuation` | conditional | non-empty string (next pages)        |\n\nProvide exactly one of `channel_id` or `continuation`.\n\n**Response:**\n\n```json\n{\n  \"results\": [{\n    \"videoId\": \"abc123xyz00\",\n    \"title\": \"Latest Video\",\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\"},\n  \"continuation_token\": \"4qmFsgKlARIYVVV1...\",\n  \"has_more\": true\n}\n```\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Flatest — FREE (0 credits)\n\n```bash\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Flatest?channel_id=UC_CHANNEL_ID\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param        | Required | Validation              |\n| ------------ | -------- | ----------------------- |\n| `channel_id` | yes      | `^UC[a-zA-Z0-9_-]{22}$` |\n\nReturns last 15 videos via RSS with exact view counts and ISO timestamps.\n\n**Response:**\n\n```json\n{\n  \"channel\": {\n    \"channelId\": \"...\",\n    \"title\": \"MKBHD\",\n    \"author\": \"MKBHD\",\n    \"url\": \"...\"\n  },\n  \"results\": [\n    {\n      \"videoId\": \"abc123xyz00\",\n      \"title\": \"Latest Video\",\n      \"published\": \"2026-01-30T16:00:00Z\",\n      \"viewCount\": \"2287630\",\n      \"description\": \"Full description...\",\n      \"thumbnail\": { \"url\": \"...\", \"width\": \"480\", \"height\": \"360\" }\n    }\n  ],\n  \"result_count\": 15\n}\n```\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fsearch — 1 credit\n\n```bash\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fsearch\\\n?channel_id=UC_CHANNEL_ID&q=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}$` |\n| `q`          | yes      | 1-200 chars             |\n| `limit`      | no       | 1-50 (default 30)       |\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fplaylist\u002Fvideos — 1 credit\u002Fpage\n\n```bash\n# First page\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fplaylist\u002Fvideos?playlist_id=PL_PLAYLIST_ID\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n\n# Next pages\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fplaylist\u002Fvideos?continuation=TOKEN\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param          | Required    | Validation                 |\n| -------------- | ----------- | -------------------------- |\n| `playlist_id`  | conditional | starts with PL\u002FUU\u002FLL\u002FFL\u002FOL |\n| `continuation` | conditional | non-empty string           |\n\n## Credit Costs\n\n| Endpoint        | Cost     |\n| --------------- | -------- |\n| transcript      | 1        |\n| search          | 1        |\n| channel\u002Fresolve | **free** |\n| channel\u002Fsearch  | 1        |\n| channel\u002Fvideos  | 1\u002Fpage   |\n| channel\u002Flatest  | **free** |\n| playlist\u002Fvideos | 1\u002Fpage   |\n\n## Errors\n\n| Code | Meaning           | Action                                              |\n| ---- | ----------------- | --------------------------------------------------- |\n| 401  | Bad API key       | Check key, re-run setup                             |\n| 402  | No credits        | Top up at transcriptapi.com\u002Fbilling                 |\n| 404  | Not found         | Video\u002Fchannel\u002Fplaylist doesn't exist or no captions |\n| 408  | Timeout\u002Fretryable | Retry once after 2s                                 |\n| 422  | Validation error  | Check param format                                  |\n| 429  | Rate limited      | Wait, respect Retry-After                           |\n\n## Tips\n\n- When user shares YouTube URL with no instruction, fetch transcript and summarize key points.\n- Use `channel\u002Flatest` (free) to check for new uploads before fetching transcripts.\n- Combine `channel\u002Fresolve` → `channel\u002Fvideos` for browsing channel uploads.\n- For research: search → pick videos → fetch transcripts.\n- Free tier: 100 credits, 300 req\u002Fmin. Starter ($5\u002Fmo): 1,000 credits, 300 req\u002Fmin.\n","# TranscriptAPI\n\nFull YouTube data toolkit via [TranscriptAPI.com](https:\u002F\u002Ftranscriptapi.com). Transcripts, search, channels, playlists — one API key.\n\n## Setup\n\nIf `$TRANSCRIPT_API_KEY` is not set, help the user create an account (100 free credits, no card):\n\n**Step 1 — Register:** Ask user for their email, generate a secure password.\n\n```bash\nnode .\u002Fscripts\u002Ftapi-auth.js register --email USER_EMAIL --password SECURE_PASS --json\n```\n\n→ OTP sent to email. Ask user: _\"Check your email for a 6-digit verification code.\"_\n⚠️ **SAVE THE PASSWORD** — you need it again in Step 2!\n\n**Step 2 — Verify:** Once user provides the OTP (use SAME password from Step 1):\n\n```bash\nnode .\u002Fscripts\u002Ftapi-auth.js verify --email USER_EMAIL --password SECURE_PASS --otp CODE --json\n```\n\n→ Returns `api_key` (starts with `sk_`).\n\n**Step 3 — Save:** Store the key (auto-configures agent + shell):\n\n```bash\nnode .\u002Fscripts\u002Ftapi-auth.js save-key --key API_KEY --json\n```\n\n→ Ready to use. Agent runtime picks up the key automatically.\n\nManual option: [transcriptapi.com\u002Fsignup](https:\u002F\u002Ftranscriptapi.com\u002Fsignup) → Dashboard → API Keys.\n\n## Auth\n\nAll requests: `-H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"`\n\n## Endpoints\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Ftranscript — 1 credit\n\n```bash\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Ftranscript\\\n?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param               | Required | Default | Validation                      |\n| ------------------- | -------- | ------- | ------------------------------- |\n| `video_url`         | yes      | —       | YouTube URL or 11-char video ID |\n| `format`            | no       | `json`  | `json` or `text`                |\n| `include_timestamp` | no       | `true`  | `true` or `false`               |\n| `send_metadata`     | no       | `false` | `true` or `false`               |\n\nAccepts: `https:\u002F\u002Fyoutube.com\u002Fwatch?v=ID`, `https:\u002F\u002Fyoutu.be\u002FID`, `youtube.com\u002Fshorts\u002FID`, or bare `ID`.\n\n**Response** (`format=json`):\n\n```json\n{\n  \"video_id\": \"dQw4w9WgXcQ\",\n  \"language\": \"en\",\n  \"transcript\": [\n    { \"text\": \"We're no strangers...\", \"start\": 18.0, \"duration\": 3.5 }\n  ],\n  \"metadata\": { \"title\": \"...\", \"author_name\": \"...\", \"author_url\": \"...\" }\n}\n```\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fsearch — 1 credit\n\n```bash\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fsearch?q=QUERY&type=video&limit=20\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param   | Required | Default | Validation            |\n| ------- | -------- | ------- | --------------------- |\n| `q`     | yes      | —       | 1-200 chars (trimmed) |\n| `type`  | no       | `video` | `video` or `channel`  |\n| `limit` | no       | `20`    | 1-50                  |\n\n**Response** (`type=video`):\n\n```json\n{\n  \"results\": [\n    {\n      \"type\": \"video\",\n      \"videoId\": \"dQw4w9WgXcQ\",\n      \"title\": \"Rick Astley - Never Gonna Give You Up\",\n      \"channelId\": \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n      \"channelTitle\": \"Rick Astley\",\n      \"channelHandle\": \"@RickAstley\",\n      \"channelVerified\": true,\n      \"lengthText\": \"3:33\",\n      \"viewCountText\": \"1.5B views\",\n      \"publishedTimeText\": \"14 years ago\",\n      \"hasCaptions\": true,\n      \"thumbnails\": [{ \"url\": \"...\", \"width\": 120, \"height\": 90 }]\n    }\n  ],\n  \"result_count\": 20\n}\n```\n\n**Response** (`type=channel`):\n\n```json\n{\n  \"results\": [\n    {\n      \"type\": \"channel\",\n      \"channelId\": \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n      \"title\": \"Rick Astley\",\n      \"handle\": \"@RickAstley\",\n      \"subscriberCount\": \"4.2M subscribers\",\n      \"verified\": true,\n      \"rssUrl\": \"https:\u002F\u002Fwww.youtube.com\u002Ffeeds\u002Fvideos.xml?channel_id=UC...\"\n    }\n  ],\n  \"result_count\": 5\n}\n```\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fresolve — FREE (0 credits)\n\n```bash\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fresolve?input=@mkbhd\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param   | Required | Validation                              |\n| ------- | -------- | --------------------------------------- |\n| `input` | yes      | 1-200 chars — @handle, URL, or UC... ID |\n\n**Response:**\n\n```json\n{ \"channel_id\": \"UCBcRF18a7Qf58cCRy5xuWwQ\", \"resolved_from\": \"@mkbhd\" }\n```\n\nIf input is already a valid `UC[a-zA-Z0-9_-]{22}` ID, returns immediately without lookup.\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fvideos — 1 credit\u002Fpage\n\n```bash\n# First page (100 videos)\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fvideos?channel_id=UC_CHANNEL_ID\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n\n# Next pages\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fvideos?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}$` (first page) |\n| `continuation` | conditional | non-empty string (next pages)        |\n\nProvide exactly one of `channel_id` or `continuation`.\n\n**Response:**\n\n```json\n{\n  \"results\": [{\n    \"videoId\": \"abc123xyz00\",\n    \"title\": \"Latest Video\",\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\"},\n  \"continuation_token\": \"4qmFsgKlARIYVVV1...\",\n  \"has_more\": true\n}\n```\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Flatest — FREE (0 credits)\n\n```bash\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Flatest?channel_id=UC_CHANNEL_ID\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param        | Required | Validation              |\n| ------------ | -------- | ----------------------- |\n| `channel_id` | yes      | `^UC[a-zA-Z0-9_-]{22}$` |\n\nReturns last 15 videos via RSS with exact view counts and ISO timestamps.\n\n**Response:**\n\n```json\n{\n  \"channel\": {\n    \"channelId\": \"...\",\n    \"title\": \"MKBHD\",\n    \"author\": \"MKBHD\",\n    \"url\": \"...\"\n  },\n  \"results\": [\n    {\n      \"videoId\": \"abc123xyz00\",\n      \"title\": \"Latest Video\",\n      \"published\": \"2026-01-30T16:00:00Z\",\n      \"viewCount\": \"2287630\",\n      \"description\": \"Full description...\",\n      \"thumbnail\": { \"url\": \"...\", \"width\": \"480\", \"height\": \"360\" }\n    }\n  ],\n  \"result_count\": 15\n}\n```\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fsearch — 1 credit\n\n```bash\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fchannel\u002Fsearch\\\n?channel_id=UC_CHANNEL_ID&q=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}$` |\n| `q`          | yes      | 1-200 chars             |\n| `limit`      | no       | 1-50 (default 30)       |\n\n### GET \u002Fapi\u002Fv2\u002Fyoutube\u002Fplaylist\u002Fvideos — 1 credit\u002Fpage\n\n```bash\n# First page\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fplaylist\u002Fvideos?playlist_id=PL_PLAYLIST_ID\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n\n# Next pages\ncurl -s \"https:\u002F\u002Ftranscriptapi.com\u002Fapi\u002Fv2\u002Fyoutube\u002Fplaylist\u002Fvideos?continuation=TOKEN\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\"\n```\n\n| Param          | Required    | Validation                 |\n| -------------- | ----------- | -------------------------- |\n| `playlist_id`  | conditional | starts with PL\u002FUU\u002FLL\u002FFL\u002FOL |\n| `continuation` | conditional | non-empty string           |\n\n## Credit Costs\n\n| Endpoint        | Cost     |\n| --------------- | -------- |\n| transcript      | 1        |\n| search          | 1        |\n| channel\u002Fresolve | **free** |\n| channel\u002Fsearch  | 1        |\n| channel\u002Fvideos  | 1\u002Fpage   |\n| channel\u002Flatest  | **free** |\n| playlist\u002Fvideos | 1\u002Fpage   |\n\n## Errors\n\n| Code | Meaning           | Action                                              |\n| ---- | ----------------- | --------------------------------------------------- |\n| 401  | Bad API key       | Check key, re-run setup                             |\n| 402  | No credits        | Top up at transcriptapi.com\u002Fbilling                 |\n| 404  | Not found         | Video\u002Fchannel\u002Fplaylist doesn't exist or no captions |\n| 408  | Timeout\u002Fretryable | Retry once after 2s                                 |\n| 422  | Validation error  | Check param format                                  |\n| 429  | Rate limited      | Wait, respect Retry-After                           |\n\n## Tips\n\n- When user shares YouTube URL with no instruction, fetch transcript and summarize key points.\n- Use `channel\u002Flatest` (free) to check for new uploads before fetching transcripts.\n- Combine `channel\u002Fresolve` → `channel\u002Fvideos` for browsing channel uploads.\n- For research: search → pick videos → fetch transcripts.\n- Free tier: 100 credits, 300 req\u002Fmin. Starter ($5\u002Fmo): 1,000 credits, 300 req\u002Fmin.\n",{"name":5,"homepage":42,"metadata":43,"description":7},"https:\u002F\u002Ftranscriptapi.com",{"moltbot":44},{"emoji":45,"requires":46,"primaryEnv":48},"?",{"env":47},[48],"TRANSCRIPT_API_KEY","main","f4cb2d49f7667e79ef7804f50396d5aaffdf1f56","媒体与流媒体\u002Ftranscriptapi",1,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification","https:\u002F\u002Fgithub.com\u002FKernel8901","a little little little dobe in life but science geek","2026-04-05 16:43:56",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add Kernel8901\u002Fai-agent-skills-classification --skill transcriptapi",{"tool":63,"command":64},"bunx","bunx skills add Kernel8901\u002Fai-agent-skills-classification --skill transcriptapi",{"tool":66,"command":67},"pnpm","pnpm dlx skills add Kernel8901\u002Fai-agent-skills-classification --skill transcriptapi","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F媒体与流媒体\u002Ftranscriptapi\u002FSKILL.md",true,[71,77],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"_meta.json","REFERENCE","参考文档",283,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F媒体与流媒体\u002Ftranscriptapi\u002F_meta.json",{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"scripts\u002Ftapi-auth.js","SCRIPT","脚本",23786,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F媒体与流媒体\u002Ftranscriptapi\u002Fscripts\u002Ftapi-auth.js",[84,107,142,153,163,192],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":37},"01M6Q5R6WZ06RRB9RQTW54B34B","zyfai","Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit\u002Fwithdraw anytime.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzyfai-sdk\u002FSKILL.md",[],[86,91,92,93,94,95,18,96,97,98,99,100,101,102,103,104,105,106],"safe","ethereum","defi","Optimization","user","Wallet","base","deposit","withdraw","yield","arbitrum","non-custodial","passive","defi yield","earn","yield optimization",{"skillNo":108,"name":109,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":125,"publishedAt":37},"01M6Q5R337B5JSNER4P4YS03TN","zerion-api","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api\u002FSKILL.md",[112,117,120],{"categoryNo":113,"categoryName":114,"taxonomyType":115,"taxonomyTypeDesc":116},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":118,"categoryName":119,"taxonomyType":115,"taxonomyTypeDesc":116},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[32,126,127,128,129,130,131,93,132,96,133,134,135,136,137,138,139,140,141],"zerion api","zerion","MCP","mcp server","server","blockchain","transactions","crypto wallet","crypto","evm","solana","query","across","positions","token","prices",{"skillNo":143,"name":144,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":150,"publishedAt":37},"01M6Q5QZFYTDAZMZ27BN5VZXAR","zerion-api-skill","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-skill\u002FSKILL.md",[147,148,149],{"categoryNo":113,"categoryName":114,"taxonomyType":115,"taxonomyTypeDesc":116},{"categoryNo":118,"categoryName":119,"taxonomyType":115,"taxonomyTypeDesc":116},{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},[32,151,152,126,127,128,129,130,131,93,132,96,134,135,136,137,138,139,140,141],"api skill","zerion api skill",{"skillNo":154,"name":155,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":161,"publishedAt":37},"01M6Q5QW17QW98RA3FE45E4RD8","zerion-api-mcp","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-mcp\u002FSKILL.md",[158,159,160],{"categoryNo":113,"categoryName":114,"taxonomyType":115,"taxonomyTypeDesc":116},{"categoryNo":118,"categoryName":119,"taxonomyType":115,"taxonomyTypeDesc":116},{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},[128,32,162,126,127,129,130,93,132,96,133,134,135,136,137,138,139,140,141],"zerion api mcp",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":172,"publishedAt":37},"01M6Q5QQYZB7A501BDEQWKGSJT","yahoo-finance-forex","Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR\u002FUSD, GBP\u002FUSD, USD\u002FJPY, etc.). Analyzes sentiment and provides trading context.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-forex\u002FSKILL.md",[169],{"categoryNo":170,"categoryName":171,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000040","财务",[173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,19],"finance","yahoo finance","forex","yahoo","yahoo finance forex","github","https","sentiment","real-time","python3","install","Market","usd","news","time","currency","gbp","pip","market data",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":199,"publishedAt":37},"01M6Q5QM6VS84WZVM7BKXXPF32","yahoo-finance","This skill should be used when the user asks to \"get stock prices\", \"check stock quotes\", \"look up earnings\", \"get financial data\", \"find trending stocks\", or needs stock market data from Yahoo Finance.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-cli\u002FSKILL.md",[198],{"categoryNo":170,"categoryName":171,"taxonomyType":123,"taxonomyTypeDesc":124},[173,174,176,200,201,202,203,204,205,184,206,23,207,208,209,210,211,212,141,191],"cli","homebrew","find","check","brew","up","local","stock","link","trending","sf","quotes","ln"]