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.

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.
| Detail | Video already on Sume | Your own video file |
|---|---|---|
| Endpoint | POST /v1/video-inspect with transcribe: true | POST /v1/stt-1.0/transcribe |
| Input | video_url: your workspace's media.sume.com artifact or asset | audio_url: a public HTTPS audio URL |
| Audio extraction | None: inspect runs STT 1.0 on the clip's audio | Yours, before the call |
Default mode | sync: waits up to 30 seconds, then 200 or 202 | async: returns at once with polling URLs |
| Transcript | text, words[], optional segments[], and audio_url | text, words[], optional segments[], and language fields when available |
| Length per request | A duration hint of up to 600 seconds | duration_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_secondsset 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
syncmode waits up to 30 seconds and answers200with the finished inspect, or202with a job to poll. Read it later atGET /v1/video-inspect/{id}. - A clip with no audio track fails with
inspect_source_has_no_audio. Checkprobe.has_audiofirst; aframes: falseinspect 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
- Translate audio to English: transcribe, translate, speak
Translate audio to English in three steps: transcribe the recording with language detection, translate the text, then voice it with TTS if needed.
- Translate a video's voiceover by API: STT, TTS, Timeline
Replace a video's spoken track with Sume: transcribe it, translate the lines yourself, speak them with TTS, and render the video over the new voice.
- How to upscale an image to 3000x3000 (or any exact size)
Divide the target size by the current size to get the upscale factor, then run it: 1000×1000 at 3× is 3000×3000. Sume takes any factor from 1 to 4.
- Video editing API: which Sume endpoint for each edit
A task-to-endpoint map of Sume's video editing API: which call cuts, crops, captions, joins, or re-voices a video, and which guide explains each edit.
Written by Sume