New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

YouTube is or could be relevant

Transcriptapi

by ZeroPointRepo · MIT license · ★ 945 on GitHub · v1.5.4 · updated Sep 22

Transcriptapi cover

Use when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles, creator lookups, video summaries, quotes, translations, topic research, tutorials, talks, lectures, expert…

---
name: transcriptapi
description: "Use when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles, creator lookups, video summaries, quotes, translations, topic research, tutorials, talks, lectures, expert discussions, product reviews, how-to guides, new product announcements, or anything where video content is fresher or richer than text search. Covers transcripts, video/channel search, channel browsing, playlists, and within-channel search. Not for uploads, account management, or written-source-only research."
version: "1.5.4"
user-invocable: true
compatibility: Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed.
required_environment_variables:
  - name: TRANSCRIPT_API_KEY
    prompt: Your TranscriptAPI key (starts with sk_)
    help: Free account at https://transcriptapi.com — 100 credits, no card required. Or let the agent create one for you.
    required_for: all API requests
metadata: {"openclaw":{"emoji":"▶️","requires":{"env":["TRANSCRIPT_API_KEY"]},"primaryEnv":"TRANSCRIPT_API_KEY","homepage":"https://transcriptapi.com"},"hermes":{"tags":["youtube","transcripts","video","search","channels","playlists","captions"],"category":"media"}}
---

# TranscriptAPI

