YouTube Transcript API

Get publicly available captions or a transcript from a YouTube video or Short

1 creditper request
GET
/v1/youtube/video/transcript
curl "https://api.scrapecreators.com/v1/youtube/video/transcript" \
  -H "x-api-key: "
{
  "success": true,
  "credits_remaining": 1000000,
  "credits_charged": 1,
  "videoId": "bjVIDXPP7Uk",
  "type": "video",
  "url": "https://www.youtube.com/watch?v=bjVIDXPP7Uk",
  "transcript": [
    {
      "text": "welcome back to the hell farm and the",
      "startMs": "160",
      "endMs": "1920",
      "startTimeText": "0:00"
    },
    {
      "text": "backyard trails we built these jumps two",
      "startMs": "1920",
      "endMs": "3919",
      "startTimeText": "0:01"
    }
  ],
  "transcript_only_text": "welcome back to the hell farm and the backyard trails we built these jumps two years ago and last year we just kind of rebuilt them and this year......",
  "language": "English"
}

Headers

x-api-key
string
required

Your Scrape Creators API key

Query Parameters

url
string
required

YouTube video or short URL

Example:
https://www.youtube.com/watch?v=bjVIDXPP7Uk
language
string

Language code, ie 'en', 'es', 'fr' or 'en-US'. Overrides the default track selection unless original_audio=true. If omitted, prefers captions matching the original spoken language when YouTube identifies the original audio. If that metadata is unavailable or ambiguous, prefers an auto-generated caption, otherwise the first caption track. If the requested or identified original language has no matching captions, the transcript will be null and no credits are charged.

Example:
en
original_audio
boolean

Set to true to return captions only in the original spoken language identified by YouTube. Takes precedence over language. If the original audio cannot be reliably identified or has no matching captions, transcript, transcript_only_text, and language are null and no credits are charged. No extra lookup or credit cost; a returned transcript costs the usual 1 credit. Omit or set to false for the existing default selection.

Example:
true
cache_max_age
string

If we have a response in the cache that is this many days old or newer, return the cached response (0 credits, with "cached": true and a "cached_at" timestamp). Otherwise, scrape a live result (1 credit). See the Caching page for details.

Example:
7d
Available options:
1d,
3d,
7d,
14d,
30d