Generated banner for Scribe
Generated logo for Scribe

Scribe

OpenAIOfficialCreated by ZoomDistributed by OpenAI

  • Skill
  • Tool integration
  • Automation and integrations
  • MIT
  • No issues found

From the author

Use when using Scribe.
— the description by Zoom

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured workflow for integrating Zoom Scribe AI services into your applications. It covers the end-to-end process of setting up transcription pipelines, from credential management and media ingestion to handling batch jobs and webhook callbacks. It distinguishes between synchronous fast-mode transcription and asynchronous batch processing, ensuring developers can select the appropriate mode for their specific latency and volume requirements.

What it does

  • Guides the setup of authentication using JWT for Zoom AI services.
  • Defines the workflow for both synchronous fast-mode and asynchronous batch transcription.
  • Outlines requirements for media ingestion, chunking, and persistence.
  • Provides instructions for implementing webhook callbacks for batch job notifications.
  • Offers troubleshooting steps for common issues like credential drift or processing errors.

When to use it

  • When you need to transcribe pre-recorded media files stored in cloud storage.
  • When building automated transcription pipelines that require batch processing.
  • When you need to integrate Zoom's AI transcription capabilities into an existing application.
  • When you need to verify the status or manage the lifecycle of batch transcription jobs.

Advantages

  • Provides a clear, step-by-step procedure for complex transcription integrations.
  • Helps distinguish between different processing modes to optimize for latency.
  • Includes essential guidance on security practices like webhook signature verification.
  • Centralizes configuration requirements for S3-based batch processing.

Usage examples

“How do I set up a batch transcription job for files in S3?”
The agent will guide you through defining the input S3 URI, configuring the batch job parameters, and setting up a webhook to receive completion notifications.
“What are the requirements for using the synchronous Scribe endpoint?”
The agent will explain the POST /aiservices/scribe/transcribe endpoint, required file and config fields, and how to handle the immediate response.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/openai/scribe/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip scribe.zip -d .agents/skills

Documentation by Zoom

Zoom AI Services Scribe

Use this skill for Zoom Scribe transcription pipelines over uploaded or stored media. If the user needs live meeting media, compare against RTMS or Meeting SDK bot workflows first.

Workflow

  1. Confirm the media source, size, language, expected latency, and whether fast mode or batch mode fits.

  2. Set up Build-platform credentials and JWT handling separately from application transcription logic.

  3. Design ingestion, chunking, retries, webhook callbacks, and persistence before connecting downstream AI workflows.

  4. Implement a minimal transcription request and response parser, then add batching and operational monitoring.

  5. Debug by checking credential audience, processing mode, media format, file size, backend timeout, and webhook delivery.

References

Files

concepts/auth-and-processing-modes.md

Auth and Processing Modes

Authentication Model

Scribe uses a Build-platform JWT bearer token.

JWT shape:

  • algorithm: HS256

  • issuer claim: Build-platform credential identifier used by the Scribe API

  • expiration: keep to one hour or less

Node example:

import { KJUR } from 'jsrsasign';

export function generateJWT(apiKey, apiSecret) {
  const iat = Math.round(Date.now() / 1000) - 30;
  const exp = iat + 60 * 60;
  return KJUR.jws.JWS.sign(
    'HS256',
    JSON.stringify({ alg: 'HS256', typ: 'JWT' }),
    JSON.stringify({ iss: apiKey, iat, exp }),
    apiSecret,
  );
}

Credential Naming Drift

Zoom docs currently use inconsistent labels across AI Services pages:

  • API key / API secret

  • SDK key / SDK secret

  • Build platform credentials

For implementation, treat them as the Build-platform JWT issuer/secret pair used to sign Scribe requests. Verify the exact labels in the current portal UI before shipping.

Fast Mode vs Batch Mode

ModeBest forTransportResult timing
Fast modeOne short file, interactive UXPOST /transcribeImmediate synchronous JSON
Batch modeArchives, long media, many filesPOST /jobs then status/webhookAsynchronous

Fast Mode Request Shape

  • required: file, config

  • common config: language, word_time_offsets, channel_separation, timestamps, output_format, profanity_filter, diarization

Batch Mode Request Shape

  • required: input, output, config

  • input modes: SINGLE, PREFIX, MANIFEST

  • storage provider currently surfaced in the OpenAPI as S3

  • optional webhook callback: notifications.webhook_url + notifications.secret

Operational Choice

Choose fast mode when:

  • user uploads one file

  • latency matters more than throughput

  • file size and duration are manageable

  • you are building pseudo-streaming over short microphone chunks from a browser UI

Choose batch mode when:

  • many files must be processed

  • transcripts can arrive later

  • storage-centric workflows fit better than direct upload

Browser Microphone Pseudo-Streaming

Scribe is file-oriented, so a browser microphone UX should be modeled as repeated short uploads, not a long-lived stream.

Recommended pattern:

  1. capture browser microphone audio with MediaRecorder

  2. flush short chunks to your backend

  3. submit each chunk through the async fast-mode wrapper

  4. poll by request ID

  5. append transcript chunks in order

Recommended starting values:

  • chunk size: 5 seconds

  • acceptable range: 5-10 seconds

  • concurrent in-flight chunks: 2-3

Why this works:

  • lowers the chance of frontend 504 on longer synchronous requests

  • gives incremental transcript updates without waiting for one long request

Guardrail:

  • this is pseudo-streaming over file uploads

  • this is not the preferred production design for live audio capture

  • use it only when a lightweight browser demo or rough incremental transcript is acceptable

  • avoid it when you need stable low-latency live transcription, lower overhead, or stronger continuity across utterances

  • for true live media streams, low-latency server ingest, or continuous in-meeting audio, use rtms

Requirements and compatibility

Written for: OpenAI Codex

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Node.js

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Zoom
Publisher
OpenAI (Official)
Distributed by
OpenAI
Source
openai/plugins · plugins/zoom/skills/scribe · commit d420d13
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from plugins/zoom/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Zoom or OpenAI.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download scribe.zip