Twitch clip transcript API
  1. Docs
  2. Twitch
  3. Twitch clip transcript API

Twitch clip transcript API

Native captions when the clip has them; AI transcription of the clip's audio when it does not.

GET /v1/twitch/clip/transcript

GET /v1/twitch/clip/transcript

Native captions when the clip has them; AI transcription of the clip's 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
urlURLyesClip URL (clips.twitch.tv/... or twitch.tv/<user>/clip/...). Accepted hosts: twitch.tv.
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.
ai_fallbackbooleannoTranscribe the audio with AI when the clip has no captions. Set false to get no transcript instead, and no AI charge. Default true. Also accepted as use_ai_as_fallback.

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/twitch/clip/transcript" \2  -H "x-api-key: $SOCIALSCRAPE_API_KEY" \3  --data-urlencode "url=https://www.twitch.tv/mish/clip/WrongMagnificentTomatoCorgiDerp-C720OEMqocSPbrqA"

Example response#

This is a sample with illustrative values. 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_4a9ab8844042e040532f5aeb",8  "data": {9    "object": "transcript",10    "platform": "twitch",11    "video_id": "123456789",12    "url": "https://www.twitch.tv/mish/clip/WrongMagnificentTomatoCorgiDerp-C720OEMqocSPbrqA",13    "language": "en",14    "source": "ai",15    "duration_seconds": 15.0,16    "text": "Example transcript text. This is illustrative, not the clip's real speech.",17    "segments": [18      {19        "start": 0.0,20        "end": 15.0,21        "text": "Example transcript text. This is illustrative, not the clip's real speech."22      }23    ],24    "available_languages": null,25    "extra": null26  },27  "cursor": null,28  "has_more": null29}

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_a9e118e9b324c7c493a138a2"10}