README
🚀 Zoom 会议录制下载工具
这是一个用于下载 Zoom 会议录制文件的 Python 工具,支持命令行和 MCP 服务器两种使用方式,能有效帮助用户获取和管理 Zoom 会议录制。
🚀 快速开始
本工具支持命令行和 MCP 服务器两种使用方式,可根据需求灵活选择。使用前需进行依赖安装和环境配置。
✨ 主要特性
- 获取会议录制列表:能获取指定日期范围内的所有会议录制列表。
- 批量下载:可批量下载会议录制文件到本地。
- 自动创建目录:自动按会议主题和时间创建目录结构。
- 断点续传:支持断点续传,会检测已下载文件大小。
- MCP 服务器模式:支持 MCP 服务器模式,可集成到 Claude Code。
- 灵活配置:支持环境变量和命令行参数配置。
📦 安装指南
依赖安装
pip install -r requirements.txt
环境配置
方法一:使用 .env 文件(推荐)
创建 .env 文件并添加以下配置:
ZOOM_AUTH=your_authorization_token
ZOOM_CSRFTOKEN=your_zoom_csrftoken
ZOOM_COOKIES=your_browser_cookies
方法二:命令行参数
直接通过命令行传递认证信息。
获取认证信息
- 登录 Zoom 网页版(https://thoughtworks.zoom.us/recording/)。
- 打开浏览器开发者工具(F12)。
- 切换到 Network 标签。
- 刷新页面,点击任意请求。
- 在请求头中复制:
Authorization值。zoom-csrftoken值。
- 在 Application > Cookies 中复制所有 Cookies。
💻 使用示例
命令行模式
1. 下载所有录制
python download_zoom_recordings.py
2. 指定日期范围
python download_zoom_recordings.py -s "01/01/2024" -e "12/31/2024"
3. 指定下载目录
python download_zoom_recordings.py -d /path/to/downloads
4. 传入认证信息
python download_zoom_recordings.py -a "your_auth_token" -t "your_csrftoken" -c "your_cookies"
完整参数说明
| 参数 | 短参数 | 说明 | 默认值 |
| ---------------- | ------ | ---------------------------- | ----------------------- |
| --cookies | -c | 浏览器 cookies 字符串 | 环境变量 ZOOM_COOKIES |
| --cookies-file | -f | cookies JSON 文件路径 | 无 |
| --auth | -a | Authorization header 值 | 环境变量 ZOOM_AUTH |
| --csrftoken | -t | zoom-csrftoken 值 | 环境变量 ZOOM_CSRFTOKEN |
| --from | -s | 开始日期 (mm/dd/yyyy) | 01/01/2022 |
| --to | -e | 结束日期 (mm/dd/yyyy) | 当前日期 |
| --output | -o | recordings.json 保存路径 | download_dir 下 |
| --download-dir | -d | 下载目录 | downloads |
| --use-existing | -u | 使用已存在的 recordings.json | true |
MCP 服务器模式
启动 MCP 服务器
python mcp_server.py
MCP 服务器会暴露 download_recordings 工具,可在 Claude Code 中使用。
Claude Code 配置
在 .mcp.json 中添加:
{
"mcpServers": {
"zoom-download": {
"command": "python",
"args": ["/path/to/mcp_server.py"],
"env": {}
}
}
}
📚 详细文档
项目结构
zoom/
├── download_zoom_recordings.py # 主下载脚本
├── zoom_utils.py # 工具函数模块
├── mcp_server.py # MCP 服务器实现
├── requirements.txt # Python 依赖
├── recordings.json # 会议列表数据(自动生成)
├── downloads/ # 下载目录(自动创建)
└── README.md # 说明文档
文件结构
下载的文件会自动按以下结构组织:
downloads/
└── 会议主题_20240101_143000/
├── file_1.mp4
├── file_2.mp4
└── ...
🔧 技术细节
ZoomRecordingDownloader 类
主要方法:
get_meeting_list()- 获取单页会议列表。get_all_recordings()- 获取所有会议录制信息。save_recordings_to_json()- 保存录制信息到 JSON。get_download_file_list()- 获取单个会议的下载文件列表。download_file()- 下载单个文件。download_meeting_recordings()- 下载单个会议的所有录制。download_all()- 批量下载所有录制。
zoom_utils 模块
纯函数工具模块,提供:
extract_filename_from_url()- 从 URL 提取文件名。build_meeting_dir_name()- 构建会议目录名。parse_cookies_string()- 解析 cookies 字符串。ensure_directory_exists()- 确保目录存在。extract_recordings_from_response()- 从 API 响应提取录制列表。extract_download_urls_from_response()- 从响应提取下载 URL。
📄 许可证
MIT License
⚠️ 重要提示
- 认证信息过期:认证信息可能定期失效,需要重新获取。
- 请求频率:工具内置了 1 秒的请求间隔,避免触发 Zoom 的速率限制。
- 文件大小:大型录制文件可能需要较长时间下载。
- 存储空间:确保有足够的磁盘空间存储下载的文件。
- Cookies 格式参考:
_zm_mtk_guid=xx; _zm_visitor_guid=xx; ..
Scan to contact