OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  zoom-assistance:集成 RTMS 的 Zoom 会议智能辅助与社区支持技能支持技能

zoom-assistance:集成 RTMS 的 Zoom 会议智能辅助与社区支持技能支持技能

 
  versioning ·  2026-02-28 03:49:32 · 2 次点击  · 0 条评论  

name: zoom-meeting-assistance-rtms-unofficial-community
description: Zoom RTMS 会议助手 — 按需启动,通过 Zoom 实时媒体流捕获会议音频、视频、转录、屏幕共享和聊天。处理 meeting.rtms_started 和 meeting.rtms_stopped 的 Webhook 事件。提供 AI 驱动的对话建议、情感分析和实时摘要,并通过 WhatsApp 发送通知。在 Zoom RTMS Webhook 触发或用户要求录制/分析会议时使用。


Zoom RTMS 会议助手

使用 Zoom 实时媒体流(RTMS)的无头会议捕获服务。接收 Webhook 事件,连接 RTMS WebSocket,录制所有媒体,并通过 OpenClaw 运行 AI 分析。

处理的 Webhook 事件

此技能处理两个 Zoom Webhook 事件:

  • meeting.rtms_started — 当会议的 RTMS 被激活时,Zoom 发送此事件。包含连接 RTMS WebSocket 所需的 server_urlsrtms_stream_idmeeting_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 应用客户端 ID
- ZOOM_CLIENT_SECRET — Zoom 应用客户端密钥

可选:
- PORT — 服务器端口(默认:3000
- AI_PROCESSING_INTERVAL_MS — AI 分析频率(毫秒)(默认:30000
- AI_FUNCTION_STAGGER_MS — AI 调用之间的延迟(毫秒)(默认:5000
- AUDIO_DATA_OPT1 = 混合流,2 = 多流(默认:2
- OPENCLAW_NOTIFY_CHANNEL — 通知渠道(默认:whatsapp
- OPENCLAW_NOTIFY_TARGET — 电话号码 / 通知目标

启动服务

cd skills/zoom-meeting-assistance-rtms-unofficial-community
node index.js

这将启动一个 Express 服务器,在 PORT 上监听 Zoom Webhook 事件。

⚠️ 重要提示: 在将 Webhook 转发到此服务之前,请务必检查服务是否正在运行:

# 检查端口 3000 上是否有服务在监听
lsof -i :3000

如果没有返回任何结果,请在转发任何 Webhook 事件之前先启动服务。

典型流程:
1. 将服务器作为后台进程启动
2. Zoom 发送 meeting.rtms_started webhook → 服务连接到 RTMS WebSocket
3. 实时接收媒体流:音频、视频、转录、屏幕共享、聊天
4. AI 处理定期运行(对话建议、情感、摘要)
5. 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

搜索与查询过往会议

要查找和回顾过往会议数据:

# 按日期列出所有录制的会议
ls -R recordings/

# 列出特定日期的会议
ls recordings/2026/01/28/

# 在所有转录文件中搜索关键词
grep -rl "关键词" recordings/*/*/*/*/transcript.txt

# 搜索特定人员说过的话
grep "Chun Siong Tan" recordings/*/*/*/*/transcript.txt

# 阅读会议摘要
cat recordings/YYYY/MM/DD/<streamId>/ai_summary.md

# 在摘要中搜索主题
grep -rl "主题" recordings/*/*/*/*/ai_summary.md

# 查看谁参加了会议
cat recordings/YYYY/MM/DD/<streamId>/events.log

# 获取会议的情感分析
cat recordings/YYYY/MM/DD/<streamId>/ai_sentiment.json

.txt.md.json.log 文件都是基于文本且可搜索的。从 ai_summary.md 开始快速概览,然后深入 transcript.txt 查找具体引用或细节。

API 端点

# 切换 WhatsApp 通知开/关
curl -X POST http://localhost:3000/api/notify-toggle -H "Content-Type: application/json" -d '{"enabled": false}'

# 检查通知状态
curl http://localhost:3000/api/notify-toggle

会后处理

meeting.rtms_stopped 触发时,服务会自动:
1. 从屏幕共享图像生成 PDF
2. 转换 mixedaudio.rawmixedaudio.wav
3. 转换 activespeakervideo.h264activespeakervideo.mp4
4. 将混合音频和活跃发言人视频混合为 final_output.mp4

提供手动转换脚本,但请注意自动转换在会议结束时运行,因此很少需要手动重新运行。

读取会议数据

在会议期间或之后,从 recordings/YYYY/MM/DD/{streamId}/ 读取文件:

# 按日期列出录制的会议
ls -R recordings/

# 阅读转录
cat recordings/YYYY/MM/DD/<streamId>/transcript.txt

# 阅读 AI 摘要
cat recordings/YYYY/MM/DD/<streamId>/ai_summary.md

# 阅读情感分析
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 情感评分逻辑 自定义情感类别、阈值

提示: 编辑前备份原始文件,以便需要时可以恢复。

2 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor