$5 free credits when you sign up Claim now
Marlin 2b now available Test it!
MiniMax H3 now available! Test it!
Browse all Models
Browse all
Browse all

Twitch & Kick VOD Transcription API

Send a VOD link. Get the full transcript, what happens in the video and the stream's metadata.

  • Full transcript
  • Speaker labels
  • Stream metadata
  • Video timeline

$5 in free credits to start. No Twitch or Kick API key needed.

Twitch
Kick

Twitch VOD to Text

Post the VOD link to one endpoint. You get a request ID right away. The transcript arrives on the job, or on your webhook, with a start and an end time on every line and speaker labels when you ask for them.

Request
curl -X POST 'https://api.deapi.ai/api/v2/audio/transcriptions' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -d '{
    "source_url": "https://www.twitch.tv/videos/VOD_ID",
    "model": "WhisperLargeV3Ct2",
    "include_ts": true,
    "diarize": true,
    "include_metadata": true
  }'

# → {"data": {"request_id": "c08a339c-…"}}
# Poll GET /api/v2/jobs/{request_id} or pass webhook_url.
import requests

response = requests.post(
    "https://api.deapi.ai/api/v2/audio/transcriptions",
    headers={"Authorization": "Bearer YOUR_API_TOKEN"},
    json={
        "source_url": "https://www.twitch.tv/videos/VOD_ID",
        "model": "WhisperLargeV3Ct2",
        "include_ts": True,
        "diarize": True,
        "include_metadata": True,
    },
)

print(response.json())
const response = await fetch(
  "https://api.deapi.ai/api/v2/audio/transcriptions",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer YOUR_API_TOKEN",
    },
    body: JSON.stringify({
      source_url: "https://www.twitch.tv/videos/VOD_ID",
      model: "WhisperLargeV3Ct2",
      include_ts: true,
      diarize: true,
      include_metadata: true,
    }),
  },
);

console.log(await response.json());
Result, shortened
{
  "language": "en",
  "segments": [
    { "start": 2712.4, "end": 2716.9,
      "speaker": "SPEAKER_00",
      "text": "Quick shout-out to tonight's sponsor." },
    { "start": 2717.0, "end": 2721.3,
      "speaker": "SPEAKER_01",
      "text": "Code STREAM gets you twenty percent off." }
  ]
}

// GET /api/v2/jobs/{request_id} → data.metadata
"metadata": {
  "title": "Ranked grind, sponsor at 45:00",
  "uploader": "streamer_name",
  "upload_date": "20260930",
  "view_count": 48210,
  "duration_seconds": 7214,
  "chapters": [
    { "title": "Just Chatting", "start_time": 0, "end_time": 1800 }
  ]
}

Illustrative values. The field names are what a Twitch job returns.

Kick VOD Transcription

Kick VODs take the same request as Twitch, at the same price. Only the link changes.

  • Twitch

    Full VODs, hours long

    https://www.twitch.tv/videos/<id>

    Paste the VOD link as source_url. A 2-hour stream is one request and one transcript.

  • Kick

    Same call, same price

    https://kick.com/<channel>/videos/<id>

    Kick VODs use the request above. Only the link changes, so both platforms run on one key and one bill.

Video Understanding for Twitch and Kick

A second call on the same link returns a timeline of what happens in the video: events with a start, an end and a description, plus scene boundaries. Up to 2 hours of video per call.

Fields: events[].start, events[].end, events[].description, scenes[]. Reference in the docs.

  1. The streamer loads into a new match while talking to chat.
  2. The streamer lifts a drink can toward the camera and smiles.
  3. Gameplay resumes and a large explosion fills the screen.

Illustrative output. The highlighted event lines up with the sponsor mention in the transcript above.

Request Parameters

POST /api/v2/audio/transcriptions. Turn on what you need and leave the rest off.

  • source_url string · required

    The Twitch or Kick VOD link.

  • model string · required

    The transcription model. WhisperLargeV3Ct2 adds word timestamps and speaker labels.

  • include_ts boolean

    A start and an end time on every line. Free.

  • ts_level segment · word

    A time for every line, or for every word. Word level adds 50%.

  • diarize boolean

    Labels who is speaking. Adds 50%. With word timestamps it is still one 50%.

  • lang string · en, de, es…

    Language hint. Leave it out to auto-detect across 99 languages.

  • include_metadata boolean

    The VOD's title, streamer, date, view count, length and category. $0.005 per request.

