SuperAPI AI Directory

scribe

Data & analytics

View repository

Updated 10-25 20:20

About this skill

Zoom AI Services Scribe

Background reference for Zoom AI Services Scribe across:

  • real-time audio transcription over WebSocket (wss://api.zoom.us/v2/aiservices/scribe/live)
  • synchronous single-file transcription (POST /aiservices/scribe/transcribe)
  • asynchronous batch jobs (/aiservices/scribe/jobs*)
  • webhook-driven batch status updates
  • Build-platform JWT generation and credential handling

Official docs:

Routing Guardrail

  • If the user needs live audio, uploaded media, or stored media transcribed into text, route here first.
  • If the user needs transcript text summarized, route to ../summarizer/SKILL.md.
  • If the user needs plain text translated, route to ../translator/SKILL.md.
  • If the user needs generic live audio for voice agents, captions, or microphone transcription, use Scribe Live Mode.
  • If the user needs Zoom meeting-native audio, video, screen share, chat, or transcript streams, route to ../rtms/SKILL.md.
  • If the user needs Zoom REST API inventory for AI Services paths, chain ../rest-api/SKILL.md.
  • If the user needs webhook signature patterns or generic HMAC receiver hardening, optionally chain ../webhooks/SKILL.md.

Quick Links

  1. concepts/auth-and-processing-modes.md
  2. scenarios/high-level-scenarios.md
  3. examples/live-mode-node.md
  4. examples/fast-mode-node.md
  5. examples/batch-webhook-pipeline.md
  6. references/api-reference.md
  7. references/environment-variables.md
  8. references/samples-validation.md
  9. references/versioning-and-drift.md
  10. troubleshooting/common-drift-and-breaks.md
  11. RUNBOOK.md

Core Workflow

  1. Get Build-platform credentials and generate an HS256 JWT.
  2. Choose live mode for continuous audio, fast mode for one short file, or batch mode for stored archives / large sets.
  3. Open the Live WebSocket or submit the Fast/Batch request.
  4. Handle Live events, a synchronous Fast response, or Batch polling/webhooks.
  5. Persist and post-process transcript JSON.

Hosted Fast-Mode Guardrail

  • The formal fast-mode API limits are 100 MB and 2 hours, but hosted browser flows can still time out before the upstream response returns.
  • Current deployed-sample observations:
    • ~17.2 MB MP4 completed in about 26s
    • ~38.6 MB MP4 completed in about 26-37s
    • ~59.2 MB MP4 completed in about 32-34s on the backend
    • some ~59.2 MB browser requests still surfaced as frontend 504 while backend logs later showed 200
  • Treat frontend 504 plus backend 200 as a browser/edge timeout race, not an automatic transcription failure.
  • For hosted UIs, prefer an async request/polling wrapper for fast mode instead of holding the browser open for the full upstream response.
  • For larger or less predictable media, prefer batch mode even when the file is still within the formal fast-mode size limit.

Live Mode Guardrails

  • Connect from a trusted backend with the live-asr WebSocket subprotocol and a Zoom AI Services JWT in the Authorization header.
  • Configure the session with session.update, then stream binary PCM16 little-endian, 16 kHz, mono audio in approximately 100 ms frames.
  • Keep control messages as JSON text. Do not Base64-encode audio or wrap binary frames in JSON.
  • Browser WebSocket clients cannot set the required authorization header. Relay browser audio through a backend that adds the JWT; never expose Build credentials or JWTs in client code.
  • Treat transcription.completed as the documented final segment event. Handle every error, especially error.fatal.
  • On shutdown, stop audio, send session.close, continue reading final events through session.closed, then close the socket.
  • Live Mode defaults: 60-minute maximum session duration and 30-second no-audio idle timeout. Concurrent limits are account-tier dependent.
  • Use repeated Fast Mode microphone uploads only as a legacy fallback when a WebSocket relay is impossible; Live Mode is the preferred continuous transcription path.

Endpoint Surface

Mode Method Path Use
Live WebSocket wss://api.zoom.us/v2/aiservices/scribe/live Continuous PCM16 audio and segment-level transcription events
Fast POST /aiservices/scribe/transcribe Synchronous transcription for one file
Batch POST /aiservices/scribe/jobs Submit asynchronous batch job
Batch GET /aiservices/scribe/jobs List jobs
Batch GET /aiservices/scribe/jobs/{jobId} Inspect job summary/state
Batch DELETE /aiservices/scribe/jobs/{jobId} Cancel queued/processing job
Batch GET /aiservices/scribe/jobs/{jobId}/files Inspect per-file results
Batch GET /aiservices/scribe/jobs/{jobId}/files/{fileId} Inspect one per-file result

High-Level Scenarios

  • On-demand clip transcription after a user uploads one recording.
  • Real-time transcription for voice agents, live captions, and browser microphones through a backend relay.
  • Batch transcription of stored S3 call archives.
  • Webhook-driven ETL pipeline that writes transcripts to your database/search index.
  • Re-transcription of Zoom-managed recordings after exporting them to your own storage.
  • Offline compliance or QA workflows that need timestamps, channel separation, and speaker hints.

Chaining

Operations

  • RUNBOOK.md - 5-minute preflight and debugging checklist.