Zoom Meeting Assistance Rtms Unofficial Community技能使用说明
Zoom RTMS会议助手
基于Zoom实时媒体流(RTMS)的无头会议录制服务。接收webhook事件,连接RTMS WebSocket,录制所有媒体流,并通过OpenClaw运行AI分析。
处理的Webhook事件
本技能处理两种Zoom webhook事件:

meeting.rtms_started——当会议启用RTMS时,Zoom发送此事件。包含连接RTMS WebSocket所需的server_urls、rtms_stream_id和meeting_uuid信息。meeting.rtms_stopped——当RTMS结束时(会议结束或RTMS被禁用),Zoom发送此事件。触发清理流程:关闭WebSocket连接,生成屏幕共享PDF,发送总结通知。
Webhook依赖
本技能需要一个公开的webhook端点来接收Zoom发送的这些事件。
推荐方案:使用ngrok-unofficial-webhook-skill(skills/ngrok-unofficial-webhook-skill)。它会通过skill.json中的webhookEvents自动发现此技能,通知用户,并提供将事件路由到此处的选项。
其他Webhook解决方案(例如自定义服务器、云函数)也可以使用,但需要额外的集成才能将有效负载转发到此服务。
先决条件
cd skills/zoom-meeting-assistance-rtms-unofficial-community
npm install
需要ffmpeg用于会议后的媒体转换。
环境变量
请在技能的.env文件中设置以下变量:
必需:
ZOOM_SECRET_TOKEN— Zoom Webhook 密钥令牌ZOOM_CLIENT_ID— Zoom 应用客户端 IDZOOM_CLIENT_SECRET— Zoom 应用客户端密钥
可选:
端口—— 服务器端口(默认值:3000)AI处理间隔毫秒数—— AI分析频率,单位为毫秒(默认值:30000)AI调用间隔毫秒数—— AI调用之间的延迟,单位为毫秒(默认值:5000)音频数据选项——1= 混合流,2= 多流(默认值:2)OPENCLAW通知渠道—— 通知渠道(默认值:whatsapp)OPENCLAW通知目标- 电话号码 / 通知目标
启动服务
cd skills/zoom-meeting-assistance-rtms-unofficial-community
node index.js
这将启动一个Express服务器,监听端口上的Zoom webhook事件。
⚠️ 重要提示:在将webhook转发到此服务之前,请务必检查服务是否正在运行:
# Check if service is listening on port 3000
lsof -i :3000
如果没有返回任何内容,请先启动服务,然后再转发任何webhook事件。
典型流程:
- 将服务器作为后台进程启动
- Zoom发送
meeting.rtms_startedwebhook → 服务连接到RTMS WebSocket - 实时媒体流:音频、视频、转录、屏幕共享、聊天
- AI处理定期运行(对话建议、情绪分析、摘要)
meeting.rtms_stopped→ 服务关闭连接,生成屏幕共享PDF
记录的数据
所有记录均按日期组织存储:
skills/zoom-meeting-assistance-rtms-unofficial-community/recordings/YYYY/MM/DD/{streamId}/
每个流文件夹包含:
| 文件 | 内容 | 可搜索 |
|---|---|---|
metadata.json | 会议元数据(UUID、流ID、操作员、开始时间) | ✅ |
transcript.txt | 带时间戳和发言人姓名的纯文本转录稿 | ✅ 最适合搜索——兼容grep,每行代表一次发言 |
transcript.vtt | 带时间提示的VTT格式转录稿 | ✅ |
transcript.srt | SRT格式转录稿 | ✅ |
events.log | 参与者加入/离开、活跃发言人变更记录(JSON行格式) | ✅ |
chat.txt | 带时间戳的聊天消息 | ✅ |
ai_summary.md | AI生成的会议摘要(markdown格式) | ✅ 关键文档 — 首先阅读此文件以了解会议概览 |
ai_dialog.json | AI对话建议 | ✅ |
ai_sentiment.json | 每位参与者的情绪分析 | ✅ |
mixedaudio.raw | 混合音频流(原始PCM格式) | ❌ 二进制文件 |
activespeakervideo.h264 | 当前发言人视频(原始H.264格式) | ❌ 二进制文件 |
processed/screenshare.pdf | 去重后的屏幕共享帧(PDF格式) | ❌ 二进制文件 |
所有摘要文件也已复制到中央文件夹以便于访问:
skills/zoom-meeting-assistance-rtms-unofficial-community/summaries/summary_YYYY-MM-DDTHH-MM-SS_{streamId}.md
搜索与查询过往会议
如需查找并回顾过往会议数据:
# List all recorded meetings by date
ls -R recordings/
# List meetings for a specific date
ls recordings/2026/01/28/
# Search across all transcripts for a keyword
grep -rl "keyword" recordings/*/*/*/*/transcript.txt
# Search for what a specific person said
grep "Chun Siong Tan" recordings/*/*/*/*/transcript.txt
# Read a meeting summary
cat recordings/YYYY/MM/DD/<streamId>/ai_summary.md
# Search summaries for a topic
grep -rl "topic" recordings/*/*/*/*/ai_summary.md
# Check who attended a meeting
cat recordings/YYYY/MM/DD/<streamId>/events.log
# Get sentiment for a meeting
cat recordings/YYYY/MM/DD/<streamId>/ai_sentiment.json
该.txt、.md文件,.json、.log文件都是基于文本且可搜索的。首先查看ai_summary.md以快速了解概览,然后深入transcript.txt查找特定引述或细节。API端点
会后处理
# Toggle WhatsApp notifications on/off
curl -X POST http://localhost:3000/api/notify-toggle -H "Content-Type: application/json" -d '{"enabled": false}'
# Check notification status
curl http://localhost:3000/api/notify-toggle
当
meeting.rtms_stopped事件触发时,服务会自动:从屏幕共享图像生成PDF
- 将
- mixedaudio.raw
转换为mixedaudio.wav将 - activespeakervideo.h264
转换为activespeakervideo.mp4将混合音频与活动发言人视频混合为 - final_output.mp4
final_output.mp4
虽然提供了手动转换脚本,但请注意自动转换会在会议结束时运行,因此很少需要手动重新运行。
读取会议数据
在会议期间或结束后,从以下路径读取文件recordings/YYYY/MM/DD/{streamId}/:
# List recorded meetings by date
ls -R recordings/
# Read transcript
cat recordings/YYYY/MM/DD/<streamId>/transcript.txt
# Read AI summary
cat recordings/YYYY/MM/DD/<streamId>/ai_summary.md
# Read sentiment analysis
cat recordings/YYYY/MM/DD/<streamId>/ai_sentiment.json
提示词定制
想要不同的摘要风格或分析方式?自定义AI提示词以满足您的需求!
编辑以下文件以更改AI行为:
| 文件 | 用途 | 自定义示例 |
|---|---|---|
summary_prompt.md | 会议摘要生成 | 要点式与段落式、重点领域、长度 |
query_prompt.md | 查询响应格式 | 响应风格、详细程度 |
query_prompt_current_meeting.md | 实时会议分析 | 会议期间需突出显示的内容 |
query_prompt_dialog_suggestions.md | 对话建议风格 | 正式与随意,建议数量 |
query_prompt_sentiment_analysis.md | 情感评分逻辑 | 自定义情感类别,阈值 |
提示:编辑前备份原始文件,以便在需要时可以恢复。


微信扫一扫,打赏作者吧~