Youtube full

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, first looks, or anything where video content is fresher or richer than text search.

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/youtube-full-2.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit ZeroPointRepo/youtube-skills/skills/youtube-full#main ~/.claude/skills/youtube-full-2

For one project only, change the path to .claude/skills/youtube-full-2.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Youtube full

Show the full text294 lines
namedescriptionversionuser-invocablecompatibilityrequired_environment_variablesmetadata
youtube-fullUse 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, first looks, 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.1.6.2trueRequires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed. - 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{"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"}}

YouTube Full

Complete YouTube toolkit via TranscriptAPI.com. Everything in one skill.

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.

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 Values
video_url yes — YouTube URL or 11-char video ID
format no json json, text
include_timestamp no true true, false
send_metadata no false true, false

Response (format=json):

{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [{ "text": "...", "start": 18.0, "duration": 3.5 }],
  "metadata": { "title": "...", "author_name": "...", "author_url": "..." }
}

Video Info & Metadata

# Free — languages available for the transcript endpoint
GET https://transcriptapi.com/api/v2/youtube/info?video_url=VIDEO_URL
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# 1 credit — rich metadata (views, likes, description, duration, tags)
GET https://transcriptapi.com/api/v2/youtube/video/metadata?video_url=VIDEO_URL&include=details,related
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

include on video/metadata accepts details and/or related. Naming: /video/metadata was previously /video/info — the old path still works but is deprecated.

Search — 1 credit/page

# Videos
GET https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=video&limit=20
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# Channels, playlists, or movies
GET https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=channel&limit=10
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
Param Required Default Validation
q yes — 1-200 chars
type no video video, channel, playlist, movie
sort no relevance relevance, views (first page only)
upload_date no — hour, today, week, month, year (videos, first page)
duration no — short, medium, long (videos, first page)
features no — e.g. hd,subtitles,cc (first page)
limit no 20 1-50

Channels

All channel endpoints accept channel — an @handle, channel URL, or UC... channel ID. No need to resolve first.

Resolve handle — FREE
GET https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

Response: {"channel_id": "UC...", "resolved_from": "@TED"}

Latest 15 videos — FREE
GET https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

Returns exact viewCount and ISO published timestamps.

Channel feed (videos/shorts/streams) — 1 credit/page
# First page (100 items, tab defaults to "videos")
GET https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA&tab=videos
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# Most-viewed first (channel Videos tab, ~30 items)
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 tab AND sort)
GET https://transcriptapi.com/api/v2/youtube/channel/videos?continuation=TOKEN&sort=popular
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

Provide exactly one of channel or continuation. tab is videos (default), shorts, or streams. Response includes continuation_token and has_more.

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.

Item fields. Every item carries members_only, true only when YouTube badges it "Members only", and those items have no viewCountText. tab=streams items 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.

Search within channel — 1 credit
GET https://transcriptapi.com/api/v2/youtube/channel/search?channel=@TED&q=QUERY&limit=30
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
Channel profile — 1 credit
GET https://transcriptapi.com/api/v2/youtube/channel/info?channel=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

Returns title, handle, verified flag, subscriber/video counts, description, tags, thumbnails, banners, and availableTabs.

Channel playlists — 1 credit/page
GET https://transcriptapi.com/api/v2/youtube/channel/playlists?channel=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

Returns each playlist's playlistId, title, url, videoCountText — feed a playlistId into the Playlists endpoint below.

Channel community posts — 1 credit/page
GET https://transcriptapi.com/api/v2/youtube/channel/posts?channel=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0
Channel curated sections — 1 credit
GET https://transcriptapi.com/api/v2/youtube/channel/sections?channel=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

tab is featured (default, Home page), podcasts, or releases.

Playlists — 1 credit/page

Accepts playlist — a YouTube playlist URL or playlist ID.

# First page
GET https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_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

Valid ID prefixes: PL, UU, LL, FL, OL. Response includes playlist_info, results, continuation_token, has_more.

