Rumble video transcript API
  1. Docs
  2. Rumble
  3. Rumble video transcript API

Rumble video transcript API

Captions when Rumble has them (its own auto captions count as captions); AI transcription of the audio when it does not.

GET /v1/rumble/video/transcript

GET /v1/rumble/video/transcript

Captions when Rumble has them (its own auto captions count as captions); AI transcription of the audio when it does not.

  • Cost: 1 credit for captions; AI transcription 1 up to 2 minutes, then 5 per started minute of the whole video
  • Cache: Results are kept up to 30 days; send max_age_days to reuse them for free.
  • Timeout: A request still running after about 25 seconds answers 202 with a job to poll (Batch and jobs).

Parameters#

NameTypeRequiredDescription
urlURLyesVideo URL (rumble.com/v...-title.html). Accepted hosts: rumble.com.
allow_long_transcriptionbooleannoTranscribe audio past 2 minutes with AI, at 5 credits per started minute of the whole video. Without it a longer video answers transcript_unavailable, which is free. Default false. Also accepted as allowLongTranscription.

Every request also accepts:

  • trim: true for a smaller response without null fields and extra.
  • raw: true to also get the platform's original object as raw.
  • max_age_days: accept a cached result up to this many days old, for 0 credits (Caching).

Example request#

Set your key in the environment first (see Authentication).

1curl -G "https://api.socialscrape.dev/v1/rumble/video/transcript" \2  -H "x-api-key: $SOCIALSCRAPE_API_KEY" \3  --data-urlencode "url=https://rumble.com/v79xhhm-discovery-why-glenn-wants-israel-to-sue-the-new-york-times.html"

Example response#

This is a sample from a recorded response, lists and long text are shortened. Status 200.

200 OKSample response
1{2  "ok": true,3  "credits_charged": 1,4  "credits_remaining": 4999,5  "cached": false,6  "cached_at": null,7  "request_id": "req_a413c023a29c4777d354c3ca",8  "data": {9    "object": "transcript",10    "platform": "rumble",11    "video_id": "v79xhhm",12    "url": "https://rumble.com/v79xhhm-discovery-why-glenn-wants-israel-to-sue-the-new-york-times.html",13    "language": "en",14    "source": "auto_captions",15    "duration_seconds": 1678.0,16    "text": "Let's get into these questions, and we'll try and get through as many as we can. The first one is from Christi Marbet, who says there were a few questions about this. They want you to comment on the following, quote, the Christoph piece on...",17    "segments": [18      {19        "start": 6.83,20        "end": 11.03,21        "text": "Let's get into these questions, and we'll try and get through as many as we can."22      },23      {24        "start": 11.03,25        "end": 15.63,26        "text": "The first one is from Christi Marbet, who says there were a few questions about this."27      },28      {29        "start": 15.63,30        "end": 17.73,31        "text": "They want you to comment on the following, quote,"32      }33    ],34    "available_languages": [35      "en"36    ],37    "extra": {38      "caption_key": "en-auto",39      "language_label": "English (auto)"40    }41  },42  "cursor": null,43  "has_more": null44}

Response#

A Transcript object in data.

See Data models for every field. The envelope around data is described in Responses.

Errors#

Failures are free: credits_charged is 0. Branch on error.code, never on the message.

CodeHTTPRetryMeaning
invalid_params400noA parameter is missing, unknown or has the wrong type.
unsupported_url400noThe URL is not one this endpoint accepts (wrong platform or form).
not_found404noThe platform says this profile, post or item does not exist.
transcript_unavailable404noNo captions exist and AI transcription is not possible for this media.

Every request can also fail with the account and platform errors listed on the Errors page.

Example error:

1{2  "ok": false,3  "error": {4    "code": "transcript_unavailable",5    "message": "No captions exist and AI transcription is not possible for this media.",6    "retryable": false7  },8  "credits_charged": 0,9  "request_id": "req_7b3b0c917e825875a6012291"10}