Generated banner for Scribe
Generated logo for Scribe

Scribe

AnthropicOfficialCreated by ZoomDistributed by Anthropic

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

From the author

Reference skill for Zoom AI Services Scribe. Use after routing to a transcription workflow when handling uploaded or stored media, Build-platform JWT auth, fast mode transcription, batch jobs, or transcript pipeline design.
— the description by Zoom

AutoGineer summary

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

Scribe is a Zoom AI service providing transcription capabilities for uploaded or stored media. It supports both synchronous fast-mode transcription for individual files and asynchronous batch processing for larger archives. The skill covers authentication via Build-platform JWTs, API endpoint usage, webhook integration for status updates, and architectural patterns for handling media transcription pipelines.

What it does

  • Provides documentation for synchronous transcription of single media files.
  • Details asynchronous batch job submission and management.
  • Explains Build-platform JWT generation and credential handling.
  • Outlines webhook integration for receiving batch job status notifications.
  • Offers guidance on managing media inputs and transcript outputs via S3.
  • Provides API reference for managing transcription jobs and file results.

When to use it

  • When you need to transcribe stored audio or video files.
  • When implementing batch processing for large sets of media files.
  • When building an ETL pipeline to store transcripts in a database.
  • When you need to integrate Zoom transcription into custom applications using JWT authentication.

Advantages

  • Supports both synchronous and asynchronous processing modes.
  • Enables automated transcription workflows for stored media.
  • Provides structured API endpoints for job lifecycle management.
  • Allows for webhook-driven status tracking for batch operations.

Usage examples

“How do I perform a synchronous transcription of a single audio file?”
The agent provides the endpoint for POST /aiservices/scribe/transcribe and explains the required file and configuration parameters.
“What are the steps to submit a batch transcription job?”
The agent outlines the process of using POST /aiservices/scribe/jobs with S3 source URIs and configuring the necessary output and notification settings.
“How do I authenticate my requests to the Scribe API?”
The agent explains the requirement for generating an HS256 JWT using the Build-platform API key and secret.
“How can I track the status of a batch transcription job?”
The agent describes using the GET /aiservices/scribe/jobs/{jobId} endpoint or configuring a webhook URL for status notifications.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/anthropics/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

Background reference for Zoom AI Services Scribe across:

  • synchronous single-file transcription (POST /aiservices/scribe/transcribe)

  • asynchronous batch jobs (/aiservices/scribe/jobs*)

  • browser microphone pseudo-streaming via repeated short file uploads

  • webhook-driven batch status updates

  • Build-platform JWT generation and credential handling

Official docs:

Routing Guardrail

  • If the user needs uploaded or stored media transcribed into text, route here first.

  • If the user needs live meeting media without file-based upload/batch jobs, 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.

  1. concepts/auth-and-processing-modes.md

  2. scenarios/high-level-scenarios.md

  3. examples/fast-mode-node.md

  4. examples/batch-webhook-pipeline.md

  5. references/api-reference.md

  6. references/environment-variables.md

  7. references/samples-validation.md

  8. references/versioning-and-drift.md

  9. troubleshooting/common-drift-and-breaks.md

  10. RUNBOOK.md

Core Workflow

  1. Get Build-platform credentials and generate an HS256 JWT.

  2. Choose fast mode for one short file or batch mode for stored archives / large sets.

  3. Submit the transcription request.

  4. For batch jobs, poll job/file status or receive webhook notifications.

  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.

Browser Microphone Pattern

  • scribe does not expose a documented real-time streaming API surface.

  • If you want a browser microphone experience, use pseudo-streaming:

    1. capture microphone audio in short chunks

    2. upload each chunk through the async fast-mode wrapper

    3. poll for completion

    4. append chunk transcripts in sequence

  • Recommended starting cadence:

    • chunk size: 5 seconds

    • acceptable range: 5-10 seconds

    • in-flight chunk requests: 2-3

  • This is a practical UI pattern for incremental transcript updates, not a substitute for rtms.

  • Treat this as a fallback demo pattern, not the preferred production architecture.

  • It adds repeated upload overhead, chunk-boundary drift, browser codec/container variability, and transcript stitching complexity.

  • If the user asks for actual live stream ingestion, low-latency continuous media, or server-push media transport, route to ../rtms/SKILL.md instead.

Endpoint Surface

ModeMethodPathUse
FastPOST/aiservices/scribe/transcribeSynchronous transcription for one file
BatchPOST/aiservices/scribe/jobsSubmit asynchronous batch job
BatchGET/aiservices/scribe/jobsList jobs
BatchGET/aiservices/scribe/jobs/{jobId}Inspect job summary/state
BatchDELETE/aiservices/scribe/jobs/{jobId}Cancel queued/processing job
BatchGET/aiservices/scribe/jobs/{jobId}/filesInspect per-file results

