Video inspect 400 video_inspect_transcribe_required: the fix

Sending language_code, segmentation or duration_seconds to Sume video inspect without transcribe true returns a 400. Why, and the request that works.

4 min readSume
All posts

Sume video inspect returns 400 video_inspect_transcribe_required when a request carries language_code, segmentation, or duration_seconds and transcribe is not true. Those three fields only mean something to the speech-to-text step, so the API refuses them instead of ignoring them quietly.

This is spelled out in the video inspect docs, read 2026-10-05: send the STT fields only with transcribe: true.

The request that works

Add the flag, and give the hints you meant to give.

curl -X POST https://api.sume.com/v1/video-inspect \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: inspect-ko-001" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
    "transcribe": true,
    "language_code": "ko",
    "segmentation": {"mode": "sentence"},
    "duration_seconds": 90
  }'

What each hint does

  • language_code is an STT hint such as en or ko. Without it, STT auto-detects.
  • segmentation.mode: "sentence" adds gapless sentence segments[] shaped like caption lines. silence_split_seconds takes 0.2 to 3.
  • duration_seconds is a billing hint. Without it Sume reserves 1 minute, and the hint maxes at 600 seconds.

Cost and a silent-clip trap

The transcript adds the public STT rate of $0.01 per audio minute on top of the Modal compute reservation for the inspect. A clip with no audio fails with inspect_source_has_no_audio, so check probe.has_audio with a frames: false call first when you are not sure.

The 400 is returned at admit, before anything is reserved, so hitting it costs nothing.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume