@tencentcloud/tmeet 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +27 -0
- package/README.md +594 -0
- package/dist/tmeet-Linux-ARM64 +0 -0
- package/dist/tmeet-Linux-x86_64 +0 -0
- package/dist/tmeet-Windows-x86_64.exe +0 -0
- package/dist/tmeet-macOS-AppleSilicon +0 -0
- package/dist/tmeet-macOS-Intel +0 -0
- package/package.json +23 -0
- package/scripts/cleanup.js +45 -0
- package/scripts/tmeet.js +79 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Tencent is pleased to support the open source community by making tencentmeeting-cli available.
|
|
2
|
+
|
|
3
|
+
Copyright (C) 2026 Tencent. All rights reserved.
|
|
4
|
+
|
|
5
|
+
tencentmeeting-cli is licensed under the MIT.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Terms of the MIT:
|
|
9
|
+
--------------------------------------------------------------------
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
11
|
+
a copy of this software and associated documentation files (the
|
|
12
|
+
"Software"), to deal in the Software without restriction, including
|
|
13
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
14
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
15
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
16
|
+
the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be
|
|
19
|
+
included in all copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
22
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
23
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
24
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
25
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
26
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
27
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,594 @@
|
|
|
1
|
+
# tmeet
|
|
2
|
+
|
|
3
|
+
[English](README_EN.md) | 中文
|
|
4
|
+
|
|
5
|
+
腾讯会议命令行工具(CLI),基于腾讯会议开放平台 OAuth2 授权,支持会议管理、录制管理、参会报告等功能。
|
|
6
|
+
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://golang.org)
|
|
9
|
+
|
|
10
|
+
## 功能特性
|
|
11
|
+
|
|
12
|
+
- 🔐 **OAuth2 授权登录** — 设备码授权流程,安全无密码
|
|
13
|
+
- 📅 **会议管理** — 创建、查询、更新、取消会议,支持周期性会议,管理受邀成员
|
|
14
|
+
- 🎬 **录制管理** — 查询录制列表、获取下载地址、智能纪要、转写详情与搜索
|
|
15
|
+
- 📊 **参会报告** — 查询参会人列表、等候室成员记录
|
|
16
|
+
- 🔒 **安全存储** — 凭证使用 AES-256-GCM 加密,明文不落盘
|
|
17
|
+
- 🖥️ **跨平台** — 支持 macOS、Linux、Windows
|
|
18
|
+
|
|
19
|
+
## 安装
|
|
20
|
+
|
|
21
|
+
### 方式一:通过 npm 安装(推荐)
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install -g tmeet
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
安装完成后即可直接使用 `tmeet` 命令。
|
|
28
|
+
|
|
29
|
+
### 方式二:从源码构建
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
git clone https://github.com/TencentCloud/tencentmeeting-cli
|
|
33
|
+
cd tencentmeeting-cli
|
|
34
|
+
go build -ldflags "-X tmeet/cmd.Version=v1.0.0" -o tmeet .
|
|
35
|
+
# 或
|
|
36
|
+
make build VERSION=v1.0.0
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 快速开始
|
|
40
|
+
|
|
41
|
+
### 1. 登录授权
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
tmeet auth login
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
执行后会输出授权 URL,在浏览器中打开完成扫码授权,CLI 自动轮询结果(超时 5 分钟),凭证加密保存到本地。
|
|
48
|
+
|
|
49
|
+
### 2. 创建会议
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
tmeet meeting create \
|
|
53
|
+
--subject "周例会" \
|
|
54
|
+
--start "2026-04-10T10:00+08:00" \
|
|
55
|
+
--end "2026-04-10T11:00+08:00"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 3. 查询会议列表
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# 查询进行中/即将开始的会议
|
|
62
|
+
tmeet meeting list
|
|
63
|
+
|
|
64
|
+
# 查询已结束的会议
|
|
65
|
+
tmeet meeting list-ended \
|
|
66
|
+
--start "2026-04-01T00:00+08:00" \
|
|
67
|
+
--end "2026-04-30T23:59+08:00"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 4. 登出
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
tmeet auth logout
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 全局标志
|
|
79
|
+
|
|
80
|
+
所有命令均支持以下全局标志:
|
|
81
|
+
|
|
82
|
+
| 标志 | 简写 | 默认值 | 说明 |
|
|
83
|
+
|------|------|--------|------|
|
|
84
|
+
| `--format` | — | `json` | 输出格式:`json`(紧凑格式)\| `json-pretty`(缩进格式) |
|
|
85
|
+
| `--version` | `-V` | — | 查看版本号 |
|
|
86
|
+
|
|
87
|
+
**示例:**
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# 查看版本号
|
|
91
|
+
tmeet -V
|
|
92
|
+
|
|
93
|
+
# 以缩进格式输出响应
|
|
94
|
+
tmeet meeting get --meeting-id "6953553464429888300" --format json-pretty
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 命令总览
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
tmeet [--format json] [-V]
|
|
103
|
+
├── auth
|
|
104
|
+
│ ├── login # OAuth 授权登录
|
|
105
|
+
│ ├── logout # 登出并清除凭证
|
|
106
|
+
│ └── status # 查看当前登录状态
|
|
107
|
+
├── meeting
|
|
108
|
+
│ ├── create # 创建会议(支持普通/周期性)
|
|
109
|
+
│ ├── update # 更新会议信息
|
|
110
|
+
│ ├── cancel # 取消会议
|
|
111
|
+
│ ├── get # 获取会议详情
|
|
112
|
+
│ ├── list # 获取进行中/即将开始的会议列表
|
|
113
|
+
│ ├── list-ended # 获取已结束的会议列表
|
|
114
|
+
│ └── invitees-list # 获取会议受邀者列表
|
|
115
|
+
├── record
|
|
116
|
+
│ ├── list # 查询录制列表
|
|
117
|
+
│ ├── address # 获取录制文件下载地址
|
|
118
|
+
│ ├── smart-minutes # 获取智能纪要
|
|
119
|
+
│ ├── transcript-get # 获取转写详情
|
|
120
|
+
│ ├── transcript-paragraphs # 获取转写段落列表
|
|
121
|
+
│ └── transcript-search # 搜索转写内容
|
|
122
|
+
└── report
|
|
123
|
+
├── participants # 获取参会人列表
|
|
124
|
+
└── waiting-room-log # 获取等候室成员列表
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 命令参考
|
|
130
|
+
|
|
131
|
+
### auth — 授权管理
|
|
132
|
+
|
|
133
|
+
#### `auth login`
|
|
134
|
+
|
|
135
|
+
登录并完成 OAuth2 授权,将凭证加密保存到本地。
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
tmeet auth login
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
> 无参数。执行后按提示在浏览器中完成扫码授权即可。
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
#### `auth logout`
|
|
146
|
+
|
|
147
|
+
登出并清除本地认证凭证。
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
tmeet auth logout
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
> 无参数。
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
#### `auth status`
|
|
158
|
+
|
|
159
|
+
查看当前登录状态,包括 OpenId、AccessToken / RefreshToken 的过期状态和剩余有效时间。
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
tmeet auth status
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
> 无参数。未登录时提示 `Not logged in`,已登录时展示凭证有效期信息。
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
### meeting — 会议管理
|
|
170
|
+
|
|
171
|
+
#### `meeting create` — 创建会议
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
tmeet meeting create --subject <主题> --start <开始时间> --end <结束时间> [选项]
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
178
|
+
|------|------|:----:|--------|------|
|
|
179
|
+
| `--subject` | string | ✅ | — | 会议主题 |
|
|
180
|
+
| `--start` | string | ✅ | — | 会议开始时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
|
|
181
|
+
| `--end` | string | ✅ | — | 会议结束时间,ISO 8601,如 `2026-03-12T15:00+08:00` |
|
|
182
|
+
| `--password` | string | — | — | 会议密码(4~6 位数字) |
|
|
183
|
+
| `--timezone` | string | — | — | 时区,可参见 Oracle-TimeZone 标准,如 `Asia/Shanghai` |
|
|
184
|
+
| `--meeting-type` | int | — | `0` | 会议类型:`0`-普通会议,`1`-周期性会议 |
|
|
185
|
+
| `--join-type` | int | — | `0` | 成员入会限制:`1`-所有成员可入会,`2`-仅受邀成员可入会,`3`-仅企业内部成员可入会 |
|
|
186
|
+
| `--waiting-room` | bool | — | `false` | 是否开启等候室,`true`-开启,`false`-不开启 |
|
|
187
|
+
| `--recurring-type` | int | — | `0` | 周期类型(`--meeting-type=1` 时生效):`0`-每天,`1`-每周一至周五,`2`-每周,`3`-每两周,`4`-每月,`5`-自定义 |
|
|
188
|
+
| `--until-type` | int | — | `0` | 周期结束类型(`--meeting-type=1` 时生效):`0`-按日期结束重复,`1`-按次数结束重复 |
|
|
189
|
+
| `--until-count` | int | — | `7` | 限定会议次数(`--meeting-type=1` 时生效):每天/每个工作日/每周最大 500,每两周/每月最大 500 |
|
|
190
|
+
| `--until-date` | string | — | — | 周期结束日期(`--meeting-type=1` 时生效),ISO 8601,如 `2026-03-12T15:00+08:00` |
|
|
191
|
+
|
|
192
|
+
**示例:**
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# 创建普通会议
|
|
196
|
+
tmeet meeting create \
|
|
197
|
+
--subject "项目评审" \
|
|
198
|
+
--start "2026-04-10T14:00+08:00" \
|
|
199
|
+
--end "2026-04-10T16:00+08:00" \
|
|
200
|
+
--password "123456" \
|
|
201
|
+
--waiting-room
|
|
202
|
+
|
|
203
|
+
# 创建每周重复会议(共 10 次)
|
|
204
|
+
tmeet meeting create \
|
|
205
|
+
--subject "每周站会" \
|
|
206
|
+
--start "2026-04-10T09:30+08:00" \
|
|
207
|
+
--end "2026-04-10T10:00+08:00" \
|
|
208
|
+
--meeting-type 1 \
|
|
209
|
+
--recurring-type 2 \
|
|
210
|
+
--until-type 1 \
|
|
211
|
+
--until-count 10
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
#### `meeting get` — 查询会议详情
|
|
217
|
+
|
|
218
|
+
`--meeting-id` 和 `--meeting-code` 二选一,`--meeting-id` 优先级更高。
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
tmeet meeting get --meeting-id <会议ID>
|
|
222
|
+
tmeet meeting get --meeting-code <会议码>
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
226
|
+
|------|------|:----:|------|
|
|
227
|
+
| `--meeting-id` | string | 二选一 | 会议 ID(优先级高于会议码) |
|
|
228
|
+
| `--meeting-code` | string | 二选一 | 会议码 |
|
|
229
|
+
|
|
230
|
+
**示例:**
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
tmeet meeting get --meeting-id "6953553464429888300"
|
|
234
|
+
tmeet meeting get --meeting-code "931945029"
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
#### `meeting update` — 更新会议
|
|
240
|
+
|
|
241
|
+
仅传入需要修改的字段,未传入的字段保持不变。
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
tmeet meeting update --meeting-id <会议ID> [选项]
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
248
|
+
|------|------|:----:|--------|------|
|
|
249
|
+
| `--meeting-id` | string | ✅ | — | 会议 ID |
|
|
250
|
+
| `--subject` | string | — | — | 会议主题 |
|
|
251
|
+
| `--start` | string | — | — | 会议开始时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
|
|
252
|
+
| `--end` | string | — | — | 会议结束时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
|
|
253
|
+
| `--password` | string | — | — | 会议密码(4~6 位数字) |
|
|
254
|
+
| `--timezone` | string | — | — | 时区,如 `Asia/Shanghai` |
|
|
255
|
+
| `--meeting-type` | int | — | `0` | 会议类型:`0`-普通会议,`1`-周期性会议 |
|
|
256
|
+
| `--join-type` | int | — | `0` | 成员入会限制:`1`-所有成员可入会,`2`-仅受邀成员可入会,`3`-仅企业内部成员可入会 |
|
|
257
|
+
| `--waiting-room` | bool | — | `false` | 是否开启等候室 |
|
|
258
|
+
| `--recurring-type` | int | — | `0` | 周期类型(`--meeting-type=1` 时生效):`0`-每天,`1`-每周一至周五,`2`-每周,`3`-每两周,`4`-每月,`5`-自定义 |
|
|
259
|
+
| `--until-type` | int | — | `0` | 周期结束类型(`--meeting-type=1` 时生效):`0`-按日期结束重复,`1`-按次数结束重复 |
|
|
260
|
+
| `--until-count` | int | — | `7` | 限定会议次数(`--meeting-type=1` 时生效):每天/每个工作日/每周最大 500,每两周/每月最大 500 |
|
|
261
|
+
| `--until-date` | string | — | — | 周期结束日期(`--meeting-type=1` 时生效),ISO 8601,如 `2026-03-12T15:00+08:00` |
|
|
262
|
+
|
|
263
|
+
**示例:**
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
tmeet meeting update \
|
|
267
|
+
--meeting-id "6953553464429888300" \
|
|
268
|
+
--subject "新主题" \
|
|
269
|
+
--start "2026-04-10T15:00+08:00" \
|
|
270
|
+
--end "2026-04-10T16:00+08:00"
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
#### `meeting cancel` — 取消会议
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
tmeet meeting cancel --meeting-id <会议ID> [选项]
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
282
|
+
|------|------|:----:|--------|------|
|
|
283
|
+
| `--meeting-id` | string | ✅ | — | 会议 ID |
|
|
284
|
+
| `--sub-meeting-id` | string | — | — | 周期性会议子会议 ID,取消周期性会议的某个子会议时需要传入 |
|
|
285
|
+
| `--meeting-type` | int | — | `0` | 会议类型:`0`-普通会议,`1`-周期性会议(取消整场周期性会议时传 `1`) |
|
|
286
|
+
|
|
287
|
+
**示例:**
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
# 取消普通会议
|
|
291
|
+
tmeet meeting cancel --meeting-id "6953553464429888300"
|
|
292
|
+
|
|
293
|
+
# 取消周期性会议中的某个子会议
|
|
294
|
+
tmeet meeting cancel \
|
|
295
|
+
--meeting-id "6953553464429888300" \
|
|
296
|
+
--sub-meeting-id "100001"
|
|
297
|
+
|
|
298
|
+
# 取消整场周期性会议
|
|
299
|
+
tmeet meeting cancel \
|
|
300
|
+
--meeting-id "6953553464429888300" \
|
|
301
|
+
--meeting-type 1
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
#### `meeting list` — 查询会议列表
|
|
307
|
+
|
|
308
|
+
查询进行中或即将开始的会议列表。
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
tmeet meeting list [选项]
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
315
|
+
|------|------|:----:|--------|------|
|
|
316
|
+
| `--start` | string | — | — | 分页查询起始时间值,ISO 8601,如 `2026-03-12T15:00+08:00` |
|
|
317
|
+
| `--end` | string | — | — | 分页查询结束时间值,ISO 8601,如 `2026-03-12T15:00+08:00` |
|
|
318
|
+
| `--show-all-sub` | int | — | `0` | 是否展示全部子会议:`0`-不展示,`1`-展示 |
|
|
319
|
+
|
|
320
|
+
**示例:**
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
tmeet meeting list
|
|
324
|
+
tmeet meeting list \
|
|
325
|
+
--start "2026-04-01T00:00+08:00" \
|
|
326
|
+
--end "2026-04-30T23:59+08:00" \
|
|
327
|
+
--show-all-sub 1
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
#### `meeting list-ended` — 查询已结束会议列表
|
|
333
|
+
|
|
334
|
+
查询历史已结束的会议列表,支持按时间范围分页查询。
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
tmeet meeting list-ended [选项]
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
341
|
+
|------|------|:----:|--------|------|
|
|
342
|
+
| `--start` | string | — | — | 查询开始时间,ISO 8601,如 `2026-03-12T15:00+08:00` |
|
|
343
|
+
| `--end` | string | — | — | 查询结束时间,ISO 8601,如 `2026-03-12T15:00+08:00` |
|
|
344
|
+
| `--page` | int | — | `1` | 页码,从 1 开始 |
|
|
345
|
+
| `--page-size` | int | — | `10` | 每页大小,默认 10,最大 20 |
|
|
346
|
+
|
|
347
|
+
**示例:**
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
# 查询本月已结束的会议
|
|
351
|
+
tmeet meeting list-ended \
|
|
352
|
+
--start "2026-04-01T00:00+08:00" \
|
|
353
|
+
--end "2026-04-30T23:59+08:00"
|
|
354
|
+
|
|
355
|
+
# 分页查询
|
|
356
|
+
tmeet meeting list-ended \
|
|
357
|
+
--start "2026-04-01T00:00+08:00" \
|
|
358
|
+
--end "2026-04-30T23:59+08:00" \
|
|
359
|
+
--page 2 --page-size 20
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
#### `meeting invitees-list` — 查询受邀成员
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
tmeet meeting invitees-list --meeting-id <会议ID> [选项]
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
371
|
+
|------|------|:----:|--------|------|
|
|
372
|
+
| `--meeting-id` | string | ✅ | — | 会议 ID |
|
|
373
|
+
| `--pos` | int | — | `0` | 分页获取受邀成员列表的查询起始位置值 |
|
|
374
|
+
|
|
375
|
+
**示例:**
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
tmeet meeting invitees-list --meeting-id "6953553464429888300"
|
|
379
|
+
tmeet meeting invitees-list --meeting-id "6953553464429888300" --pos 20
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
### record — 录制管理
|
|
385
|
+
|
|
386
|
+
#### `record list` — 查询录制列表
|
|
387
|
+
|
|
388
|
+
以下三组参数**任选其一**(均不传则报错):
|
|
389
|
+
- `--start` + `--end`(时间范围)
|
|
390
|
+
- `--meeting-id`(会议 ID)
|
|
391
|
+
- `--meeting-code`(会议号)
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
tmeet record list (--start <开始时间> --end <结束时间> | --meeting-id <ID> | --meeting-code <会议号>) [选项]
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
398
|
+
|------|------|:----:|--------|------|
|
|
399
|
+
| `--start` | string | 三选一 | — | 查询开始时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
|
|
400
|
+
| `--end` | string | 三选一 | — | 查询结束时间,ISO 8601,如 `2026-03-12T14:00+08:00`(与 `--start` 配合使用) |
|
|
401
|
+
| `--meeting-id` | string | 三选一 | — | 会议 ID |
|
|
402
|
+
| `--meeting-code` | string | 三选一 | — | 会议号 |
|
|
403
|
+
| `--page` | int | — | `1` | 页码,从 1 开始 |
|
|
404
|
+
| `--page-size` | int | — | `10` | 页大小 |
|
|
405
|
+
|
|
406
|
+
**示例:**
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
# 按时间范围查询
|
|
410
|
+
tmeet record list \
|
|
411
|
+
--start "2026-04-01T00:00+08:00" \
|
|
412
|
+
--end "2026-04-30T23:59+08:00" \
|
|
413
|
+
--page 1 --page-size 20
|
|
414
|
+
|
|
415
|
+
# 按会议 ID 查询
|
|
416
|
+
tmeet record list --meeting-id "6953553464429888300"
|
|
417
|
+
|
|
418
|
+
# 按会议号查询
|
|
419
|
+
tmeet record list --meeting-code "931945029"
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
#### `record address` — 获取录制下载地址
|
|
425
|
+
|
|
426
|
+
```bash
|
|
427
|
+
tmeet record address --meeting-record-id <录制ID> [选项]
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
431
|
+
|------|------|:----:|--------|------|
|
|
432
|
+
| `--meeting-record-id` | string | ✅ | — | 会议录制 ID |
|
|
433
|
+
| `--page` | int | — | `1` | 页码,从 1 开始 |
|
|
434
|
+
| `--page-size` | int | — | `50` | 每页大小 |
|
|
435
|
+
|
|
436
|
+
**示例:**
|
|
437
|
+
|
|
438
|
+
```bash
|
|
439
|
+
tmeet record address --meeting-record-id "record_abc123"
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
#### `record smart-minutes` — 获取智能纪要
|
|
445
|
+
|
|
446
|
+
```bash
|
|
447
|
+
tmeet record smart-minutes --record-file-id <文件ID> [选项]
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
451
|
+
|------|------|:----:|--------|------|
|
|
452
|
+
| `--record-file-id` | string | ✅ | — | 录制文件 ID |
|
|
453
|
+
| `--lang` | string | — | `default` | 翻译语言选择:`default`-原文(不翻译),`zh`-简体中文,`en`-英文,`ja`-日语 |
|
|
454
|
+
| `--pwd` | string | — | — | 录制文件访问密码 |
|
|
455
|
+
|
|
456
|
+
**示例:**
|
|
457
|
+
|
|
458
|
+
```bash
|
|
459
|
+
tmeet record smart-minutes --record-file-id "file_abc123" --lang zh
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
#### `record transcript-get` — 获取转写详情
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
tmeet record transcript-get --record-file-id <文件ID> [选项]
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
471
|
+
|------|------|:----:|--------|------|
|
|
472
|
+
| `--record-file-id` | string | ✅ | — | 录制文件 ID |
|
|
473
|
+
| `--meeting-id` | string | — | — | 会议 ID |
|
|
474
|
+
| `--pid` | string | — | — | 查询的起始段落 ID |
|
|
475
|
+
| `--limit` | string | — | — | 查询的段落数 |
|
|
476
|
+
|
|
477
|
+
**示例:**
|
|
478
|
+
|
|
479
|
+
```bash
|
|
480
|
+
tmeet record transcript-get --record-file-id "file_abc123" --pid "para_001" --limit "50"
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
485
|
+
#### `record transcript-paragraphs` — 获取转写段落列表
|
|
486
|
+
|
|
487
|
+
```bash
|
|
488
|
+
tmeet record transcript-paragraphs --record-file-id <文件ID> [选项]
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
492
|
+
|------|------|:----:|--------|------|
|
|
493
|
+
| `--record-file-id` | string | ✅ | — | 录制文件 ID |
|
|
494
|
+
| `--meeting-id` | string | — | — | 会议 ID |
|
|
495
|
+
|
|
496
|
+
**示例:**
|
|
497
|
+
|
|
498
|
+
```bash
|
|
499
|
+
tmeet record transcript-paragraphs --record-file-id "file_abc123"
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
---
|
|
503
|
+
|
|
504
|
+
#### `record transcript-search` — 搜索转写内容
|
|
505
|
+
|
|
506
|
+
```bash
|
|
507
|
+
tmeet record transcript-search --record-file-id <文件ID> --text <关键词> [选项]
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
511
|
+
|------|------|:----:|--------|------|
|
|
512
|
+
| `--record-file-id` | string | ✅ | — | 录制文件 ID |
|
|
513
|
+
| `--text` | string | ✅ | — | 搜索关键词 |
|
|
514
|
+
| `--meeting-id` | string | — | — | 会议 ID |
|
|
515
|
+
|
|
516
|
+
**示例:**
|
|
517
|
+
|
|
518
|
+
```bash
|
|
519
|
+
tmeet record transcript-search --record-file-id "file_abc123" --text "季度目标"
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
---
|
|
523
|
+
|
|
524
|
+
### report — 参会报告
|
|
525
|
+
|
|
526
|
+
#### `report participants` — 查询参会人列表
|
|
527
|
+
|
|
528
|
+
```bash
|
|
529
|
+
tmeet report participants --meeting-id <会议ID> [选项]
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
533
|
+
|------|------|:----:|--------|------|
|
|
534
|
+
| `--meeting-id` | string | ✅ | — | 会议 ID |
|
|
535
|
+
| `--sub-meeting-id` | string | — | — | 周期性会议子会议 ID |
|
|
536
|
+
| `--pos` | int | — | `0` | 分页获取参会成员列表的查询起始位置值 |
|
|
537
|
+
| `--size` | int | — | `20` | 拉取参会成员条数,目前每页支持最大 100 条 |
|
|
538
|
+
| `--start` | string | — | — | 查询起始时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
|
|
539
|
+
| `--end` | string | — | — | 查询结束时间,ISO 8601,如 `2026-03-12T14:00+08:00` |
|
|
540
|
+
|
|
541
|
+
**示例:**
|
|
542
|
+
|
|
543
|
+
```bash
|
|
544
|
+
tmeet report participants --meeting-id "6953553464429888300" --size 50
|
|
545
|
+
tmeet report participants \
|
|
546
|
+
--meeting-id "6953553464429888300" \
|
|
547
|
+
--start "2026-04-10T10:00+08:00" \
|
|
548
|
+
--end "2026-04-10T11:00+08:00"
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
---
|
|
552
|
+
|
|
553
|
+
#### `report waiting-room-log` — 查询等候室成员
|
|
554
|
+
|
|
555
|
+
```bash
|
|
556
|
+
tmeet report waiting-room-log --meeting-id <会议ID> [选项]
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
560
|
+
|------|------|:----:|--------|------|
|
|
561
|
+
| `--meeting-id` | string | ✅ | — | 会议 ID |
|
|
562
|
+
| `--page` | int | — | `1` | 页码,默认为 1 |
|
|
563
|
+
| `--page-size` | int | — | `20` | 每页数量,默认为 20 |
|
|
564
|
+
|
|
565
|
+
**示例:**
|
|
566
|
+
|
|
567
|
+
```bash
|
|
568
|
+
tmeet report waiting-room-log --meeting-id "6953553464429888300" --page 1 --page-size 50
|
|
569
|
+
```
|
|
570
|
+
|
|
571
|
+
---
|
|
572
|
+
|
|
573
|
+
## 配置说明
|
|
574
|
+
|
|
575
|
+
配置文件默认存储在 `~/.tmeet/` 目录下,支持通过环境变量覆盖:
|
|
576
|
+
|
|
577
|
+
| 环境变量 | 说明 | 默认值 |
|
|
578
|
+
|----------|------|--------|
|
|
579
|
+
| `TMEET_CLI_CONFIG_DIR` | 配置文件目录 | `~/.tmeet/` |
|
|
580
|
+
| `TMEET_CLI_DATA_DIR` | 加密数据目录 | 平台相关默认路径 |
|
|
581
|
+
|
|
582
|
+
> **注意**:所有时间参数均使用 **ISO 8601** 格式,例如 `2026-04-10T14:00+08:00`。响应中的时间戳字段会自动转换为 ISO 8601 格式展示。
|
|
583
|
+
|
|
584
|
+
## 贡献指南
|
|
585
|
+
|
|
586
|
+
欢迎提交 Issue 和 Pull Request,请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。
|
|
587
|
+
|
|
588
|
+
## 安全
|
|
589
|
+
|
|
590
|
+
如发现安全漏洞,请参阅 [SECURITY.md](SECURITY.md) 了解如何私下报告。
|
|
591
|
+
|
|
592
|
+
## 许可证
|
|
593
|
+
|
|
594
|
+
本项目基于 [MIT License](LICENSE) 开源。
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tencentcloud/tmeet",
|
|
3
|
+
"version": "v1.0.0",
|
|
4
|
+
"description": "腾讯会议 CLI 工具",
|
|
5
|
+
"bin": {
|
|
6
|
+
"tmeet": "./scripts/tmeet.js"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"postinstall": "node scripts/cleanup.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"scripts/",
|
|
13
|
+
"dist/"
|
|
14
|
+
],
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/TencentCloud/tencentmeeting-cli.git"
|
|
18
|
+
},
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=14"
|
|
21
|
+
},
|
|
22
|
+
"license": "MIT"
|
|
23
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
const { execFileSync } = require("child_process");
|
|
6
|
+
const path = require("path");
|
|
7
|
+
const fs = require("fs");
|
|
8
|
+
const os = require("os");
|
|
9
|
+
|
|
10
|
+
// ── 平台 → 产物文件名映射 ────────────────────────────────────────────────────
|
|
11
|
+
const PLATFORM_MAP = {
|
|
12
|
+
"darwin-x64": "tmeet-macOS-Intel",
|
|
13
|
+
"darwin-arm64": "tmeet-macOS-AppleSilicon",
|
|
14
|
+
"linux-x64": "tmeet-Linux-x86_64",
|
|
15
|
+
"linux-arm64": "tmeet-Linux-ARM64",
|
|
16
|
+
"win32-x64": "tmeet-Windows-x86_64.exe",
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const platform = os.platform();
|
|
20
|
+
const arch = os.arch();
|
|
21
|
+
const key = `${platform}-${arch}`;
|
|
22
|
+
const binaryName = PLATFORM_MAP[key];
|
|
23
|
+
|
|
24
|
+
if (!binaryName) {
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const binaryPath = path.join(__dirname, "..", "dist", binaryName);
|
|
29
|
+
|
|
30
|
+
if (!fs.existsSync(binaryPath)) {
|
|
31
|
+
// 二进制不存在,无需清理
|
|
32
|
+
process.exit(0);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// 确保可执行权限(Windows 不需要)
|
|
36
|
+
if (platform !== "win32") {
|
|
37
|
+
fs.chmodSync(binaryPath, 0o755);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// 执行 tmeet auth logout 清理登录态
|
|
41
|
+
try {
|
|
42
|
+
execFileSync(binaryPath, ["auth", "logout"], { stdio: "inherit" });
|
|
43
|
+
} catch (err) {
|
|
44
|
+
process.exit(0);
|
|
45
|
+
}
|
package/scripts/tmeet.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
"use strict";
|
|
4
|
+
|
|
5
|
+
// ── Node.js 最低版本检测(必须用 ES5 语法,确保低版本也能解析)────────────
|
|
6
|
+
var nodeMajor = parseInt(process.versions.node.split(".")[0], 10);
|
|
7
|
+
if (nodeMajor < 14) {
|
|
8
|
+
var _platform = process.platform;
|
|
9
|
+
var upgradeHint = "";
|
|
10
|
+
if (_platform === "darwin") {
|
|
11
|
+
upgradeHint =
|
|
12
|
+
" # 推荐使用 nvm(Node 版本管理器):\n" +
|
|
13
|
+
" curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash\n" +
|
|
14
|
+
" nvm install 18\n" +
|
|
15
|
+
" nvm use 18\n\n" +
|
|
16
|
+
" # 或使用 Homebrew:\n" +
|
|
17
|
+
" brew install node";
|
|
18
|
+
} else if (_platform === "linux") {
|
|
19
|
+
upgradeHint =
|
|
20
|
+
" # 推荐使用 nvm(Node 版本管理器):\n" +
|
|
21
|
+
" curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash\n" +
|
|
22
|
+
" nvm install 18\n" +
|
|
23
|
+
" nvm use 18";
|
|
24
|
+
} else {
|
|
25
|
+
upgradeHint = " 请访问 https://nodejs.org/zh-cn/download 下载最新版本";
|
|
26
|
+
}
|
|
27
|
+
console.error(
|
|
28
|
+
"[tmeet] Node.js 版本过低:当前 v" + process.versions.node +
|
|
29
|
+
",需要 v14 或更高版本。\n\n" +
|
|
30
|
+
"升级方式:\n" + upgradeHint
|
|
31
|
+
);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const { execFileSync } = require("child_process");
|
|
36
|
+
const path = require("path");
|
|
37
|
+
const fs = require("fs");
|
|
38
|
+
const os = require("os");
|
|
39
|
+
|
|
40
|
+
// ── 平台 → 产物文件名映射 ────────────────────────────────────────────────────
|
|
41
|
+
const PLATFORM_MAP = {
|
|
42
|
+
"darwin-x64": "tmeet-macOS-Intel",
|
|
43
|
+
"darwin-arm64": "tmeet-macOS-AppleSilicon",
|
|
44
|
+
"linux-x64": "tmeet-Linux-x86_64",
|
|
45
|
+
"linux-arm64": "tmeet-Linux-ARM64",
|
|
46
|
+
"win32-x64": "tmeet-Windows-x86_64.exe",
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const platform = os.platform(); // darwin | linux | win32
|
|
50
|
+
const arch = os.arch(); // x64 | arm64
|
|
51
|
+
|
|
52
|
+
const key = `${platform}-${arch}`;
|
|
53
|
+
const binaryName = PLATFORM_MAP[key];
|
|
54
|
+
|
|
55
|
+
if (!binaryName) {
|
|
56
|
+
console.error(`[tmeet] 不支持的平台: ${platform}/${arch}`);
|
|
57
|
+
console.error(`支持的平台: ${Object.keys(PLATFORM_MAP).join(", ")}`);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const binaryPath = path.join(__dirname, "..", "dist", binaryName);
|
|
62
|
+
|
|
63
|
+
if (!fs.existsSync(binaryPath)) {
|
|
64
|
+
console.error(`[tmeet] 找不到可执行文件: ${binaryPath}`);
|
|
65
|
+
console.error("请先运行 bash build.sh 编译产物");
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// 确保可执行权限(Windows 不需要)
|
|
70
|
+
if (platform !== "win32") {
|
|
71
|
+
fs.chmodSync(binaryPath, 0o755);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// 透传所有参数并继承 stdio,保持与直接调用二进制完全一致的体验
|
|
75
|
+
try {
|
|
76
|
+
execFileSync(binaryPath, process.argv.slice(2), { stdio: "inherit" });
|
|
77
|
+
} catch (err) {
|
|
78
|
+
process.exit(err.status != null ? err.status : 1);
|
|
79
|
+
}
|