Set webhook_url with webhook_secret and the finished job comes to you. Full reference in the transcription docs.

Price per Hour of VOD

One rate for Twitch and Kick, billed per second of video. The $0.005 fee per request is already in every price here.

  • $0.26 / h

    Transcript, Twitch and Kick

    2-hour VOD
    $0.52
    3-hour VOD
    $0.78
    5-hour VOD
    $1.30
  • +50%

    Speaker labels or word timestamps

    One surcharge for either or both
    2-hour VOD with speakers
    $0.79
  • +$0.005

    Stream metadata

    Per request, any length
    Timestamps per line
    free
  • $0.28 / h

    Video understanding

    2-hour VOD
    $0.55
    Faster, less detail
    $0.18 / h

List prices on the standard tier. Video understanding is a separate call, up to 2 hours of video each. All rates on the pricing page.

Why deAPI for Twitch and Kick VODs?

Build it yourself and you run a downloader, storage and a GPU for multi-hour files. Here it is one request. Read the API docs.

  • Whole VODs in One Job

    Hours long, one request

    A 2-hour stream is one request and one transcript. You don't cut the file into chunks or stitch the text back together.

  • Twitch and Kick, One Integration

    Same endpoint, same price

    Only the link changes. YouTube, X and TikTok links run on the same call, under the same key.

  • No Platform API Key

    A public link is enough

    You don't register a Twitch app or keep a login alive. You send the VOD link with your deAPI key.

  • Try It Before You Wire It

    $5 in free credits

    Run a VOD in the playground first. New accounts start with $5 in credits and no card.

Enterprise

Twitch VOD Transcription at Scale

Processing more than 1,000 hours of video or 100,000 clips a month? We set a volume price, run your jobs on a dedicated worker on our own hardware and sign an SLA. Need a platform we don't list? If the video is public, we add it.

Whole VODs, hours long, in one job. A 2-hour stream is one request.

  • Volume pricing
  • Dedicated worker, outside the shared pool
  • SLA
  • New platforms on request
Talk to Sales

Tell us the platforms and the hours of video you process a month.

  • $5 in free credits
  • No credit card required
  • No Twitch or Kick API key

Transcribe your
first VOD

Try one VOD in the playground. Send the rest through the API, one request per VOD.

Short clips? See TikTok transcription. Uploading files? See video to text.

Frequently Asked Questions

Twitch and Kick VOD transcription

Send the VOD link (twitch.tv/videos/<id>) as source_url to POST /api/v2/audio/transcriptions. The call returns a request ID. Read the transcript from GET /api/v2/jobs/{request_id} or receive it on your webhook.
Yes. Send a Kick VOD link in the kick.com/<channel>/videos/<id> format. It is the same request and the same price as Twitch.
Yes. A whole VOD is one job, however long it is. A 2-hour stream is one request and costs $0.52; a 10-hour stream costs $2.60.
$0.26 per hour of VOD, billed per second, including the $0.005 fee per request. A 2-hour stream costs $0.52 and a 3-hour stream $0.78. Speaker labels or word timestamps add 50%, and stream metadata adds $0.005.
Yes. Every line has a start and an end time at no extra cost. Set ts_level to word for a time on every word, and diarize to true to label who is speaking. Either one adds 50%, and both together still add 50%.
99 languages. The language is detected automatically, or you can set it with the lang parameter, for example en.
No. You need a public VOD link and a deAPI key. New accounts get $5 in free credits.
Yes. Video understanding is a separate call on the same link. It returns a timeline of events, each with a start, an end and a description, plus scene boundaries, for up to 2 hours of video per call. It costs $0.28 per hour on Twitch and Kick.
Yes, from 1,000 hours of video or 100,000 clips a month. Talk to Sales and tell us the platforms and the hours of video you process a month.
Yes. At steady volume your jobs run on a dedicated worker on our own hardware, outside the shared pool, with an SLA.