Credit Costs

Endpoint Cost
transcript 1
info free
video/metadata 1
search 1/page
channel/resolve free
channel/info 1
channel/latest free
channel/videos 1/page
channel/search 1
channel/playlists 1/page
channel/posts 1/page
channel/sections 1
playlist/videos 1/page

Validation Rules

Field Rule
channel @handle, channel URL, or UC... ID
playlist Playlist URL or ID (PL/UU/LL/FL/OL prefix)
q 1-200 chars
type (search) video (default), channel, playlist, movie
tab (channel/videos) videos (default), shorts, streams
sort (channel/videos) latest, popular, oldest (omit for the uploads feed)
tab (channel/sections) featured (default), podcasts, releases
include (video/metadata) details, related (comma-separated)
limit 1-50

Errors

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

Typical Workflows

Research workflow: search → pick videos → fetch transcripts

# 1. Search
GET https://transcriptapi.com/api/v2/youtube/search?q=machine+learning+explained&limit=5
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# 2. Transcript
GET https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

Channel monitoring: latest (free) → transcript

# 1. Latest uploads (free — pass @handle directly)
GET https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

# 2. Transcript of latest
GET https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true
Authorization: Bearer $TRANSCRIPT_API_KEY
User-Agent: YourAgent/1.0

Free tier: 100 credits, 300 req/min. Starter ($5/mo): 1,000 credits.

Copy-paste examples

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

