Wyzie Subs
Transcribe from URL#
dryRun.Give Wyzie a link and the server fetches the audio itself. No upload, no ffmpeg on your side. It works with a direct audio or video file, an HLS or DASH stream, and pages on a few sites such as YouTube, Vimeo and Twitch. Media up to 24 hours long is accepted. It runs as a job, and you poll for the result or get a webhook.
Check the Cost First#
GET /transcribe/url/probe checks a link. It is free, it needs any valid API key, and it is limited to 30 calls a minute per key. It answers with the length, the title and what the job would cost. Add speakers=1, sounds=1 or translate=Spanish to include those extras in the estimate.
curl "https://sub.wyzie.io/transcribe/url/probe?url=https://example.com/episode-12.mp3&key=YOUR_KEY"{
"supported": true,
"duration": 3612,
"title": "Episode 12",
"estimateRequests": 12000
}A link that does not work is not an error. You get 200 with supported set to false and a short reason. Direct files answer in about 2.5 seconds. Pages on sites that need yt-dlp can take up to 20 seconds.
{
"supported": false,
"duration": null,
"title": null,
"estimateRequests": null,
"reason": "This site blocks server-side fetching"
}You can also send dryRun: true to POST /transcribe/url. It answers { duration, title, estimateRequests } and charges nothing.
The API: POST /transcribe/url#
POST /transcribe/url takes a JSON body. Everything is checked before you are charged.
curl -X POST "https://sub.wyzie.io/transcribe/url" \
-H "Content-Type: application/json" \
-d '{"key":"YOUR_KEY","url":"https://example.com/episode-12.mp3","format":"srt","language":"en"}'| Field | Example | Description |
|---|---|---|
| key | YOUR_KEY | A Pro API key. Required. |
| url | https://example.com/episode-12.mp3 | A public http or https link. Links to private or local addresses are refused. Required. |
| format | srt | srt (default), vtt, ass, sub, sbv, ttml, txt or json. See Output Formats below. |
| language | en | The spoken language as a two-letter ISO 639-1 code. Leave it out to detect it from the audio. Required with speakers. |
| speakers | true | 1 to label who is speaking, such as [Speaker 1]. Needs language set to de, en, es, fr, hi, it, ja, nl, pt or ru. Costs 60,000 per 30 minutes. |
| sounds | true | 1 to add sound tags such as [Music] and [Applause] between speech (beta). Costs 100 more per started 30 minutes. It misses some sounds, such as doorbells and door slams. If it fails you still get the transcript and the 100 is refunded. Answers 503 before any charge if the classifier is unavailable. Not available for bulk. |
| translate | Spanish | A language to translate the subtitle into, such as Spanish or pt-BR. Adds a flat 25 requests. |
| cache | 0 | 0 keeps this audio out of the recognition cache: it is neither read from nor written to. See Recognition reuse below. |
| webhook | https://example.com/wyzie | An https URL to call when the job ends. See Webhooks. |
| dryRun | true | true to get the length, title and estimate without starting a job or charging anything. |
The job is charged up front and answers 202 with the job id:
{
"jobId": "5a29c3f6-4bfb-4f03-b429-4b4d935acdbd",
"pollUrl": "https://sub.wyzie.io/transcribe/5a29c3f6-4bfb-4f03-b429-4b4d935acdbd",
"estimateRequests": 12000,
"duration": 3612
}Poll GET /transcribe/{jobId}?key=YOUR_KEY every 10 seconds or so. It answers 202 until the subtitle is ready. The job and webhook payloads are the same as for Wyzie Transcribe. If a job fails, the charge is refunded.
What Links Work#
Direct links to audio and video files work best. HLS (.m3u8) and DASH (.mpd) streams work too. For YouTube, Vimeo, Twitch and a few similar sites, Wyzie reads only the audio. Redirects are followed, but every address the server connects to must be public.
YouTube-like sites may block server-side fetching. They can ask for a sign-in or a bot check, or answer 403. When that happens the probe says This site blocks server-side fetching, and a job that hits it fails and is refunded. Wyzie does not try to get around these blocks. If a page is blocked, download the audio yourself and use Wyzie Transcribe.
Cost#
The price is 6,000 requests for each started 30 minutes of media, plus the same extras as Wyzie Transcribe for speaker labels, sounds and translation. If your balance is too short you get 402 before anything starts.
Each key can run 2 link jobs at once, and the server runs 4 at once. A job can download up to 3 GB and runs for at most 2 hours. A job that is running when the server restarts is refunded, so try again.
Errors
| Status | Meaning |
|---|---|
| 400 | A bad link, format, language or webhook. Private and local links are refused here. |
| 401 | No key. |
| 402 | Not enough requests left for this file's length and options. |
| 403 | A free key, or an invalid one. |
| 413 | The media is longer than 24 hours. |
| 422 | The link cannot be used. The body has a reason, such as a blocked site. |
| 429 | You already have 2 link jobs running, or you probed more than 30 times a minute. |
| 503 | The server is busy with link jobs. Nothing was charged. Try again soon. |
The server keeps the audio only while the job runs and deletes it when the job ends.