- 移除 TodoItem 中的 priority、created_at 和 updated_at 字段 - 强制每个任务都必须有唯一 id,且由用户负责生成 - 修改合并模式逻辑,merge=true 下保留未提及的旧任务 - 支持已完成和已取消任务重新激活(状态改回 pending 或 in_progress) - 禁止 in_progress 状态退回到 pending,必须标记为 completed 或 cancelled - 优化状态转换校验,允许特定状态间合法切换 - 简化任务变更消息,移除详细的新增/更新/移除统计 - 更新文档和示例,明确 id 必须由用户生成和使用 - 修复和补充测试,增强状态转换和合并模式验证 - 调整任务时间戳生成逻辑,统一使用当前时间及索引 - 该变更提供更合理的任务状态机械及管理模式,提升稳定性和易用性
138 lines
5.6 KiB
Markdown
138 lines
5.6 KiB
Markdown
|
||
# minutes +download
|
||
|
||
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
||
|
||
下载妙记的音视频媒体文件到本地,或获取有效期 1 天的下载链接。只读操作。
|
||
|
||
本 skill 对应 shortcut:`lark-cli minutes +download`。
|
||
|
||
## 命令
|
||
|
||
```bash
|
||
# 下载妙记(默认布局,落到 ./minutes/{minute_token}/<server-filename>)
|
||
lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx
|
||
|
||
# 指定输出文件(单 token,文件路径)
|
||
lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --output ./meeting.mp4
|
||
|
||
# 指定输出目录(单/批量均可,目录路径)
|
||
lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --output-dir ./downloads
|
||
|
||
# 仅获取下载链接(有效期 1 天),不下载文件
|
||
lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --url-only
|
||
|
||
# 批量下载多个妙记(默认布局,逐个落到 ./minutes/{minute_token}/)
|
||
lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx,obcnyyyyyyyyyyyyyyyyyyyy
|
||
|
||
# 批量下载到同一指定目录
|
||
lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx,obcnyyyyyyyyyyyyyyyyyyyy --output-dir ./downloads
|
||
|
||
# 预览 API 调用
|
||
lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --dry-run
|
||
```
|
||
|
||
## 参数
|
||
|
||
| 参数 | 必填 | 说明 |
|
||
|------|------|------|
|
||
| `--minute-tokens <tokens>` | 是 | 妙记 Token,逗号分隔支持批量(最多 50 个) |
|
||
| `--output <path>` | 否 | 输出文件路径(单 token)。若传入的是已存在目录,等价于 `--output-dir`。与 `--output-dir` 互斥 |
|
||
| `--output-dir <dir>` | 否 | 输出目录(单/批量均可)。与 `--output` 互斥 |
|
||
| `--overwrite` | 否 | 覆盖已存在的输出文件 |
|
||
| `--url-only` | 否 | 仅返回下载链接,不下载文件 |
|
||
| `--dry-run` | 否 | 预览 API 调用,不执行 |
|
||
|
||
> **默认落点**:未指定 `--output` / `--output-dir` 时,文件落到 `./minutes/{minute_token}/<server-filename>`。文件名沿用服务端 Content-Disposition / Content-Type 推断,Agent 可从 `saved_path` 字段读取实际路径。同一 minute_token 的录像和 `vc +notes` 的逐字稿默认会落在**同一目录**下,方便聚合。
|
||
|
||
## 核心约束
|
||
|
||
### 1. 妙记必须已完成转写
|
||
|
||
音视频文件仅在妙记转写完成后可下载。如果妙记尚未准备好,API 会返回 `2091003` 错误。
|
||
|
||
### 2. 下载链接有效期 1 天
|
||
|
||
`--url-only` 返回的链接有效期为 1 天,过期后需重新获取。
|
||
|
||
### 3. 频率限制
|
||
|
||
API 限流 5 次/秒,批量下载时需注意控制频率。
|
||
|
||
### 4. 所需权限
|
||
|
||
| 身份 | 所需权限 |
|
||
|------|---------|
|
||
| user / bot | `minutes:minutes.media:export` |
|
||
|
||
## 输出结果
|
||
|
||
### 下载模式(默认)
|
||
|
||
单 token:
|
||
|
||
```json
|
||
{
|
||
"minute_token": "obcnxxxxxxxxxxxxxxxxxxxx",
|
||
"artifact_type": "recording",
|
||
"saved_path": "/path/to/minutes/obcnxxxxxxxxxxxxxxxxxxxx/访谈一则.m4a",
|
||
"size_bytes": 52428800
|
||
}
|
||
```
|
||
|
||
批量:`downloads` 数组,每条与上面结构一致,失败项带 `error` 字段。
|
||
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| `minute_token` | 妙记 Token(用于 Agent 索引) |
|
||
| `artifact_type` | 固定为 `"recording"`(与 `vc +notes` 的 `"transcript"` 区分) |
|
||
| `saved_path` | 文件保存的本地路径(绝对路径) |
|
||
| `size_bytes` | 文件大小(字节) |
|
||
|
||
### URL 模式(--url-only)
|
||
|
||
```json
|
||
{
|
||
"minute_token": "obcnxxxxxxxxxxxxxxxxxxxx",
|
||
"download_url": "https://..."
|
||
}
|
||
```
|
||
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| `minute_token` | 妙记 Token |
|
||
| `download_url` | 媒体文件下载链接(有效期 1 天) |
|
||
|
||
## 如何获取 minute_token
|
||
|
||
| 来源 | 获取方式 |
|
||
|------|---------|
|
||
| 妙记 URL | 从 URL 末尾提取,如 `https://sample.feishu.cn/minutes/obcnxxxxxxxxxxxxxxxxxxxx` → `obcnxxxxxxxxxxxxxxxxxxxx` |
|
||
| 妙记元信息查询 | `lark-cli minutes minutes get --params '{"minute_token": "obcn..."}'` |
|
||
| 会议录制查询 | `lark-cli vc +recording --meeting-ids <id>` 或 `lark-cli vc +recording --calendar-event-ids <event_id>` |
|
||
|
||
## 常见错误与排查
|
||
|
||
| 错误现象 | 错误码 | 根本原因 | 解决方案 |
|
||
|---------|--------|---------|---------|
|
||
| 参数无效 | 2091001 | minute_token 格式不正确 | 检查 token 是否完整(24 位) |
|
||
| 资源不存在 | 2091002 | token 不存在 | 确认 minute_token 正确 |
|
||
| 妙记尚未准备好 | 2091003 | 转写未完成 | 等待转写完成后重试 |
|
||
| 资源已删除 | 2091004 | 妙记已被删除 | 确认妙记文件仍然存在 |
|
||
| 权限不足 | 2091005 | 无阅读权限 | 检查是否有该妙记的访问权限 |
|
||
| `missing required scope(s)` | — | 应用缺少权限 | 运行 `auth login --scope "minutes:minutes.media:export"` |
|
||
|
||
## 提示
|
||
|
||
- 音视频文件可能较大,下载无固定超时限制(由用户 Ctrl+C 控制取消)。
|
||
- 默认落点 `./minutes/{minute_token}/` 与 `vc +notes` 的逐字稿共享同一目录,方便 Agent 聚合同一会议的所有产物。
|
||
- 单 token 模式下 `--output` 若传入已存在目录(如 `--output ./existing-dir`),等价于 `--output-dir`,文件落入该目录(cp 语义)。
|
||
- 批量模式下 `--output` 不接受已存在的文件路径(会报错),应改用 `--output-dir`。
|
||
- 如需获取妙记的纪要内容(逐字稿、AI 总结等),请使用 [vc +notes](../../lark-vc/references/lark-vc-notes.md)。
|
||
|
||
## 参考
|
||
|
||
- [lark-minutes](../SKILL.md) — 妙记全部命令
|
||
- [lark-vc-notes](../../lark-vc/references/lark-vc-notes.md) — 会议纪要查询
|
||
- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
|