Zoom RTMS Transcript Service
A real-time transcript streaming service for Zoom meetings using the Zoom Real-Time Meeting Service (RTMS) API. This demo showcases live transcription capabilities and is designed to integrate with Groq Compound for advanced AI processing.
Real-Time Transcription : Live transcript streaming from Zoom meetings
WebSocket Integration : Direct connection to Zoom's RTMS WebSocket endpoints
Server-Sent Events : Real-time UI updates for transcript display
Webhook Handling : Automatic handling of Zoom RTMS lifecycle events
Security Headers : OWASP-compliant security headers implementation
Cross-Platform : Runs on Deno, compatible with Val Town deployment
Future AI Integration : Planned integration with Groq Compound for intelligent transcript processing
Deno runtime
Zoom App Marketplace account with RTMS enabled
Environment variables configured (see below)
Clone the repository
git clone <repository-url>
cd zoom-rtms
Install dependencies
# Dependencies are automatically managed by Deno
# No npm install required
Configure environment variables
Create a .env
file in the project root:
# Zoom RTMS Credentials (from Zoom App Marketplace)
ZOOM_CLIENT_ID=your_zoom_client_id
ZOOM_CLIENT_SECRET=your_zoom_client_secret
ZOOM_SECRET_TOKEN=your_zoom_secret_token
# Optional: Custom webhook path (defaults to /webhook)
WEBHOOK_PATH=/webhook
š Running the Application
deno task print
# or directly:
deno serve --port 9995 --watch --allow-read --allow-env --allow-write --allow-net ./main.js
deno task prod
The application will be available at:
Main UI : http://localhost:9995/
Webhook Endpoint : http://localhost:9995/webhook
SSE Stream : http://localhost:9995/events
Webhook Handler (/webhook
)
Receives RTMS lifecycle events from Zoom
Handles meeting start/stop notifications
Validates webhook signatures
WebSocket Connections
Signaling WebSocket : Establishes RTMS session
Media WebSocket : Receives real-time transcript data
Server-Sent Events (/events
)
Streams transcript data to connected clients
Cross-isolate broadcasting for Deno Deploy
Live UI (/
)
Real-time transcript display
EventSource-based updates
Dark theme with monospace font (Menlo)
Zoom Meeting ā RTMS Webhook ā Signaling WS ā Media WS ā Transcripts ā SSE ā UI
š Zoom RTMS Configuration
Create a Zoom App in the Zoom App Marketplace
Enable RTMS in your app settings
Configure Webhook URL pointing to your deployed endpoint
Set Event Types to include:
meeting.rtms_started
meeting.rtms_stopped
endpoint.url_validation
Endpoint Method Description /
GET Live transcript viewer UI /webhook
POST Zoom RTMS webhook handler /events
GET Server-Sent Events stream
š Future Integration: Groq Compound
This project is designed to integrate with Groq Compound for intelligent transcript processing:
Real-time Analysis : Process transcripts as they're received
Summarization : Generate meeting summaries automatically
Action Items : Extract tasks and follow-ups
Sentiment Analysis : Analyze participant engagement
Translation : Real-time language translation
Q&A : Answer questions about meeting content
Live transcript enhancement
Automated meeting minutes
Keyword extraction and tagging
Speaker identification improvements
Content moderation and filtering
āāā main.js # Main application
āāā deno.json # Deno configuration
āāā deno.lock # Dependency lock file
āāā README.md # This file
Runtime : Deno
Framework : Hono
WebSockets : Native WebSocket API
Security : OWASP-compliant headers
Deployment : Deno Deploy compatible
Fork the repository
Create a feature branch
Make your changes
Test thoroughly
Submit a pull request
MIT License - see LICENSE file for details
This is a demonstration project for educational and development purposes. Ensure compliance with Zoom's terms of service and data privacy regulations when handling meeting transcripts.
</xai:function_call">README.md