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
Price
~$5 / hour of audio
Max source
2 GB

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:

1
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.
2
Transcribe
Speech-to-text with speaker diarization separates distinct voices (Speaker 0, Speaker 1, …) and timestamps every word.
3
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.
4
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_formatWhat you get
txtClean transcript with speaker names and timestamps — for reading or feeding to a model.
jsonStructured segments: start/end times, speaker label, resolved name, confidence, text — for programmatic use.
srtSubRip caption file, ready to drop onto the video.
vttWebVTT caption file.
docxFormatted Word document with a titled header and bold speaker attribution.
pdfFormatted 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).

Which tool to use

SituationRecommended 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-resolvetranscribe_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

Tools

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
NameTypeReqDescription
source_urlstringyesPublic HTTPS URL of the source video or audio file. Cloud share links are resolved automatically.
output_formatstringyesPrimary deliverable: txt | json | srt | vtt | docx | pdf
optionsobjectnoOptional — see the options reference below (attendees, language, diarize, max_speakers, title, include_timestamps, also_deliver).
Response fields
FieldTypeDescription
job_idstringPoll get_job_status with this.
statusstring"pending" on success.
consent_noticestringAll-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
NameTypeReqDescription
object_keystringyesThe object_key returned by get_upload_url.
output_formatstringyesPrimary deliverable: txt | json | srt | vtt | docx | pdf
optionsobjectnoOptional — same options object as transcribe_from_url.
Response fields
FieldTypeDescription
job_idstringPoll get_job_status with this.
statusstring"pending" on success.

The options object

FieldTypeDescription
attendeesarrayKnown participants: [{ name, gender?, role? }]. Drives speaker naming — even a partial list helps. Omit to keep anonymous “Speaker 1/2” labels.
languagestringBCP-47 tag (e.g. "en-US") or "auto" to detect. Default: auto.
diarizebooleanSeparate and label distinct speakers. Default: true.
max_speakersnumberHint for the expected number of speakers (1–30); improves accuracy.
titlestringDocument header title. Auto-derived if omitted.
include_timestampsbooleanInclude timestamps in the output. Default: true.
also_deliverarrayExtra 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: "..." }
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.