Yoink integrates OpenAI Whisper for speech-to-text transcription. You upload a video or audio file, choose an output mode and model, and receive an async job ID. When the job completes you can download the result — aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/coah80/yoink/llms.txt
Use this file to discover all available pages before exploring further.
.txt transcript, an .srt / .ass subtitle file, or an MP4 with burned-in captions.
Transcription happens entirely on your server using local Whisper models (tiny through medium). The large model is also supported, but requires a valid OPENAI_API_KEY environment variable — it routes through the OpenAI API rather than running locally.
POST /api/transcribe accepts a direct multipart upload (same size limits as /api/convert). For large files use the chunked upload flow to get a filePath token, then call POST /api/transcribe-chunked with that token.POST /api/transcribe
Uploads a media file and starts an async transcription job.Form Fields
The video or audio file to transcribe. Any format with an audio stream is accepted. Maximum size is 8 GB.
What to produce from the transcription. One of:
text— plain.txtfile containing the raw transcriptsubtitles— an SRT or ASS subtitle file (setsubtitleFormatto choose)captions— a new MP4 with subtitles burned into the video frames using ASS rendering
Whisper model to use. Local models (no API key needed):
tiny, base, small, medium. Remote model (requires OPENAI_API_KEY): large. Larger models are slower but more accurate.Subtitle file format. One of
srt, ass. Only used when outputMode=subtitles. For outputMode=captions the server always uses ASS internally for burn-in rendering.ISO 639-1 language code (2–5 letters, e.g.
en, es, ja, zh-CN). Leave empty for automatic language detection. Invalid codes return an error.Font size for burned-in captions (
outputMode=captions or subtitles). Must be between 40 and 120. Has no effect on outputMode=text.Maximum words per caption line. Must be between 1 and 20 when set. Leave unset (or
0) for no limit. Has no effect on outputMode=text.Maximum characters per caption line. Must be between 10 and 80 when set. Leave unset (or
0) for no limit. Has no effect on outputMode=text.Minimum duration in seconds for a caption segment. Segments shorter than this are merged with the next. Must be between 0.1 and 5.0 when set. Has no effect on
outputMode=text.Minimum gap in seconds between consecutive caption segments. Must be between 0 and 1 when set. Has no effect on
outputMode=text.Session identifier for per-client job limiting (max 3 concurrent).
Response
Errors
| Status | Meaning |
|---|---|
400 | File missing, unsupported type, or invalid parameters |
429 | Too many concurrent jobs for this client |
POST /api/transcribe-chunked
Starts an async transcription job for a file previously assembled via the chunked upload flow. This endpoint always usesoutputMode=text and model=base — for other modes use the direct upload endpoint.
Body Fields
Token from
POST /api/upload/complete.Original filename hint used to derive the output filename. Defaults to
"media".Session identifier for per-client job limiting.
Response
Polling and Downloading
After starting a job with either endpoint, poll the status and retrieve the result using the shared job endpoints documented in the Convert & Compress page.GET /api/job//status
One of
processing, complete, error.Completion percentage, 0–100. The pipeline reports: 1% (analyzing), 2% (extracting audio), 5–85% (transcription), 86–99% (burn-in, captions mode only), 100% (complete).
Human-readable status message (e.g.
"Transcribing... 42%", "Burning captions... 67%").Error message, present only when
status is error.Present only when
outputMode=text and status=complete. Contains the full plain-text transcript inline — you do not need to call the download endpoint for text output, though you may.GET /api/job//download
Downloads the output file whenstatus is complete. The Content-Disposition filename uses the input file’s base name with an appropriate suffix:
| Output mode | Filename suffix | MIME type |
|---|---|---|
text | _transcript.txt | text/plain |
subtitles (SRT) | .srt | application/x-subrip |
subtitles (ASS) | .ass | text/x-ssa |
captions | _captioned.mp4 | video/mp4 |
curl Examples
- Plain text transcript
- SRT subtitle file
- Burned-in captions (MP4)