tmeet 自动录制 + 自动总结
把「会议自动录制」与「会后自动总结」打包成可复用流程:会前开启云录制 + ASR → 会后自动拉取智能纪要 → 整理输出总结。
核心原理(一句话)
只有云录制 + 自动 ASR 才会产出智能纪要与逐字稿。 本地录制、会后补开,都无法得到总结。
| 配置组合 | 智能纪要 | 逐字稿 | 说明 |
|---|---|---|---|
云录制 + auto_asr |
✅ | ✅ | 唯一的正解 |
| 仅云录制(无 ASR) | ⚠️ 部分 | ❌ | 有视频文件,但无转写、纪要质量差 |
| 本地录制(local) | ❌ | ❌ | 文件只在硬盘,云端拿不到音频 |
| 不录制 | ❌ | ❌ | 无任何素材 |
| 会后补开 | ❌ | ❌ | 报错 14151 会议已开始,不能修改会议信息 |
> 根因链:ASR 在云端跑 → 需要音视频上云 → 所以必须云录制。本地录制的文件从未上云,云端无数据可转写,自然无纪要。
使用场景路由
| 用户想做什么 | 走哪条路 |
|---|---|
| 让每场会议都自动录制+总结(无人值守) | → §0 自动执行 |
| 给某场未来的会议开自动录制+总结 | → §1 建会时开启 |
| 会议已结束,想要纪要 | → §2 会后拉取总结 |
| 查不到纪要,想知道为什么 | → §3 排查纪要缺失 |
| 用本地录制的文件补救 | → §4 本地录制补救 |
| 要看账号级设置图文步骤 | → references/账号设置简易文档.md |
0. 自动执行:每场会议都录制并总结
需求:不用每次手动设,让账号下每一场新会议都自动开云录制 + ASR。
可行,已实测通过。 因为 meeting.created 事件可订阅,且 meeting update 能在会议开始前补上录制设置。两条脚本已封装在 scripts/:
| 脚本 | 作用 | 命令 |
|---|---|---|
auto_record_guard.py |
会前:扫描待开始会议,批量开启 cloud+ASR | python scripts/auto_record_guard.py |
auto_summary_fetch.py |
会后:扫描已结束会议,拉纪要生成总结 | python scripts/auto_summary_fetch.py --days 1 |
用法
# 1) 会前守护:把未来 7 天内待开始的会议全部配上云录制+ASR
python scripts/auto_record_guard.py --days 7
python scripts/auto_record_guard.py --dry-run # 只预览
# 2) 会后抓取:拉最近 1 天的会议纪要,生成 markdown 总结
python scripts/auto_summary_fetch.py --days 1 --out ./会议总结
python scripts/auto_summary_fetch.py --meeting-code 644283858 # 指定会议
三种自动化成熟度(按推荐度)
| 方案 | 机制 | 覆盖范围 | 实时性 |
|---|---|---|---|
| ① 账号级默认(最优) | 客户端设置一次 | 全部会议,含临时会 | 实时 |
| ② 定时守护脚本(次优) | 定时跑 auto_record_guard.py |
跑之前已创建、且尚未开始的会 | 取决于跑频 |
| ③ 事件驱动(进阶) | 订阅 meeting.created,一创建就配 |
订阅后新建的会 | 实时 |
> 实质差别:方案 ① 是账号级默认,能覆盖「临时点一下就开会」的场景;方案 ②③ 都是会议级配置,若会议创建后立刻开始(快速会议),可能来不及配置。
> 因此:打开客户端账号级默认(方式 A)是根方案;脚本 ②③ 是兜底与批量补配手段。两者叠加最稳。
方案 ③:事件驱动订阅(实时,进阶)
# 监听会议创建事件
tmeet event consume --event-id meeting.created --quiet \
--jq '.[0].meeting_info | {meeting_code, subject, start_time}'
拿到新会议后调用 meeting update 补设置。注意:
- jq_root_path 是 .payload,且 payload 是数组,必须 .[0] 取首元素
- 后台跑需 nohup ... --output-dir ./events &,并阻塞读 stderr 等 [event] ready 标记(不要 sleep)
- 事件流不回放历史,只推送订阅后新产生的事件
- 不要 kill -9;残留用 tmeet event stop --force(需二次确认)
挂到定时任务
# 每天 08:00 配置当天所有未开始的会议
0 8 * * * python scripts/auto_record_guard.py --days 1
# 每天 22:00 抓取当天已结束会议的纪要
0 22 * * * python scripts/auto_summary_fetch.py --days 1 --out ./会议总结
> 本环境建议用自动化能力(automation_update)创建定时任务,比写 crontab 更贴合本机。
脚本实测要点(坑)
meeting list的settings字段不全(只返回allow_multi_device),不能用它判断是否已配置;必须meeting get回查auto_record_type/auto_asr。脚本已处理此幂等判断。- 脚本自动跳过
status != 待开始的会议;遇到14151会归类为LOCKED,不中断整批。 - 会议一旦开始,脚本无法补救,只能靠账号级默认兜底。
1. 建会时开启录制与 ASR
铁律:必须在会议开始前设置。 会议一开始,设置即锁定,接口直接拒绝。
关键参数
| 参数 | 值 | 作用 |
|---|---|---|
--auto-record-type |
cloud |
主持人入会自动云录制。none=关、local=本地录制(不能用) |
--auto-asr |
开关 | 自动语音识别,智能纪要/逐字稿的前提 |
方式 A:单场会议
tmeet meeting create \
--subject "会议主题" \
--start "2026-09-15T14:00:00+08:00" \
--end "2026-09-15T14:30:00+08:00" \
--timezone "Asia/Shanghai" \
--auto-record-type cloud \
--auto-asr
方式 B:周期性会议(推荐,一次覆盖多场)
适用于「每天/每周固定开会」。创建时带上录制参数,所有子场次自动继承。
tmeet meeting create \
--subject "日常沟通" \
--start "2026-09-15T10:00:00+08:00" \
--end "2026-09-15T10:30:00+08:00" \
--timezone "Asia/Shanghai" \
--auto-record-type cloud \
--auto-asr \
--meeting-type 1 \
--recurring-type 1 \
--until-type 0 \
--until-date "2026-12-31T10:00:00+08:00"
| 周期性参数 | 取值 |
|---|---|
--meeting-type 1 |
周期性会议 |
--recurring-type |
0=每天 1=工作日 2=每周 3=双周 4=每月 |
--until-type 0 + --until-date |
按日期结束 |
--until-type 1 + --until-count |
按次数结束(每天/工作日/每周上限 500,双周/每月 50,默认 7) |
方式 C:账号级默认(客户端 GUI,一次设完永久生效)
客户端 → 设置 → 录制 → 开启「自动云录制」+「语音转写 / 智能纪要」。
> CLI 没有账号级接口,只能 GUI 手动设置。详见 references/账号设置简易文档.md。
建会后验证
tmeet meeting get --meeting-id <id> # 用返回的 meeting_code 展示给用户
回查 settings.auto_record_type 应为 cloud、settings.auto_asr 应为 true。若不符,说明参数未生效(检查企业套餐是否开云录制权限)。
> 附带的两个隐藏开关会自动开启:enable_host_pause_auto_record=true、participant_join_auto_record=true。
2. 会后拉取总结
会议结束、且录制转码完成后(state 含「转码完成」),按以下链路取内容:
meeting search / get → 拿 permission_status
├─ can_view → record smart-minutes (智能纪要,含逐字稿,最全)
└─ can_apply/closed→ minutes get (元宝纪要,人人可取)
具体命令
# 1) 定位会议(拿 meeting_id 与 permission_status)
tmeet meeting search --query "会议主题"
# 2a) 有录制权限 → 智能纪要
tmeet record list --meeting-id <id> # 先拿 meeting_record_id
tmeet record smart-minutes --record-file-id <record_file_id>
# 2b) 无录制权限 → 元宝纪要
tmeet minutes get --meeting-id <id>
# 或跨会议按关键词/时间搜
tmeet minutes search --query "关键词"
tmeet minutes search --start "..." --end "..."
# 3) 要发言原话/逐字稿(需权限)
tmeet record transcript-paragraphs --record-file-id <record_file_id>
> ⚠️ record smart-minutes 的参数是 --record-file-id,不是 --meeting-id;必须先 record list 拿到录制文件 ID。无录制时该命令不可用。
整理输出模板
拿到纪要后,按此结构整理(不输出 meeting_id,只用会议号):
# 会议总结:<主题>
## 一、会议基本信息
| 项目 | 内容 |
| 会议主题 / 会议号 / 计划时间 / 实际时间 / 会议状态 / 主持人 / 会议链接 |
### 参会明细(姓名 + 角色 + 入会/离会时间,用 report participants 取)
## 二、核心议题
## 三、讨论要点
## 四、结论与决议
## 五、待办事项(含负责人、截止时间,若有)
保存为 会议总结_<主题>_<YYYY-MM-DD>.md。
3. 排查纪要缺失
按顺序判断,先查标志位,再决定是否深挖:
tmeet meeting search --query "<关键词>"
看返回的四个字段:
| 字段 | false 的含义 |
|---|---|
has_recording |
无录制文件 |
has_smart_minutes |
无智能纪要 |
has_transcript |
无逐字稿 |
minute_total_count |
元宝纪要条数,0 表示无 |
若全为 false / 0,再查根因:
tmeet meeting get --meeting-id <id>
看 settings:
| 现象 | 根因 | 处理 |
|---|---|---|
auto_record_type=none |
未开自动录制 | 无解,会前没开就是没有 |
auto_record_type=local |
用了本地录制 | 云端无素材 → 走 §4 补救 |
auto_asr=false |
未开语音识别 | 无转写 → 走 §4 补救 |
| 参数都对但仍无纪要 | 企业未开云录制权限 / 未转码完成 | 确认转码状态;联系会议管理员确认套餐权限 |
status 为「进行中」 |
会议还在开 | 等结束后再查,不要试图会后补开 |
会中改设置的实测结论
tmeet meeting update --meeting-id <id> --auto-record-type cloud --auto-asr
# → 错误码 14151:会议已开始,不能修改会议信息。
- 会议一旦开始,设置锁定,无法补开录制/转写。
meeting update只支持会议级设置,没有账号级接口。- 兜底方案:见 references/账号设置简易文档.md 的「周期性会议替代法」。
4. 本地录制的补救
本地录制文件没上云 → 无纪要。补救两条路:
- 本地上传转写(首选):在腾讯会议客户端/网页端把本地音视频文件上传到云端转写,转写完成可生成纪要。等价于补一次云 ASR。
- 第三方 ASR 兜底:把本地 mp4/m4a 丢给其他语音识别工具转写再总结。缺点:拿不到会议原生的说话人分离与章节结构,质量取决于音质。
> 正确做法永远是:开云录制(自动有纪要),需要本地文件时再从云端下载一份——而不是直接选本地录制。
环境坑(本机实测)
- 本机 bash 缺基础命令(
mkdir/grep/head/dirname等 not found),需用完整路径的 Python 做文件操作:
bash "/c/Users/Administrator/.workbuddy/binaries/python/versions/3.13.12/python.exe" -c "..." - tmeet 需通过完整路径 node 调用:
bash "/c/Users/Administrator/.workbuddy/binaries/node/versions/22.22.2-3/node.exe" \ "C:\\Users\\Administrator\\.workbuddy\\binaries\\node\\cli-connector-packages\\node_modules\\@tencentcloud\\tmeet\\scripts\\tmeet.js" <子命令> - tmeet 输出到 stderr 的
crashpad ... CreateFile报错可忽略,用2>/dev/null过滤。 - 脚本内的 NODE / TMEET_JS 路径已硬编码为本机路径;换机器需改脚本顶部两个常量。
合规提醒
- 录制他人参与的会议时,建议保留系统录制提示(提示音/横幅),对外客户沟通尤其注意。
- 严禁向用户暴露
meeting_id,一律使用会议号(meeting_code)。 meeting update/meeting cancel等写操作需先向用户二次确认。
参考
- references/账号设置简易文档.md — 面向人的账号级/会议级设置图文步骤
- references/tmeet-命令速查.md — 本技能涉及的全部 tmeet 命令与参数
scripts/auto_record_guard.py— 会前批量开启录制(已实测)scripts/auto_summary_fetch.py— 会后自动拉取纪要生成总结