YepAPI
YouTube API

YouTube Transcript

Get the full video transcript with timestamps.

POST/v1/youtube/transcript
$0.01/call

Usage

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

ParameterTypeRequiredDescriptionDefault
idstringYesYouTube video ID
langstringNoLanguage codeen

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

FieldTypeDescription
okbooleanWhether the request succeeded
data.idstringYouTube video identifier
data.selectedobjectCurrently selected transcript language
data.selected.languageCodestringLanguage code of the selected transcript (e.g. en)
data.selected.titlestringDisplay name of the selected language (e.g. English (auto-generated))
data.languageMenuobjectDefault alternative language option
data.languageMenu.languageCodestringLanguage code of the alternative (e.g. es-419)
data.languageMenu.titlestringDisplay name of the alternative language
data.transcriptobject[]Array of transcript segments
data.transcript[].startMsstringSegment start time in milliseconds
data.transcript[].endMsstringSegment end time in milliseconds
data.transcript[].startTimestringHuman-readable start time (e.g. 0:18)
data.transcript[].textstringTranscript text content for this segment

On this page