zoom-meeting-assistance-rtms-unofficial-community
Zoom RTMS Meeting Assistant — start on-demand to capture meeting audio, video, transcript, screenshare, and chat via Zoom Real-Time Media Streams. Handles meeting.rtms_started and meeting.rtms_stopped webhook events. Provides AI-powered dialog suggestions, sentiment analysis, and live summaries with WhatsApp notifications. Use when a Zoom RTMS webhook fires or the user asks to record/analyze a meeting.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/tanchunsiong/zoom-meeting-assistance-with-rtms-unofficial-community-skillZoom RTMS Meeting Assistant
Headless capture service for Zoom meetings using Real-Time Media Streams (RTMS). Receives webhook events, connects to RTMS WebSockets, records all media, and runs AI analysis via OpenClaw.
Webhook Events Handled
This skill processes two Zoom webhook events:
meeting.rtms_started— Zoom sends this when RTMS is activated for a meeting. Containsserver_urls,rtms_stream_id, andmeeting_uuidneeded to connect to the RTMS WebSocket.meeting.rtms_stopped— Zoom sends this when RTMS ends (meeting ended or RTMS disabled). Triggers cleanup: closes WebSocket connections, generates screenshare PDF, sends summary notification.
Webhook Dependency
This skill needs a public webhook endpoint to receive these events from Zoom.
Preferred: Use the ngrok-unofficial-webhook-skill (skills/ngrok-unofficial-webhook-skill). It auto-discovers this skill via webhookEvents in skill.json, notifies the user, and offers to route events here.
Other webhook solutions (e.g. custom servers, cloud functions) will work but require additional integration to forward payloads to this service.
Prerequisites
cd skills/zoom-meeting-assistance-rtms-unofficial-community
npm install
Requires ffmpeg for post-meeting media conversion.
Environment Variables
Set these in the skill's .env file:
Required:
ZOOM_SECRET_TOKEN— Zoom webhook secret tokenZOOM_CLIENT_ID— Zoom app Client IDZOOM_CLIENT_SECRET— Zoom app Client Secret
Optional:
PORT— Server port (default:3000)AI_PROCESSING_INTERVAL_MS— AI analysis frequency in ms (default:30000)AI_FUNCTION_STAGGER_MS— Delay between AI calls in ms (default:5000)AUDIO_DATA_OPT—1= mixed stream,2= multi-stream (default:2)OPENCLAW_NOTIFY_CHANNEL— Notification channel (default:whatsapp)OPENCLAW_NOTIFY_TARGET— Phone number / target for notifications
Starting the Service
cd skills/zoom-meeting-assistance-rtms-unofficial-community
node index.js
This starts an Express server listening for Zoom webhook events on PORT.
⚠️ Important: Before forwarding webhooks to this service, always check if it's running:
# Check if service is listening on port 3000
lsof -i :3000
If nothing is returned, start the service first before forwarding any webhook events.
Typical flow:
- Start the server as a background process
- Zoom sends
meeting.rtms_startedwebhook → service connects to RTMS WebSocket - Media streams in real-time: audio, video, transcript, screenshare, chat
- AI processing runs periodically (dialog suggestions, sentiment, summary)
meeting.rtms_stopped→ service closes connections, generates screenshare PDF
Recorded Data
All recordings are stored organized by date:
skills/zoom-meeting-assistance-rtms-unofficial-community/recordings/YYYY/MM/DD/{streamId}/
Each stream folder contains:
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-tanchunsiong-zoom-meeting-assistance-with-rtms-unofficial-community-skill": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
Pluribus
Skill by tanchunsiong
zoom-unofficial-community-skill
Zoom API integration for meetings, calendar, chat, and user management. Use when the user asks to schedule meetings, check Zoom calendar, list recordings, send Zoom chat messages, manage contacts, or interact with any Zoom Workplace feature. Supports Server-to-Server OAuth and OAuth apps.
ngrok-unofficial-webhook-skill
Start an ngrok tunnel to receive incoming webhooks and process them via the LLM. Use when the user asks to listen for webhooks, set up a webhook endpoint, start ngrok, or when another skill (like Zoom RTMS Meeting Assistant) needs a public webhook URL. Receives webhook payloads and lets the LLM decide how to handle them.