1---
2name: youtube-full
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, first looks, 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.6.2"
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# YouTube Full
16 
17Complete YouTube toolkit via [TranscriptAPI.com](https://transcriptapi.com). Everything in one skill.
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## Transcript — 1 credit
35 
36```http
37GET https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true
38Authorization: Bearer $TRANSCRIPT_API_KEY
39User-Agent: YourAgent/1.0
40```
41 
42| Param | Required | Default | Values |
43| ------------------- | -------- | ------- | ------------------------------- |
44| `video_url` | yes | — | YouTube URL or 11-char video ID |
45| `format` | no | `json` | `json`, `text` |
46| `include_timestamp` | no | `true` | `true`, `false` |
47| `send_metadata` | no | `false` | `true`, `false` |
48 
49**Response** (`format=json`):
50 
51```json
52{
53 "video_id": "dQw4w9WgXcQ",
54 "language": "en",
55 "transcript": [{ "text": "...", "start": 18.0, "duration": 3.5 }],
56 "metadata": { "title": "...", "author_name": "...", "author_url": "..." }
57}
58```
59 
60## Video Info & Metadata
61 
62```http
63# Free — languages available for the transcript endpoint
64GET https://transcriptapi.com/api/v2/youtube/info?video_url=VIDEO_URL
65Authorization: Bearer $TRANSCRIPT_API_KEY
66User-Agent: YourAgent/1.0
67 
68# 1 credit — rich metadata (views, likes, description, duration, tags)
69GET https://transcriptapi.com/api/v2/youtube/video/metadata?video_url=VIDEO_URL&include=details,related
70Authorization: Bearer $TRANSCRIPT_API_KEY
71User-Agent: YourAgent/1.0
72```
73 
74`include` on `video/metadata` accepts `details` and/or `related`. Naming: `/video/metadata` was previously `/video/info` — the old path still works but is deprecated.
75 
76## Search — 1 credit/page
77 
78```http
79# Videos
80GET https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=video&limit=20
81Authorization: Bearer $TRANSCRIPT_API_KEY
82User-Agent: YourAgent/1.0
83 
84# Channels, playlists, or movies
85GET https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=channel&limit=10
86Authorization: Bearer $TRANSCRIPT_API_KEY
87User-Agent: YourAgent/1.0
88```
89 
90| Param | Required | Default | Validation |
91| ------- | -------- | ------- | ----------------------------------------------- |
92| `q` | yes | — | 1-200 chars |
93| `type` | no | `video` | `video`, `channel`, `playlist`, `movie` |
94| `sort` | no | `relevance` | `relevance`, `views` (first page only) |
95| `upload_date` | no | — | `hour`, `today`, `week`, `month`, `year` (videos, first page) |
96| `duration` | no | — | `short`, `medium`, `long` (videos, first page) |
97| `features` | no | — | e.g. `hd,subtitles,cc` (first page) |
98| `limit` | no | `20` | 1-50 |
99 
100## Channels
101 
102All channel endpoints accept `channel` — an `@handle`, channel URL, or `UC...` channel ID. No need to resolve first.
103 
104### Resolve handle — FREE
105 
106```http
107GET https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED
108Authorization: Bearer $TRANSCRIPT_API_KEY
109User-Agent: YourAgent/1.0
110```
111 
112Response: `{"channel_id": "UC...", "resolved_from": "@TED"}`
113 
114### Latest 15 videos — FREE
115 
116```http
117GET https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED
118Authorization: Bearer $TRANSCRIPT_API_KEY
119User-Agent: YourAgent/1.0
120```
121 
122Returns exact `viewCount` and ISO `published` timestamps.
123 
124### Channel feed (videos/shorts/streams) — 1 credit/page
125 
126```http
127# First page (100 items, tab defaults to "videos")
128GET https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA&tab=videos
129Authorization: Bearer $TRANSCRIPT_API_KEY
130User-Agent: YourAgent/1.0
131 
132# Most-viewed first (channel Videos tab, ~30 items)
133GET https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA&sort=popular
134Authorization: Bearer $TRANSCRIPT_API_KEY
135User-Agent: YourAgent/1.0
136 
137# Next pages (repeat the same tab AND sort)
138GET https://transcriptapi.com/api/v2/youtube/channel/videos?continuation=TOKEN&sort=popular
139Authorization: Bearer $TRANSCRIPT_API_KEY
140User-Agent: YourAgent/1.0
141```
142 
143Provide exactly one of `channel` or `continuation`. `tab` is `videos` (default), `shorts`, or `streams`. Response includes `continuation_token` and `has_more`.
144 
145**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.
146 
147When paging, send the same sort on each request.
148 
149**Item fields.** Every item carries `members_only`, `true` only when YouTube badges it "Members only", and those items have no `viewCountText`. `tab=streams` items 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`.
150 
151### Search within channel — 1 credit
152 
153```http
154GET https://transcriptapi.com/api/v2/youtube/channel/search?channel=@TED&q=QUERY&limit=30
155Authorization: Bearer $TRANSCRIPT_API_KEY
156User-Agent: YourAgent/1.0
157```
158 
159### Channel profile — 1 credit
160 
161```http
162GET https://transcriptapi.com/api/v2/youtube/channel/info?channel=@TED
163Authorization: Bearer $TRANSCRIPT_API_KEY
164User-Agent: YourAgent/1.0
165```
166 
167Returns title, handle, verified flag, subscriber/video counts, description, tags, thumbnails, banners, and `availableTabs`.
168 
169### Channel playlists — 1 credit/page
170 
171```http
172GET https://transcriptapi.com/api/v2/youtube/channel/playlists?channel=@TED
173Authorization: Bearer $TRANSCRIPT_API_KEY
174User-Agent: YourAgent/1.0
175```
176 
177Returns each playlist's `playlistId`, `title`, `url`, `videoCountText` — feed a `playlistId` into the Playlists endpoint below.
178 
179### Channel community posts — 1 credit/page
180 
181```http
182GET https://transcriptapi.com/api/v2/youtube/channel/posts?channel=@TED
183Authorization: Bearer $TRANSCRIPT_API_KEY
184User-Agent: YourAgent/1.0
185```
186 
187### Channel curated sections — 1 credit
188 
189```http
190GET https://transcriptapi.com/api/v2/youtube/channel/sections?channel=@TED
191Authorization: Bearer $TRANSCRIPT_API_KEY
192User-Agent: YourAgent/1.0
193```
194 
195`tab` is `featured` (default, Home page), `podcasts`, or `releases`.
196 
197## Playlists — 1 credit/page
198 
199Accepts `playlist` — a YouTube playlist URL or playlist ID.
200 
201```http
202# First page
203GET https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_ID
204Authorization: Bearer $TRANSCRIPT_API_KEY
205User-Agent: YourAgent/1.0
206 
207# Next pages
208GET https://transcriptapi.com/api/v2/youtube/playlist/videos?continuation=TOKEN
209Authorization: Bearer $TRANSCRIPT_API_KEY
210User-Agent: YourAgent/1.0
211```
212 
213Valid ID prefixes: `PL`, `UU`, `LL`, `FL`, `OL`. Response includes `playlist_info`, `results`, `continuation_token`, `has_more`.
214 
215## Credit Costs
216 
217| Endpoint | Cost |
218| ----------------- | -------- |
219| transcript | 1 |
220| info | **free** |
221| video/metadata | 1 |
222| search | 1/page |
223| channel/resolve | **free** |
224| channel/info | 1 |
225| channel/latest | **free** |
226| channel/videos | 1/page |
227| channel/search | 1 |
228| channel/playlists | 1/page |
229| channel/posts | 1/page |
230| channel/sections | 1 |
231| playlist/videos | 1/page |
232 
233## Validation Rules
234 
235| Field | Rule |
236| ---------- | ------------------------------------------------------- |
237| `channel` | `@handle`, channel URL, or `UC...` ID |
238| `playlist` | Playlist URL or ID (`PL`/`UU`/`LL`/`FL`/`OL` prefix) |
239| `q` | 1-200 chars |
240| `type` (search) | `video` (default), `channel`, `playlist`, `movie` |
241| `tab` (channel/videos) | `videos` (default), `shorts`, `streams` |
242| `sort` (channel/videos) | `latest`, `popular`, `oldest` (omit for the uploads feed) |
243| `tab` (channel/sections) | `featured` (default), `podcasts`, `releases` |
244| `include` (video/metadata) | `details`, `related` (comma-separated) |
245| `limit` | 1-50 |
246 
247## Errors
248 
249| Code | Meaning | Action |
250| -------- | ---------------- | ---------------------------------------------- |
251| 401 | Bad API key | Check key |
252| 402 | No credits | transcriptapi.com/billing |
253| 403/1010 | Cloudflare block | Add or fix User-Agent header |
254| 404 | Not found | Resource doesn't exist or no captions |
255| 408 | Timeout | Retry once after 2s |
256| 422 | Validation error | Check param format |
257| 429 | Rate limited | Wait, respect Retry-After |
258 
259## Typical Workflows
260 
261**Research workflow:** search → pick videos → fetch transcripts
262 
263```http
264# 1. Search
265GET https://transcriptapi.com/api/v2/youtube/search?q=machine+learning+explained&limit=5
266Authorization: Bearer $TRANSCRIPT_API_KEY
267User-Agent: YourAgent/1.0
268 
269# 2. Transcript
270GET https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true
271Authorization: Bearer $TRANSCRIPT_API_KEY
272User-Agent: YourAgent/1.0
273```
274 
275**Channel monitoring:** latest (free) → transcript
276 
277```http
278# 1. Latest uploads (free — pass @handle directly)
279GET https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED
280Authorization: Bearer $TRANSCRIPT_API_KEY
281User-Agent: YourAgent/1.0
282 
283# 2. Transcript of latest
284GET https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true
285Authorization: Bearer $TRANSCRIPT_API_KEY
286User-Agent: YourAgent/1.0
287```
288 
289Free tier: 100 credits, 300 req/min. Starter ($5/mo): 1,000 credits.
290 
291## Copy-paste examples
292 
293Every request in this file as a ready-to-run one-liner: [references/curl-examples.md](references/curl-examples.md)
294 

Discussion