> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/rumble/videos-transcript>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/rumble/videos-transcript.mdx>

---

# Rumble transcript API

Read existing Rumble caption tracks as plainText plus optional timed segments — no charge when captions are missing.

`GET /v1/rumble/videos/transcript` takes a required public video `url`. On a found lookup, `data.transcript` includes `language` (when reported), `plainText`, and optional `segments` (`text`, `startMs`, `endMs`). `data.video` carries the resolved id and canonical URL. Branch on `data.lookupStatus` (`found` / `not_found` / `lookup_failed`) before you write rows.

This route only returns captions that already exist on the video. There is no `useAiFallback` speech-to-text path. Billing is 1 credit when a transcript is found and 0 when captions are unavailable — confirm with `meta.creditsCharged`. For title, metrics, and `captionTracks` listings without the spoken body, use `GET /v1/rumble/videos`. Comments are `GET /v1/rumble/videos/comments`.

## Request

- **Endpoint:** `GET /v1/rumble/videos/transcript`
- **Credits:** 1 credit when a transcript is found
Free when captions are unavailable
- **Input:** by video URL
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/rumble/videos/transcript/get)
- **Platform page:** [/platforms/rumble](https://www.socialfetch.dev/platforms/rumble)

## FAQ

### How do I get a Rumble video transcript via API?

Call `GET /v1/rumble/videos/transcript` with your Social Fetch API key (`x-api-key`) and a public video `url`. Read `data.lookupStatus`, then `data.transcript.plainText` or `data.transcript.segments`. See the API docs for parameters and examples.

### How much does the Rumble transcript endpoint cost?

1 credit when a transcript is found; 0 credits when a transcript is unavailable, as documented on this page. Confirm every response with meta.creditsCharged — that field is the billing source of truth.

### What does the Rumble transcript response look like?

When found, `data.transcript` includes `language` (when reported), `plainText`, and optional `segments` (`text`, `startMs`, `endMs`). `data.video` carries the resolved video id and URL. Always branch on `data.lookupStatus` before treating the transcript as present.

### What URL formats does the Rumble transcript API accept?

Public Rumble video URLs (watch-page links to a single video). Pass one `url` per request. Private or deleted videos resolve as `not_found` rather than a fake empty transcript.

### Do I pay when Rumble has no captions?

No. When captions are unavailable, `lookupStatus` is not `found` and the operation charges 0 credits. Persist `meta.requestId` when you need to debug a miss, and still check `meta.creditsCharged`.

### Does this run speech-to-text when Rumble has no captions?

No. This route returns captions when they exist. There is no TikTok-style `useAiFallback` on Rumble transcripts. If you need title and engagement without caption text, use `GET /v1/rumble/videos` instead.

### How is this different from Rumble video detail?

`GET /v1/rumble/videos` returns metadata, channel, metrics, and `captionTracks` listings. `GET /v1/rumble/videos/transcript` returns the spoken caption content (`plainText` and timed segments when available). Call video detail for views and title; call transcript for caption text.
