Transcribe video to text with an API: send the audio track

Transcribe video to text by API: send the audio track to speech-to-text. On Sume, inspect a Sume-hosted clip or send your own file's audio to STT 1.0.

5 min readSume
All posts

To transcribe a video to text with an API, send the video's audio track to a speech-to-text endpoint and read back the transcript with word timestamps; speech recognition works on the sound, not the pictures. With Sume, a clip already on Sume goes to POST /v1/video-inspect with transcribe: true. For your own MP4, extract the audio, put it at a public HTTPS URL, and send it to STT 1.0 at POST /v1/stt-1.0/transcribe.

Inspect is documented in Video inspect. STT 1.0 is specified in the OpenAPI document behind the Sume API reference, which the API reference docs page names as the source for exact request and response shapes. All were read on 2026-09-27.

Which route fits my video?

Pick the route by where the video file lives. A link to a video page on another site works with neither: STT 1.0 needs an audio file URL, and inspect reads only files on your workspace's media.sume.com.

From Video inspect and the Sume API reference, read 2026-09-27.
DetailVideo already on SumeYour own video file
EndpointPOST /v1/video-inspect with transcribe: truePOST /v1/stt-1.0/transcribe
Inputvideo_url: your workspace's media.sume.com artifact or assetaudio_url: a public HTTPS audio URL
Audio extractionNone: inspect runs STT 1.0 on the clip's audioYours, before the call
Default modesync: waits up to 30 seconds, then 200 or 202async: returns at once with polling URLs
Transcripttext, words[], optional segments[], and audio_urltext, words[], optional segments[], and language fields when available
Length per requestA duration hint of up to 600 secondsduration_seconds up to 600: “Maximum 10 minutes”

How do I transcribe my own MP4 file?

Send its audio, not the video. STT 1.0 documents audio_url as a public HTTPS audio URL, and the request has no file upload field. Sending a video file there isn't documented, so prepare the audio on your side:

  • Extract the audio track with your own tools. For reference, Sume's audio detach page calls 16 kHz mono “the STT shape”.
  • Put the audio file where STT 1.0 can fetch it over public HTTPS, such as your own storage.
  • Submit it with duration_seconds set to its length (1–600) and, for sentence timestamps, segmentation. Then poll the job and read its result, as in Speech-to-text API with word timestamps.
curl -X POST https://api.sume.com/v1/stt-1.0/transcribe \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: webinar-042-audio" \
  -d '{
    "audio_url": "https://example.com/audio/webinar-042.m4a",
    "duration_seconds": 540,
    "segmentation": { "mode": "sentence" }
  }'

How do I transcribe a video that's already on Sume?

Use video inspect when the clip is your workspace's media.sume.com artifact or asset, such as the output of an earlier Sume job. With transcribe: true, inspect runs STT 1.0 on the clip's audio, so there is nothing to extract. Idempotency-Key is required, and off-host URLs are rejected at admit.

  • The default sync mode waits up to 30 seconds and answers 200 with the finished inspect, or 202 with a job to poll. Read it later at GET /v1/video-inspect/{id}.
  • A clip with no audio track fails with inspect_source_has_no_audio. Check probe.has_audio first; a frames: false inspect is enough.
  • Video inspect API covers the probe and stills that come back too.
curl -X POST https://api.sume.com/v1/video-inspect \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: webinar-042-inspect" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/webinar.mp4",
    "transcribe": true,
    "segmentation": { "mode": "sentence" }
  }'

What if the video is longer than 10 minutes?

Transcribe it in parts. STT 1.0's duration_seconds stops at 600, and inspect's duration hint also tops out at 600 seconds. Cut the audio into parts of 10 minutes or less, transcribe each part, and add each part's start time to its timestamps; Transcribe long audio files walks through it.

For a video on Sume, audio detach with a range returns that part of the track as a new audio file on media.sume.com to send to STT 1.0. Detach reads a source of up to 1,800 seconds; keep each range at 600 seconds or less so every part fits STT 1.0. Each detach is its own job with a per-job rate; the docs say to confirm it in GET /v1/catalog.

How much does it cost to transcribe a video?

Both routes bill the transcript per audio minute at the STT 1.0 public rate, $0.01 per audio minute on API pricing, plus a 5.5% agent fee by default. Omit duration_seconds and Sume reserves 1 minute. On inspect, the probe and stills are unbilled; only the transcript reserves.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume