# Transcript

Schemas

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

## Endpoints

5 endpoints return transcripts on Facebook, Instagram, Rumble, TikTok and YouTube.

- [GETFacebook Video Transcript API`/v1/facebook/transcript`](https://staging-fly.socialtap.dev/docs/reference/facebook/transcript/index.md)
- [GETInstagram Reels Transcript API`/v1/instagram/transcript`](https://staging-fly.socialtap.dev/docs/reference/instagram/transcript/index.md)
- [GETRumble Transcript API`/v1/rumble/transcript`](https://staging-fly.socialtap.dev/docs/reference/rumble/transcript/index.md)
- [GETTikTok Transcript API`/v1/tiktok/transcript`](https://staging-fly.socialtap.dev/docs/reference/tiktok/transcript/index.md)
- [GETYouTube Transcript API`/v1/youtube/transcript`](https://staging-fly.socialtap.dev/docs/reference/youtube/transcript/index.md)

## Schema

Every endpoint above returns this object as `data`. The standard [`meta`](https://staging-fly.socialtap.dev/docs/reference/index.md#meta) comes with every response.

| Field | Type | Description |
| --- | --- | --- |
| `platform` | `string` | Platform the media is hosted on. |
| `id` | `string` | Platform-native ID of the post (equals post.id). |
| `url` | `string` (uri) | Canonical URL of the post. |
| `language` | `string` or `null` | BCP-47 language of the returned transcript; null when unknown. |
| `source` | `string` | captions = platform caption track; asr = speech-to-text on the audio. New values may be added.<br>One of `captions`, `asr` |
| `is_auto_generated` | `boolean` | True when the track was machine-generated (platform auto-captions or ASR). |
| `available_languages` | `string[]` | BCP-47 caption languages the platform offers for this post; \[\] if none or not listed. |
| `duration_ms` | `integer` or `null` | Media duration in milliseconds; null when unknown. |
| `segments` | `object[]` | Timed cues in order; never empty on success. |
| `segments[].start_ms` | `integer` | Start time in milliseconds from the beginning of the media. |
| `segments[].end_ms` | `integer` | End time in milliseconds from the beginning of the media. |
| `segments[].text` | `string` | Cue text, whitespace-normalized. |
| `text` | `string` | Full transcript: segment texts joined with single spaces. |
| `platform_specific` | `object` | Fields only this platform has, under its ID (platform_specific.\<platform>); each null when unknown. |
| `platform_specific.rumble` | `object` or `null` | A Rumble transcript's own fields. |
| `platform_specific.rumble.track_label` | `string` or `null` | Rumble's label of the caption track used ("English (auto)"); null for speech-to-text. |
| `platform_specific.rumble.caption_url` | `string` (uri) or `null` | The WebVTT file of the caption track used; null for speech-to-text. |
| `platform_specific.rumble.caption_tracks` | `object[]` | Every caption track Rumble offers for the video (WebVTT); \[\] when none. |
| `platform_specific.rumble.caption_tracks[].language` | `string` or `null` | Language code (en, es, …). |
| `platform_specific.rumble.caption_tracks[].label` | `string` or `null` | Rumble's label ("English (auto)"). |
| `platform_specific.rumble.caption_tracks[].url` | `string` (uri) or `null` | WebVTT file URL. |
| `platform_specific.rumble.caption_tracks[].is_auto_generated` | `boolean` or `null` | Generated by Rumble's speech recognition. |

## Item errors

Besides the [request-level errors](https://staging-fly.socialtap.dev/docs/errors/index.md) every endpoint can return, transcript endpoints return:

| Code | HTTP | Retry | Meaning | What to do |
| --- | --- | --- | --- | --- |
| `not_found` | 404 | No | The item does not exist or was deleted. | Check the URL or ID; do not retry. |
| `private_or_unavailable` | 403 | No | The item exists but is private, age- or region-gated, or requires a login to view. It shares 403 with forbidden (which is about the key): branch on the code. | Only public items can be fetched; do not retry. |
| `no_transcript` | 404 | No | The 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. |

---

[HTML version](https://staging-fly.socialtap.dev/resources/transcript/) · [Docs index for AI agents](https://staging-fly.socialtap.dev/llms.txt) · [All docs in one file](https://staging-fly.socialtap.dev/llms-full.txt)