High-Level Scenarios

  • On-demand clip transcription after a user uploads one recording.

  • 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

  • Stored Zoom recordings -> ../rest-api/SKILL.md + scribe

  • Webhook verification hardening -> ../webhooks/SKILL.md

  • Real-time live transcript/media -> ../rtms/SKILL.md

  • Cross-product routing -> ../general/SKILL.md

Operations

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

Files

RUNBOOK.md

Scribe 5-Minute Preflight Runbook

Use this before deep debugging.

1) Confirm the Right Product

  • File-based or storage-based transcription -> stay on scribe.

  • Live meeting media stream or botless live transcription -> use rtms instead.

  • Meeting bot that joins and records before transcription -> chain Meeting SDK Linux first.

2) Confirm Credentials

  • Build-platform issuer credential pair available.

  • JWT generation uses HS256 with one-hour-or-less expiry.

  • Secret stays server-side.

  • Reject placeholder values such as ${ZOOM_API_KEY} and ${ZOOM_API_SECRET}. They can make a naive health check look configured while every real call still fails.

3) Confirm Mode Selection

  • Fast mode for one short file and immediate JSON response.

  • Batch mode for many files, long recordings, or archive-style processing.

  • Browser microphone pseudo-streaming for short repeated chunks uploaded through the async fast-mode wrapper.

  • Fast mode current limits from the API spec:

    • maximum file size: 100 MB

    • maximum duration: 2 hours

  • If fast mode is exposed through a hosted browser UI, prefer an async wrapper:

    • browser uploads once

    • backend returns 202 with a request ID

    • frontend polls for completion This avoids losing successful transcriptions to edge/client timeout races.

  • Observed hosted timing from the deployed sample:

    • ~17.2 MB MP4 completed in ~26s

    • ~38.6 MB MP4 completed in ~26-37s

    • ~59.2 MB MP4 completed in ~32-34s on the backend

    • some ~59.2 MB requests still surfaced as frontend 504 even though the backend later completed with 200 Treat these as deployment observations, not hard API guarantees.

  • Recommended starting browser mic cadence:

    • chunk size: 5 seconds

    • acceptable range: 5-10 seconds

    • keep only 2-3 chunks in flight at once This gives incremental transcript updates without trying to hold a single long browser request open.

  • For browser mic capture, rotate the recorder per chunk so each uploaded blob is a standalone file. Do not assume MediaRecorder.start(timeslice) later chunks will always be independently transcribable.

  • Do not treat this as the default production solution for live transcription. Prefer rtms when the user actually needs a live-audio product instead of a browser demo.

4) Confirm Storage / Webhook Inputs

  • Fast mode file URL or upload path resolves.

  • Batch input/output URIs are valid.

  • AWS or pre-signed access is set correctly for S3 mode.

  • Webhook URL is public HTTPS if you expect notifications.

5) Confirm Post-Processing Contract

  • Decide whether downstream code expects text_display, segments, or word-level timings.

  • Decide whether channel separation or diarization is required before shipping.

6) Quick Probes

  • JWT generation works locally.

  • POST /aiservices/scribe/transcribe succeeds with a known small file.

  • For browser-uploaded files, backend forwarding should use multipart/form-data to Zoom, not a JSON data: URI wrapper.

  • Batch submit returns 201 with job_id.

  • Webhook signature verification works with the configured secret.

7) Fast Decision Tree

  • 401/auth failure -> wrong credential pair or expired JWT.

  • Fast mode returns schema error -> wrong request body or config fields.

  • Fast mode returns 413 Request Entity Too Large before the app logs anything -> reverse proxy limit, not Scribe.

  • Frontend returns 504 but backend logs later show 200 -> browser/edge timeout race; poll by request ID instead of assuming failure.

  • Browser mic feature needs true continuous low-latency media instead of chunked uploads -> switch to rtms, not scribe.

  • Browser mic chunk 1 works but chunk 2 onward is empty -> recorder/container boundary issue; restart the recorder for each chunk.

  • Batch jobs queue but never complete -> storage auth / URI / webhook issues.

  • Missing transcripts for some files -> inspect /jobs/{jobId}/files before re-submitting whole batch.

8) Source Checkpoints

Official docs
Raw docs in repo tooling output
  • tools/zoom-crawler/raw-docs/developers.zoom.us/docs/ai-services/

Requirements and compatibility

Written for: Claude Code, Claude apps

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: Claude Code frontmatter, 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
Anthropic (Official)
Distributed by
Anthropic
Source
anthropics/knowledge-work-plugins · partner-built/zoom-plugin/skills/scribe · commit e050c2e
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from partner-built/zoom-plugin/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

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

Download ZIP

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