Video captions rejects a signed URL: what to send instead

Sume video captions only fetches public HTTPS video URLs and rejects signed, private and localhost links. How to caption a clip that sits behind a signed link.

4 min readSume
All posts

A signed or presigned storage link is the usual way to share a private video file, and Sume video captions refuses it. The docs, read 2026-10-05, say video_url must be a public HTTPS video URL that Sume can fetch, and the API rejects localhost, private-network, non-HTTPS, signed or private, and provider task URLs. The same screening applies to other URL inputs, such as face-swap sources.

In practice, a signed link expires and can carry credentials in its query string. The docs do not give Sume's reason, but a job that runs after you submit could find an expired link, so a stable public or artifact URL is safer.

What to send instead

  • A public HTTPS URL to the file, hosted where anyone can fetch it for the length of the job.
  • A media.sume.com artifact URL from an earlier Sume job, such as a finished generation or trim. The docs examples use this form.
  • A restyle of an earlier caption job: send source_caption_id and no video_url, and Sume reuses that source video.

Request with an artifact URL

curl -X POST https://api.sume.com/v1/video-captions \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: caption-001" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/example/clean.mp4",
    "style": "punch"
  }'

Cost and limits

Each accepted standalone caption job reserves and captures $0.20 for a video up to 60 seconds. If the clip has no speech, the job fails with caption_no_speech, and the way through is to send authored cues instead. The API does not accept SRT uploads.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume