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
.envfile 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 
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
- 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_startedmeeting.rtms_stoppedendpoint.url_validation
 
| Endpoint | Method | Description | 
|---|---|---|
/ | GET | Live transcript viewer UI | 
/webhook | POST | Zoom RTMS webhook handler | 
/events | GET | Server-Sent Events stream | 
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