Full YouTube data toolkit via [TranscriptAPI.com](https://transcriptapi.com). Transcripts, search, channels, playlists — one API key.

Overview

Full YouTube data toolkit via TranscriptAPI.com. Transcripts, search, channels, playlists — one API key.

Manual install (npx, ZIP)
Claude Codenpx skills add ZeroPointRepo/youtube-skills --skill transcriptapi -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/ZeroPointRepo/youtube-skills/tar.gz/4f7994b94e7d \ | tar -xz -C ~/.claude/skills --strip-components=2 youtube-skills-4f7994b94e7d/skills/transcriptapi
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/9676200cd4c9d373b3e7/transcriptapi.zip" -OutFile "$env:TEMP\transcriptapi.zip"; Expand-Archive "$env:TEMP\transcriptapi.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md11.7 KB
  • references/2 files · 10.1 KB
Read the files here
ZeroPointRepo/4f7994b3 files
SKILL.md
Show the full text311 lines

TranscriptAPI

Full YouTube data toolkit via TranscriptAPI.com. Transcripts, search, channels, playlists — one API key.

Setup

If $TRANSCRIPT_API_KEY is not set, read references/auth-setup.md and follow the instructions there to get and store the key.

Required Headers

Every request needs two headers:

  • Authorization: Bearer $TRANSCRIPT_API_KEY
  • User-Agent: your agent's name and version if known (e.g. HermesAgent/0.11.0, ClaudeCode/1.0). Version is optional — agent name alone is fine. Do not omit this header or send a bare default — Cloudflare will return a 403 (error code 1010) and block the request.

API Reference

Full OpenAPI spec: transcriptapi.com/openapi.json — consult this for the latest parameters and schemas.

Auth

All requests: -H "Authorization: Bearer $TRANSCRIPT_API_KEY"

Endpoints

Channel endpoints accept channel — an @handle, channel URL, or UC... ID. No need to resolve first. Playlist endpoints accept playlist — a playlist URL or ID.

GET /api/v2/youtube/transcript — 1 credit
GET https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
Param Required Default Validation
video_url yes — YouTube URL or 11-char video ID
format no json json or text
include_timestamp no true true or false
send_metadata no false true or false

Accepts: https://youtube.com/watch?v=ID, https://youtu.be/ID, youtube.com/shorts/ID, or bare ID.

Response (format=json):

{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [
    { "text": "We're no strangers...", "start": 18.0, "duration": 3.5 }
  ],
  "metadata": { "title": "...", "author_name": "...", "author_url": "..." }
}
GET /api/v2/youtube/search — 1 credit
GET https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=video&limit=20
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
Param Required Default Validation
q yes — 1-200 chars (trimmed)
type no video video or channel
limit no 20 1-50

Response (type=video):

{
  "results": [
    {
      "type": "video",
      "videoId": "dQw4w9WgXcQ",
      "title": "Rick Astley - Never Gonna Give You Up",
      "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
      "channelTitle": "Rick Astley",
      "channelHandle": "@RickAstley",
      "channelVerified": true,
      "lengthText": "3:33",
      "viewCountText": "1.5B views",
      "publishedTimeText": "14 years ago",
      "hasCaptions": true,
      "thumbnails": [{ "url": "...", "width": 120, "height": 90 }]
    }
  ],
  "result_count": 20
}

Response (type=channel):

{
  "results": [
    {
      "type": "channel",
      "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
      "title": "Rick Astley",
      "handle": "@RickAstley",
      "subscriberCount": "4.2M subscribers",
      "verified": true,
      "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UC..."
    }
  ],
  "result_count": 5
}
GET /api/v2/youtube/channel/resolve — FREE (0 credits)
GET https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
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 a valid UC[a-zA-Z0-9_-]{22} ID, returns immediately without lookup.

GET /api/v2/youtube/channel/videos — 1 credit/page
# First page (100 videos)
GET https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# Most-viewed first (channel Videos tab, ~30 videos)
GET https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA&sort=popular
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# Next pages (repeat the same sort)
GET https://transcriptapi.com/api/v2/youtube/channel/videos?continuation=TOKEN&sort=popular
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
Param Required Validation
channel conditional @handle, channel URL, or UC... ID
tab no videos (default), shorts, or streams
sort no latest, popular, or oldest (omit for the uploads feed)
continuation conditional non-empty string (next pages)

Provide exactly one of channel or continuation.

Sorting. Add sort=latest, popular, or oldest to channel/videos to get a channel's videos in the order you want, for example its most-popular uploads first. A sorted page returns about 30 videos (an unsorted page returns about 100), and every page costs the same 1 credit.

When paging, send the same sort on each request.

Every item carries members_only, true only when YouTube badges it "Members only", and those items have no viewCountText. Items from tab=streams carry lengthText and publishedTimeText (for example Streamed 2 years ago); tab=shorts returns null for both, because YouTube's Shorts grid publishes neither. On the channel-tab feeds (tab=videos with sort, tab=shorts, tab=streams) channelId, channelTitle, channelHandle and index are null.

Response:

{
  "results": [{
    "videoId": "abc123xyz00",
    "title": "Latest Video",
    "channelId": "UCsT0YIqwnpJCM-mx7-gSA4Q",
    "channelTitle": "TED",
    "channelHandle": "@TED",
    "lengthText": "15:22",
    "viewCountText": "3.2M views",
    "publishedTimeText": "2 years ago",
    "thumbnails": [...],
    "index": "0",
    "members_only": false
  }],
  "playlist_info": {"title": "Uploads from TED", "numVideos": "5000"},
  "continuation_token": "4qmFsgKlARIYVVV1...",
  "has_more": true
}
GET /api/v2/youtube/channel/latest — FREE (0 credits)
GET https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
Param Required Validation
channel yes @handle, channel URL, or UC... ID

Returns last 15 videos via RSS with exact view counts and ISO timestamps.

Response:

{
  "channel": {
    "channelId": "...",
    "title": "TED",
    "author": "TED",
    "url": "..."
  },
  "results": [
    {
      "videoId": "abc123xyz00",
      "title": "Latest Video",
      "published": "2026-01-30T16:00:00Z",
      "viewCount": "2287630",
      "description": "Full description...",
      "thumbnail": { "url": "...", "width": "480", "height": "360" }
    }
  ],
  "result_count": 15
}
GET /api/v2/youtube/channel/search — 1 credit
GET https://transcriptapi.com/api/v2/youtube/channel/search?channel=@TED&q=climate+change&limit=30
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
Param Required Validation
channel yes @handle, channel URL, or UC... ID
q yes 1-200 chars
limit no 1-50 (default 30)
GET /api/v2/youtube/playlist/videos — 1 credit/page
# First page
GET https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_PLAYLIST_ID
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# Next pages
GET https://transcriptapi.com/api/v2/youtube/playlist/videos?continuation=TOKEN
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
Param Required Validation
playlist conditional Playlist URL or ID (PL/UU/LL/FL/OL prefix)
continuation conditional non-empty string

Credit Costs

Endpoint Cost
transcript 1
search 1
channel/resolve free
channel/search 1
channel/videos 1/page
channel/latest free
playlist/videos 1/page

Errors

Code Meaning Action
401 Bad API key Check key, re-run setup
402 No credits Top up at transcriptapi.com/billing
403/1010 Cloudflare block Add or fix User-Agent header
404 Not found Video/channel/playlist doesn't exist or no captions
408 Timeout/retryable Retry once after 2s
422 Validation error Check param format
429 Rate limited Wait, respect Retry-After

Tips

  • When user shares YouTube URL with no instruction, fetch transcript and summarize key points.
  • Use channel/latest (free) to check for new uploads before fetching transcripts — pass @handle directly.
  • For research: search → pick videos → fetch transcripts.
  • Free tier: 100 credits, 300 req/min. Starter ($5/mo): 1,000 credits, 300 req/min.

Copy-paste examples

Every request in this file as a ready-to-run one-liner: references/curl-examples.md

1---
2name: transcriptapi
3description: "Use when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles, creator lookups, video summaries, quotes, translations, topic research, tutorials, talks, lectures, expert discussions, product reviews, how-to guides, new product announcements, or anything where video content is fresher or richer than text search. Covers transcripts, video/channel search, channel browsing, playlists, and within-channel search. Not for uploads, account management, or written-source-only research."
4version: "1.5.4"
5user-invocable: true
6compatibility: Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed.
7required_environment_variables:
8 - name: TRANSCRIPT_API_KEY
9 prompt: Your TranscriptAPI key (starts with sk_)
10 help: Free account at https://transcriptapi.com — 100 credits, no card required. Or let the agent create one for you.
11 required_for: all API requests
12metadata: {"openclaw":{"emoji":"▶️","requires":{"env":["TRANSCRIPT_API_KEY"]},"primaryEnv":"TRANSCRIPT_API_KEY","homepage":"https://transcriptapi.com"},"hermes":{"tags":["youtube","transcripts","video","search","channels","playlists","captions"],"category":"media"}}
13---
14 
15# TranscriptAPI
16 
17Full YouTube data toolkit via [TranscriptAPI.com](https://transcriptapi.com). Transcripts, search, channels, playlists — one API key.
18 
19## Setup
20 
21If `$TRANSCRIPT_API_KEY` is not set, read [references/auth-setup.md](references/auth-setup.md) and follow the instructions there to get and store the key.
22 
23## Required Headers
24 
25Every request needs two headers:
26 
27- **Authorization:** `Bearer $TRANSCRIPT_API_KEY`
28- **User-Agent:** your agent's name and version if known (e.g. `HermesAgent/0.11.0`, `ClaudeCode/1.0`). Version is optional — agent name alone is fine. Do not omit this header or send a bare default — Cloudflare will return a 403 (error code 1010) and block the request.
29 
30## API Reference
31 
32Full OpenAPI spec: [transcriptapi.com/openapi.json](https://transcriptapi.com/openapi.json) — consult this for the latest parameters and schemas.
33 
34## Auth
35 
36All requests: `-H "Authorization: Bearer $TRANSCRIPT_API_KEY"`
37 
38## Endpoints
39 
40Channel endpoints accept `channel` — an `@handle`, channel URL, or `UC...` ID. No need to resolve first. Playlist endpoints accept `playlist` — a playlist URL or ID.
41 
42### GET /api/v2/youtube/transcript — 1 credit
43 
44```http
45GET https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true
46Authorization: Bearer $TRANSCRIPT_API_KEY
47User-Agent: YourAgent/1.0
48```
49 
50| Param | Required | Default | Validation |
51| ------------------- | -------- | ------- | ------------------------------- |
52| `video_url` | yes | — | YouTube URL or 11-char video ID |
53| `format` | no | `json` | `json` or `text` |
54| `include_timestamp` | no | `true` | `true` or `false` |
55| `send_metadata` | no | `false` | `true` or `false` |
56 
57Accepts: `https://youtube.com/watch?v=ID`, `https://youtu.be/ID`, `youtube.com/shorts/ID`, or bare `ID`.
58 
59**Response** (`format=json`):
60 
61```json
62{
63 "video_id": "dQw4w9WgXcQ",
64 "language": "en",
65 "transcript": [
66 { "text": "We're no strangers...", "start": 18.0, "duration": 3.5 }
67 ],
68 "metadata": { "title": "...", "author_name": "...", "author_url": "..." }
69}
70```
71 
72### GET /api/v2/youtube/search — 1 credit
73 
74```http
75GET https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=video&limit=20
76Authorization: Bearer $TRANSCRIPT_API_KEY
77User-Agent: YourAgent/1.0
78```
79 
80| Param | Required | Default | Validation |
81| ------- | -------- | ------- | --------------------- |
82| `q` | yes | — | 1-200 chars (trimmed) |
83| `type` | no | `video` | `video` or `channel` |
84| `limit` | no | `20` | 1-50 |
85 
86**Response** (`type=video`):
87 
88```json
89{
90 "results": [
91 {
92 "type": "video",
93 "videoId": "dQw4w9WgXcQ",
94 "title": "Rick Astley - Never Gonna Give You Up",
95 "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
96 "channelTitle": "Rick Astley",
97 "channelHandle": "@RickAstley",
98 "channelVerified": true,
99 "lengthText": "3:33",
100 "viewCountText": "1.5B views",
101 "publishedTimeText": "14 years ago",
102 "hasCaptions": true,
103 "thumbnails": [{ "url": "...", "width": 120, "height": 90 }]
104 }
105 ],
106 "result_count": 20
107}
108```
109 
110**Response** (`type=channel`):
111 
112```json
113{
114 "results": [
115 {
116 "type": "channel",
117 "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
118 "title": "Rick Astley",
119 "handle": "@RickAstley",
120 "subscriberCount": "4.2M subscribers",
121 "verified": true,
122 "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UC..."
123 }
124 ],
125 "result_count": 5
126}
127```
128 
129### GET /api/v2/youtube/channel/resolve — FREE (0 credits)
130 
131```http
132GET https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED
133Authorization: Bearer $TRANSCRIPT_API_KEY
134User-Agent: YourAgent/1.0
135```
136 
137| Param | Required | Validation |
138| ------- | -------- | --------------------------------------- |
139| `input` | yes | 1-200 chars — @handle, URL, or UC... ID |
140 
141**Response:**
142 
143```json
144{ "channel_id": "UCsT0YIqwnpJCM-mx7-gSA4Q", "resolved_from": "@TED" }
145```
146 
147If input is already a valid `UC[a-zA-Z0-9_-]{22}` ID, returns immediately without lookup.
148 
149### GET /api/v2/youtube/channel/videos — 1 credit/page
150 
151```http
152# First page (100 videos)
153GET https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA
154Authorization: Bearer $TRANSCRIPT_API_KEY
155User-Agent: YourAgent/1.0
156 
157# Most-viewed first (channel Videos tab, ~30 videos)
158GET https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA&sort=popular
159Authorization: Bearer $TRANSCRIPT_API_KEY
160User-Agent: YourAgent/1.0
161 
162# Next pages (repeat the same sort)
163GET https://transcriptapi.com/api/v2/youtube/channel/videos?continuation=TOKEN&sort=popular
164Authorization: Bearer $TRANSCRIPT_API_KEY
165User-Agent: YourAgent/1.0
166```
167 
168| Param | Required | Validation |
169| -------------- | ----------- | --------------------------------------------- |
170| `channel` | conditional | `@handle`, channel URL, or `UC...` ID |
171| `tab` | no | `videos` (default), `shorts`, or `streams` |
172| `sort` | no | `latest`, `popular`, or `oldest` (omit for the uploads feed) |
173| `continuation` | conditional | non-empty string (next pages) |
174 
175Provide exactly one of `channel` or `continuation`.
176 
177**Sorting.** Add sort=latest, popular, or oldest to channel/videos to get a channel's videos in the order you want, for example its most-popular uploads first. A sorted page returns about 30 videos (an unsorted page returns about 100), and every page costs the same 1 credit.
178 
179When paging, send the same sort on each request.
180 
181Every item carries `members_only`, `true` only when YouTube badges it "Members only", and those items have no `viewCountText`. Items from `tab=streams` carry `lengthText` and `publishedTimeText` (for example `Streamed 2 years ago`); `tab=shorts` returns `null` for both, because YouTube's Shorts grid publishes neither. On the channel-tab feeds (`tab=videos` with `sort`, `tab=shorts`, `tab=streams`) `channelId`, `channelTitle`, `channelHandle` and `index` are `null`.
182 
183**Response:**
184 
185```json
186{
187 "results": [{
188 "videoId": "abc123xyz00",
189 "title": "Latest Video",
190 "channelId": "UCsT0YIqwnpJCM-mx7-gSA4Q",
191 "channelTitle": "TED",
192 "channelHandle": "@TED",
193 "lengthText": "15:22",
194 "viewCountText": "3.2M views",
195 "publishedTimeText": "2 years ago",
196 "thumbnails": [...],
197 "index": "0",
198 "members_only": false
199 }],
200 "playlist_info": {"title": "Uploads from TED", "numVideos": "5000"},
201 "continuation_token": "4qmFsgKlARIYVVV1...",
202 "has_more": true
203}
204```
205 
206### GET /api/v2/youtube/channel/latest — FREE (0 credits)
207 
208```http
209GET https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED
210Authorization: Bearer $TRANSCRIPT_API_KEY
211User-Agent: YourAgent/1.0
212```
213 
214| Param | Required | Validation |
215| --------- | -------- | ----------------------------------------- |
216| `channel` | yes | `@handle`, channel URL, or `UC...` ID |
217 
218Returns last 15 videos via RSS with exact view counts and ISO timestamps.
219 
220**Response:**
221 
222```json
223{
224 "channel": {
225 "channelId": "...",
226 "title": "TED",
227 "author": "TED",
228 "url": "..."
229 },
230 "results": [
231 {
232 "videoId": "abc123xyz00",
233 "title": "Latest Video",
234 "published": "2026-01-30T16:00:00Z",
235 "viewCount": "2287630",
236 "description": "Full description...",
237 "thumbnail": { "url": "...", "width": "480", "height": "360" }
238 }
239 ],
240 "result_count": 15
241}
242```
243 
244### GET /api/v2/youtube/channel/search — 1 credit
245 
246```http
247GET https://transcriptapi.com/api/v2/youtube/channel/search?channel=@TED&q=climate+change&limit=30
248Authorization: Bearer $TRANSCRIPT_API_KEY
249User-Agent: YourAgent/1.0
250```
251 
252| Param | Required | Validation |
253| --------- | -------- | ----------------------------------------- |
254| `channel` | yes | `@handle`, channel URL, or `UC...` ID |
255| `q` | yes | 1-200 chars |
256| `limit` | no | 1-50 (default 30) |
257 
258### GET /api/v2/youtube/playlist/videos — 1 credit/page
259 
260```http
261# First page
262GET https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_PLAYLIST_ID
263Authorization: Bearer $TRANSCRIPT_API_KEY
264User-Agent: YourAgent/1.0
265 
266# Next pages
267GET https://transcriptapi.com/api/v2/youtube/playlist/videos?continuation=TOKEN
268Authorization: Bearer $TRANSCRIPT_API_KEY
269User-Agent: YourAgent/1.0
270```
271 
272| Param | Required | Validation |
273| -------------- | ----------- | ---------------------------------------------------- |
274| `playlist` | conditional | Playlist URL or ID (`PL`/`UU`/`LL`/`FL`/`OL` prefix) |
275| `continuation` | conditional | non-empty string |
276 
277## Credit Costs
278 
279| Endpoint | Cost |
280| --------------- | -------- |
281| transcript | 1 |
282| search | 1 |
283| channel/resolve | **free** |
284| channel/search | 1 |
285| channel/videos | 1/page |
286| channel/latest | **free** |
287| playlist/videos | 1/page |
288 
289## Errors
290 
291| Code | Meaning | Action |
292| -------- | ----------------- | --------------------------------------------------- |
293| 401 | Bad API key | Check key, re-run setup |
294| 402 | No credits | Top up at transcriptapi.com/billing |
295| 403/1010 | Cloudflare block | Add or fix User-Agent header |
296| 404 | Not found | Video/channel/playlist doesn't exist or no captions |
297| 408 | Timeout/retryable | Retry once after 2s |
298| 422 | Validation error | Check param format |
299| 429 | Rate limited | Wait, respect Retry-After |
300 
301## Tips
302 
303- When user shares YouTube URL with no instruction, fetch transcript and summarize key points.
304- Use `channel/latest` (free) to check for new uploads before fetching transcripts — pass @handle directly.
305- For research: search → pick videos → fetch transcripts.
306- Free tier: 100 credits, 300 req/min. Starter ($5/mo): 1,000 credits, 300 req/min.
307 
308## Copy-paste examples
309 
310Every request in this file as a ready-to-run one-liner: [references/curl-examples.md](references/curl-examples.md)
311 
View all files on GitHub →

Details

Version
1.5.4
Updated
Sep 22, 2026
License
MIT
Stars on the repo
★ 945
Checked
Source
ZeroPointRepo/youtube-skills ↗
Creator
ZeroPointRepo · 12 listings
View creator

Similar skills

See all →
SkillReverse engineer native, managed, Electron/JavaScriptREAmorluto/rea · by morlutoReverse engineer native, managed, Electron/JavaScript, packaged, firmware, and browser targets with REA. Use shipped-artifact or requested runtime evidence to explain features, compare versions, decompile code, or guide a reconstruction. Skip REA for ordinary source-repository architecture analysis.★ 316k GitHub starsSkillBrainstorms ideas into designs before any creative workBrainstorming Ideas Into Designsobra/superpowers · by obraYou MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.★ 290k GitHub starsSkillRequires technical rigor and verificationCode Review Receptionobra/superpowers · by obraUse when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation★ 290k GitHub starsSkillDiagnosis loop for hard bugs and performance regressionsDiagnosing bugsmattpocock/skills · by mattpocockDiagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.★ 267k GitHub starsSkillImplement the result of /to-spec and /to-tickets in codeImplement specmattpocock/skills · by mattpocockImplement the result of /to-spec and /to-tickets in code.★ 267k GitHub starsSkillWriting a PR bodymattpocock/skills · by mattpocockUse when writing a PR body.★ 267k GitHub stars

More from ZeroPointRepo

SkillCaptions, subtitles, or the spoken text of a YouTube videoZeroPointRepo/youtube-skills · by ZeroPointRepoUse when captions, subtitles, or the spoken text of a YouTube video is needed — even if not explicitly requested: pasted video links or IDs, requests to read, quote, or translate a video, accessibility needs, deaf/HoH use cases, content review, or language learning. Fetches timestamped caption data from any YouTube video. Not for uploading subtitles or account management.★ 945 GitHub starsSkillSubtitles or the spoken text of a YouTube video is neededZeroPointRepo/youtube-skills · by ZeroPointRepoUse when subtitles or the spoken text of a YouTube video is needed: pasted video links or IDs, requests to translate a video, read along, follow foreign-language content, or extract what was said. Also use for language learning or accessibility. Fetches timestamped subtitles from any YouTube video. Not for uploading subtitles or account management.★ 945 GitHub starsSkillThe spoken content of a YouTube video is neededTranscriptZeroPointRepo/youtube-skills · by ZeroPointRepoUse when the spoken content of a YouTube video is needed — even if not explicitly requested: pasted video links or IDs, requests to summarize, quote, transcribe, translate, fact-check, or extract anything from a video. Also use for research or learning when a video is the source. Not for uploads or account management.★ 945 GitHub starsSkillVideo content needs to be extracted as text: pasted YouTubeVideo transcriptZeroPointRepo/youtube-skills · by ZeroPointRepoUse when video content needs to be extracted as text: pasted YouTube links or IDs, requests to transcribe, summarize, quote, translate, convert video to text, or extract information from video content. Also use when a user shares a video URL without explanation and wants to know what it says. Not for uploads or account management.★ 945 GitHub starsSkillYouTube data is needed without Google API quotas or OAuthYoutube APIZeroPointRepo/youtube-skills · by ZeroPointRepoUse when YouTube data is needed without Google API quotas or OAuth setup: transcripts, video metadata, channel info, search results, playlists. Triggers on pasted YouTube links, creator names, @handles, topic research, video summaries, channel browsing, or any request where YouTube content would help — even if not mentioned explicitly. Not for uploads, account management, or written-source-only research.★ 945 GitHub starsSkillA YouTube channel is the focus: pasted @handles or channelYoutube channelsZeroPointRepo/youtube-skills · by ZeroPointRepoUse when a YouTube channel is the focus: pasted @handles or channel URLs, requests to browse a creator's uploads, see what a channel has posted recently, search within a channel, or resolve a handle to a channel ID. Also use when the user names a creator and wants to explore their content or monitor their uploads. Not for creating channels or account management.★ 945 GitHub stars