Transcript API

Timed transcript of a public video: the platform's caption track, or speech-to-text on its audio when there is none.

Endpoints

4 endpoints return transcripts on Facebook, Instagram, TikTok and YouTube.

Schema

Every endpoint above returns this object as data. The standard meta comes with every response.

FieldTypeDescription
platformstringPlatform the media is hosted on.
idstringPlatform-native ID of the post (equals post.id).
urlstring (uri)Canonical URL of the post.
languagestring or nullBCP-47 language of the returned transcript; null when unknown.
sourcestringcaptions = platform caption track; asr = speech-to-text on the audio.
One of captions, asr
is_auto_generatedbooleanTrue when the track was machine-generated (platform auto-captions or ASR).
available_languagesstring[]BCP-47 caption languages the platform offers for this post; [] if none or not listed.
duration_msinteger or nullMedia duration in milliseconds; null when unknown.
segmentsobject[]Timed cues in order; never empty on success.
segments[].start_msintegerStart time in milliseconds from the beginning of the media.
segments[].end_msintegerEnd time in milliseconds from the beginning of the media.
segments[].textstringCue text, whitespace-normalized.
textstringFull transcript: segment texts joined with single spaces.
Example (Facebook)
{
  "data": {
    "available_languages": [
      "en-US"
    ],
    "duration_ms": 59861,
    "id": "1803909017420449",
    "is_auto_generated": false,
    "language": "en-US",
    "platform": "facebook",
    "segments": [
      {
        "end_ms": 4000,
        "start_ms": 33,
        "text": "But the standard that we should continuously aspire to exceed,"
      },
      {
        "end_ms": 7166,
        "start_ms": 4000,
        "text": "which is why we are bringing that intensity, that discipline, that"
      },
      {
        "end_ms": 11400,
        "start_ms": 7166,
        "text": "engineering ownership back to NASA, because great nations do not remain great"
      }
    ],
    "source": "captions",
    "text": "But the standard that we should continuously aspire to exceed, which is why we are bringing that intensity, that discipline, that engineering ownership back to NASA, because great nations do not remain great by being caretakers of history, but by continuously making history. We h…",
    "url": "https://www.facebook.com/reel/1803909017420449/"
  },
  "meta": {
    "request_id": "req_3f9c2a7d1e8b4c6a9f0e2d4b6a8c0e1f",
    "platform": "facebook",
    "source": "captions",
    "is_cached": false,
    "credits_charged": 1,
    "latency_ms": 1517,
    "fetched_at": "2026-10-25T12:00:00Z"
  }
}

Long arrays and strings are shortened for display.

Item errors

Besides the request-level errors every endpoint can return, transcript endpoints return:

CodeHTTPRetryMeaningWhat to do
not_found404NoThe item does not exist or was deleted.Check the URL or ID; do not retry.
private_or_unavailable403NoThe item exists but is private, age- or region-gated, or requires a login to view.Only public items can be fetched; do not retry.
no_transcript404NoThe media exists but has no transcript: no caption track and no speech to transcribe.Do not retry; try another language with lang if the platform offers one.