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
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_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 |
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