YouTube API
YouTube Transcript
Get the full video transcript with timestamps.
POST
$0.01/call/v1/youtube/transcriptUsage
const res = await fetch('https://api.yepapi.com/v1/youtube/transcript', {
method: 'POST',
headers: {
'x-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({ id: 'dQw4w9WgXcQ' }),
});
const { data } = await res.json();
console.log(data.transcript);curl -X POST https://api.yepapi.com/v1/youtube/transcript \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id": "dQw4w9WgXcQ"}'Request Body
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
id | string | Yes | YouTube video ID | — |
lang | string | No | Language code | en |
Response
{
"ok": true,
"data": {
"id": "dQw4w9WgXcQ",
"selected": {
"languageCode": "en",
"title": "English (auto-generated)"
},
"languageMenu": {
"languageCode": "es-419",
"title": "Spanish (Latin America)"
},
"transcript": [
{
"startMs": "320",
"endMs": "14580",
"startTime": "0:00",
"text": "[Music]"
},
{
"startMs": "18800",
"endMs": "25960",
"startTime": "0:18",
"text": "We're no strangers to"
},
{
"startMs": "21800",
"endMs": "29119",
"startTime": "0:21",
"text": "love. You know the rules and so do"
}
]
}
}Response Fields
| Field | Type | Description |
|---|---|---|
ok | boolean | Whether the request succeeded |
data.id | string | YouTube video identifier |
data.selected | object | Currently selected transcript language |
data.selected.languageCode | string | Language code of the selected transcript (e.g. en) |
data.selected.title | string | Display name of the selected language (e.g. English (auto-generated)) |
data.languageMenu | object | Default alternative language option |
data.languageMenu.languageCode | string | Language code of the alternative (e.g. es-419) |
data.languageMenu.title | string | Display name of the alternative language |
data.transcript | object[] | Array of transcript segments |
data.transcript[].startMs | string | Segment start time in milliseconds |
data.transcript[].endMs | string | Segment end time in milliseconds |
data.transcript[].startTime | string | Human-readable start time (e.g. 0:18) |
data.transcript[].text | string | Transcript text content for this segment |