Live
Botverse Transcribe
Turn any video or audio call into a clean, speaker-named transcript — in one call. Hand it the attendee list and get back txt, json, captions, or a formatted Word/PDF. Diarization and AI speaker-naming included.
MCP endpoint
https://botverse.cloud/mcp
Inputs
any video / audio format
Outputs
txt · json · srt · vtt · docx · pdf
Transcribing audio is a commodity. The hard part — the part that makes a transcript useful — is knowing who said what, and getting a document you can actually send to someone. Botverse Transcribe does both in a single call.
How it works
One tool call runs the whole pipeline server-side — submit the job and get on with other work while it runs:
Normalise
Any video or audio is converted to ASR-optimal audio (16 kHz mono FLAC). Video buys no speaker benefit — diarization is acoustic — so we always work from the audio.
Transcribe
Speech-to-text with speaker diarization separates distinct voices (Speaker 0, Speaker 1, …) and timestamps every word.
AI-name the speakers
Given your attendee list, an AI pass reads self-introductions, how people address each other, and role/topic cues to assign each anonymous speaker a real name — with a confidence score, labelled best-effort. It never invents content; it only assigns identity.
Render
The transcript is assembled with a header (date, duration, participants) and delivered in the format you asked for — including a properly formatted Word doc or PDF.
✓The attendee list is what sets this apart. Speech-to-text often hears names phonetically and spells them wrong; the naming pass maps them back to the correct spelling from your roster — the difference between a transcript that looks sloppy and one you can hand to a client. Even a partial list helps.
Outputs
| output_format | What you get |
|---|
| txt | Clean transcript with speaker names and timestamps — for reading or feeding to a model. |
| json | Structured segments: start/end times, speaker label, resolved name, confidence, text — for programmatic use. |
| srt | SubRip caption file, ready to drop onto the video. |
| vtt | WebVTT caption file. |
| docx | Formatted Word document with a titled header and bold speaker attribution. |
| pdf | Formatted PDF, rendered from the same document source. |
Request one primary output_format, and optionally also_deliver extra formats in the same job (e.g. JSON plus a PDF).
| Situation | Recommended tool |
|---|
| File is at a public URL, or a share link from Dropbox, Google Drive, OneDrive (personal or business), SharePoint, or Box — share links auto-resolve | transcribe_from_url — one call, no upload |
| File is on the user's machine, or larger than a URL fetch allows (up to 2 GB) | get_upload_url → PUT → transcribe_media |
transcribe_from_url
Fetch a video or audio file from a public HTTPS URL (or cloud share link) and transcribe it. Returns a job_id immediately — poll get_job_status (it reports a live stage) until complete, then get_download_url or get_output_content.
Parameters
| Name | Type | Req | Description |
|---|
| source_url | string | yes | Public HTTPS URL of the source video or audio file. Cloud share links are resolved automatically. |
| output_format | string | yes | Primary deliverable: txt | json | srt | vtt | docx | pdf |
| options | object | no | Optional — see the options reference below (attendees, language, diarize, max_speakers, title, include_timestamps, also_deliver). |
Response fields
| Field | Type | Description |
|---|
| job_id | string | Poll get_job_status with this. |
| status | string | "pending" on success. |
| consent_notice | string | All-party consent reminder — surfaced on every submission. |
transcribe_media
Transcribe an already-uploaded file. Call get_upload_url first, PUT the raw bytes, then call transcribe_media with the object_key. Same options as transcribe_from_url.
Parameters
| Name | Type | Req | Description |
|---|
| object_key | string | yes | The object_key returned by get_upload_url. |
| output_format | string | yes | Primary deliverable: txt | json | srt | vtt | docx | pdf |
| options | object | no | Optional — same options object as transcribe_from_url. |
Response fields
| Field | Type | Description |
|---|
| job_id | string | Poll get_job_status with this. |
| status | string | "pending" on success. |
The options object
| Field | Type | Description |
|---|
| attendees | array | Known participants: [{ name, gender?, role? }]. Drives speaker naming — even a partial list helps. Omit to keep anonymous “Speaker 1/2” labels. |
| language | string | BCP-47 tag (e.g. "en-US") or "auto" to detect. Default: auto. |
| diarize | boolean | Separate and label distinct speakers. Default: true. |
| max_speakers | number | Hint for the expected number of speakers (1–30); improves accuracy. |
| title | string | Document header title. Auto-derived if omitted. |
| include_timestamps | boolean | Include timestamps in the output. Default: true. |
| also_deliver | array | Extra rendered copies in the same job, e.g. ["docx","pdf"]. |
Example
transcribe_from_url
tools/call transcribe_from_url
{
"source_url": "https://storage.example.com/all-hands.mp4",
"output_format": "docx",
"options": {
"attendees": [
{ "name": "Sarah Chen", "role": "host" },
{ "name": "Mike Torres" },
{ "name": "Priya Patel" }
],
"also_deliver": ["json"]
}
}
// -> { job_id, status: "pending", consent_notice: "..." }Consent & liability
⚠Recording and transcribing conversations is regulated — many jurisdictions require the consent of allparties. By submitting a job you confirm you have that consent. Botverse processes the audio you supply and accepts no liability for recordings made or transcribed without it. The notice is returned on every submission and printed in the transcript header.
Pricing
~$5 for a 60-minute meeting — billed at $0.08 per audio-minute, with diarization and AI speaker-naming included (no add-ons to reason about). A formatted DOCX adds $0.10 and a PDF adds $0.15. Charged on completion from the same prepaid wallet as the rest of Botverse; credits never expire.
ℹLimits: source up to 2 GB and 60 minutes. Outputs are available for 24 hours. In a sandboxed agent environment, use get_output_content to retrieve the result inline rather than fetching the S3 download URL.