Skip to content
Developer hub v1
Documentation

api reference

Subtitles

Background jobs, status history and timed caption downloads.

Create a background job

POST /v1/subtitles accepts a multipart file containing Amharic audio or video, up to 25 MB and 3 minutes. Supply your workspace Bearer API key and an Idempotency-Key. The response is 202 with a job ID; processing continues after you disconnect. Retry an interrupted upload with the same file and key to recover the existing job.

bash
curl https://api.hohelabs.com/v1/subtitles   -H 'Authorization: Bearer hohe_YOUR_KEY'   -H 'Idempotency-Key: video-001'   -F '[email protected]'

Check status and return later

GET /v1/subtitles lists your workspace’s 30 most recent jobs. GET /v1/subtitles/{id} returns queued, working, ready or failed. Poll every 5–10 seconds. Results remain available for 7 days, including after browser closure or a server restart. Jobs belong to your workspace; another workspace cannot read them.

bash
curl https://api.hohelabs.com/v1/subtitles/JOB_ID -H 'Authorization: Bearer hohe_YOUR_KEY'

Download captions

A ready job includes timestamped words, caption cues, duration_seconds and usage. Append ?format=srt or ?format=vtt to the status URL to download a caption file. Review generated captions before publishing. This API produces subtitle files, not a rendered video or a translation.

bash
curl 'https://api.hohelabs.com/v1/subtitles/JOB_ID?format=srt' -H 'Authorization: Bearer hohe_YOUR_KEY' -o captions.srt

Save corrections

PATCH /v1/subtitles/{id} accepts JSON with updated_at from the current job and texts, one non-empty string per original cue. Timings stay unchanged. Saved corrections appear in result.edited_cues and subsequent SRT/VTT downloads. A stale updated_at returns 409 edit_conflict; reload the job before saving.

Billing and limits

Subtitle transcription uses the existing asr.transcribe price and monthly allowance. Charges and the completed result commit together: failed jobs are not charged, and polling or downloading does not charge again. At most two jobs per workspace can be queued or working. Temporary input is removed when processing finishes or fails; results expire after 7 days. Requests beyond the service queue limit return 429 or 503. Translation is not included.

All documentation