speech-summarization
Zoom AI Services Speech Summarization for one-shot audio or video uploads that return a transcript plus streamed summary over SSE. Use for media-to-summary in one request; not for transcript-only Scri
Files3
View on GitHubSKILL.mdskills/speech-summarization/SKILL.md
GitHubZoom AI Services Speech Summarization
Use Speech Summarization when one uploaded audio or video file must produce both a transcript and a summary in a single streaming request.
Current API audit: The production endpoint and multipart request were verified on 2026-10-20. Live calls were accepted but returned 402 QUOTA_EXCEEDED before streaming, so the SSE event sequence below comes from the API reference and official sample rather than an observed end-to-end run.
Routing Guardrail
- One media file needs transcript plus summary → use this skill.
- Only a transcript is needed → use Scribe.
- Transcript text already exists and only a recap, summary, or action items are needed → use Summarizer.
- Live meeting audio/video → use RTMS.
- Interactive microphone conversation with spoken responses → use Voice Agent.
- Typed classification, routing, scoring, or image decisions → use Decisions.
Production Contract
POST https://api.zoom.us/v2/aiservices/speech-summarization/summarize
x-api-key: $ZOOM_AI_SERVICES_API_KEY
Accept: text/event-stream
Content-Type: multipart/form-data
Authentication also accepts Authorization: Bearer $ZOOM_AI_SERVICES_API_KEY. Keep the key server-side. The required key scope is aiservices:write:transcribe-summarize:admin.
The official sample reads the same credential from ZOOM_API_KEY. Use one name in your deployment; ZOOM_AI_SERVICES_API_KEY is this skill's preferred name because it distinguishes the API key from Build-platform JWT pairs.
Multipart fields:
config: JSON string withtranscribeandsummarysettings.file: WAV, MP3, M4A, FLAC, OGG, WebM, MP4, or MOV.
Formal limits are 50 MB and 2 hours. Use 8 kHz or higher audio; 16 kHz or higher is recommended. Mono or stereo is accepted.
Workflow
- Validate the media type, size, and duration locally before upload.
- Build the multipart request server-side; never expose the API key in browser code.
- Parse the SSE stream line-by-line, preserving UTF-8 and multi-line
data:fields. - Handle
transcribe_completebefore consuming summary frames. - Treat each summary frame as accumulated text; emit only the new suffix to a UI.
- Finish only after
done. Treaterrororresponse_state: "failed"as a failed request.
Response Contract
The stream uses these events:
transcribe_startedtranscribe_completesummary_deltadoneerror
transcribe_complete.transcript may be a JSON string or an object. Summary text may appear under summary_result, summary_result.summarization.overall_summary, nested metadata, summary, or text. See references/api-contract.md for exact parsing fallbacks.
Failure Handling
401: invalid key or missingaiservices:write:transcribe-summarize:adminscope.402 QUOTA_EXCEEDED: observed when the account's AI Services credits are exhausted. The catalog does not list402; treat it as an entitlement signal, not a schema error. Two different API keys returned it on 2026-10-20, Scribe fast mode returned the same code withFree-trial credit exhausted, and there is noRetry-After, so neither rotating keys nor retrying will clear it.405: wrong HTTP method; this operation isPOSTonly.413: file exceeds 50 MB.415: unsupported media type.429: rate limit; honor retry timing.502: upstream transcription or summary failure.503: summary API is not configured.
Do not treat 402 as a malformed request. The request shape can be correct while the account lacks credits. Check the plan and credit balance in Platform Studio; a new project key under the same account will not clear the 402. Decisions and Voice Agent turns still succeeded on the same key, so a 402 on metered transcription or summarization does not make the key unusable everywhere.
Chaining
- One-shot media to typed routing →
speech-summarization+ Decisions - One-shot media to localized output →
speech-summarization+ Translator - Transcript-only workflow → Scribe
- Existing transcript workflow → Summarizer
- Live meeting media → RTMS
- Real-time spoken conversation → Voice Agent