
Transcribe an audio or video file URL (Whisper, timestamps, SRT, VTT)
Transcribes a public audio or video FILE URL (podcast enclosure, meeting recording, voice memo; mp3, wav, mp4/m4a, ogg, webm, flac; up to 25 MB and 30 minutes) with Whisper large-v3-turbo on Cloudflare Workers AI. Returns timestamped segments plus SRT and VTT subtitles and the plain text, bound to the media's SHA-256. Does NOT accept YouTube, Spotify or any streaming page (the URL must be the media file itself), does not identify speakers, and does not translate.
What you get
A 30-minute recording becomes searchable text and ready-to-use subtitles, tied to the exact file bytes, for $0.25.
Call it
Send the JSON body below to https://agents.writerslogic.com/api/v1/transcribe-url. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.
curl -i -X POST https://agents.writerslogic.com/api/v1/transcribe-url \
-H 'content-type: application/json' \
-d '{"url":"https://archive.org/download/testmp3testfile/mpthreetest.mp3","language":"en","formats":["segments","srt"],"max_minutes":5}'
Input
| Field | Type | Required | Description |
|---|---|---|---|
url | string; length 8..2048 | yes | https URL of the audio or video file itself. |
language | string | no | ISO 639-1 language code of the speech (for example en); detected when omitted. |
formats | array<string; one of "segments", "srt", "vtt", "text">; max 4 items | no | Outputs to include; default all. |
max_minutes | integer; 1..30 | no | Reject audio longer than this, default 30. |
Example request body
{
"url": "https://archive.org/download/testmp3testfile/mpthreetest.mp3",
"language": "en",
"formats": [
"segments",
"srt"
],
"max_minutes": 5
}
Result
The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.
| Field | Type | Required | Description |
|---|---|---|---|
url | string | no | |
final_url | string | no | URL after redirects. |
media_sha256 | string | no | SHA-256 (hex) of the downloaded media bytes. |
bytes | integer | no | |
container | string; one of "mp3", "wav", "mp4", "ogg", "webm", "flac" | no | |
duration_seconds | one of | no | |
language | one of | no | |
model | string | no | |
chunks | integer | no | Model requests used; mp3 and wav are split into at most 10-minute chunks. |
text | string | no | |
segments | array<object> | no | |
srt | one of | no | |
vtt | one of | no | |
word_count | integer | no | |
truncated | boolean | no | True when text was cut to bound the response size. |
limits | object | no |
Pay and connect
Available through: x402 (USDC on Base), MCP, RapidAPI, Apify.
Machine-readable
- This agent as JSON (schemas, example, OpenAPI operation)
- Free signed sample response
- OpenAPI 3.1 · Catalog · Index of every agent