Telegram Downloader 部署教程
🚀 Telegram Downloader 部署教程
使用 Docker 部署 Telegram 文件下载机器人,支持将 Telegram 文件保存到 NAS 或 Linux 服务器。
📋 目录
✨ 功能简介
Telegram Downloader 是一个基于 Docker 的 Telegram 机器人,可以将 Telegram 中的文件自动下载到 NAS 或 Linux 服务器。
主要功能:
| 功能 | 说明 |
|---|---|
| 📥 自动下载 | 支持视频、图片、文档等所有格式 |
| 📦 大文件支持 | 支持下载较大的 Telegram 文件 |
| ⚡ 并发下载 | 支持多文件同时下载 |
| 📁 自动保存 | 按原文件名保存到指定目录 |
| 🔧 易于部署 | 使用 Docker 快速部署 |
🔧 前期准备
系统要求
- ✅ NAS 或 Linux 服务器
- ✅ 已安装 Docker 和 Docker Compose
- ✅ 足够的磁盘空间
检查 Docker 环境
1 | # 检查 Docker 版本 |
🔑 获取配置信息
在部署之前,你需要获取以下 4 个关键信息:
1️⃣ 获取 API_ID 和 API_HASH
步骤:
- 访问 https://my.telegram.org/apps
- 输入你的 Telegram 手机号(带国家代码,如
+8613800138000) - 输入收到的验证码登录
- 点击
Create New Application - 填写应用信息:
- App title:
Telegram Downloader - Short name:
telegram_downloader - Platform:选择任意
- 点击
Create Application - 复制并保存以下信息:
- api_id(数字,如:
555343476) - api_hash(32 位字符串,如:
555806aa32934346aade8556bdf3cc)
⚠️ 重要提示:
| 配置项 | 格式 | 示例 |
|---|---|---|
| API_ID | 纯数字 | 55534776 |
| API_HASH | 32 位字母数字 | 555806aa3434aade8556bdf3cc |
2️⃣ 创建 Telegram Bot 并获取 BOT_TOKEN
步骤:
- 在 Telegram 中搜索
@BotFather - 点击进入对话,发送
/start - 创建新机器人,发送
/newbot - 按提示设置机器人名称(如:
Telegram Downloader Bot) - 设置机器人用户名(必须以
bot结尾,如:tg_downloader_bot) - BotFather 会返回类似这样的信息:
1 | Done! Congratulations on your new bot. |
- 复制并保存
BOT_TOKEN
⚠️ 重要提示:
- ✅ 正确格式:
5554321098:AAHxvsE-q834344F(英文冒号) - ❌ 错误格式:
55521098:AAHxvsE-q8Fa23434O4F(中文冒号)
验证 Token 是否有效:
注意:
BOT_TOKEN属于敏感信息。只建议在可信设备和网络环境中验证,验证后不要将链接截图或分享给他人。
在浏览器中访问:
1 | https://api.telegram.org/bot<TOKEN>/getMe |
返回 ok: true 即为有效。
3️⃣ 获取你的 Telegram 用户 ID
方法 1:使用 @userinfobot
- 在 Telegram 中搜索
@userinfobot - 发送
/start - Bot 会回复你的信息,包括 Id(数字)
方法 2:使用 @myidbot
- 在 Telegram 中搜索
@myidbot - 发送
/start - Bot 会回复你的 Your User ID
示例: 555505234986
🚀 快速部署
步骤 1:创建项目目录
1 | # 创建项目目录 |
步骤 2:创建 docker-compose.yml 文件
创建文件 docker-compose.yml,内容如下:
1 | version: '3.8' |
替换占位符:
| 占位符 | 替换为 | 示例 |
|---|---|---|
你的API_ID |
API_ID | 55522776 |
你的API_HASH |
API_HASH | 555806aa3293434aade8556bdf3cc |
你的Bot_Token |
BOT_TOKEN | 5554341098:A3434q8Fa29lL4O4F |
你的用户ID |
用户 ID | 555543434986 |
步骤 3:创建必要的目录
1 | # 创建配置目录 |
步骤 4:启动容器
1 | # 启动容器 |
步骤 5:查看启动日志
1 | # 查看容器日志 |
✅ 成功启动的日志示例:
1 | Starting Telegram Downloader Bot... |
❌ 如果出现错误:
| 错误信息 | 解决方法 |
|---|---|
ApiIdInvalid |
API_ID 或 API_HASH 错误,重新获取 |
AccessTokenInvalid |
BOT_TOKEN 错误,检查格式(是否为英文冒号) |
✅ 验证部署
1. 验证容器状态
1 | docker ps | grep telegram-downloader |
预期输出:
1 | abc123def456 jsavargas/telegram-downloader:latest "python3 /app/downloa…" 10 seconds ago Up 5 seconds telegram-downloader |
2. 验证挂载点
1 | docker inspect telegram-downloader --format='{{range .Mounts}}{{.Source}} -> {{.Destination}}{{"\n"}}{{end}}' |
预期输出:
1 | /app/data/files/config -> /config |
3. 在 Telegram 中测试机器人
- 在 Telegram 中找到你创建的机器人
- 向机器人发送
/start - 机器人应该回复欢迎信息
4. 测试下载功能
- 在 Telegram 中向机器人发送一个下载链接
- 或转发一个文件给机器人
- 等待下载完成
5. 检查下载文件
1 | # 进入下载目录 |
📖 使用指南
基本使用
向机器人发送消息:
- 发送 Telegram 消息链接 → 自动下载
- 发送 Telegram 文件 → 自动保存
- 发送 Telegram 视频链接 → 自动下载
支持的文件格式:
| 类型 | 格式示例 |
|---|---|
| 🎬 视频 | MP4, AVI, MKV 等 |
| 🖼️ 图片 | JPG, PNG, GIF 等 |
| 📄 文档 | PDF, DOC, XLS 等 |
| 📦 压缩包 | ZIP, RAR 等 |
| 🎵 音频 | MP3, FLAC 等 |
下载文件位置
| 路径类型 | 路径 |
|---|---|
| NAS 实际路径 | /app/data/files/downloads |
| 容器内路径 | /download |
查看下载进度
方法 1:查看容器日志
1 | docker logs -f telegram-downloader |
方法 2:进入容器查看
1 | # 进入容器 |
管理下载文件
1 | # 查看文件列表 |
🛠️ 常见问题
问题 1:容器无法启动
错误信息:
1 | Conflict. The container name "/telegram-downloader" is already in use |
解决方案:
1 | docker stop telegram-downloader |
问题 2:API_ID 或 API_HASH 无效
错误信息:
1 | ApiIdInvalid: The api_id/api_hash combination is invalid |
解决方案:
- 重新获取
API_ID和API_HASH - 确认复制完整且正确
- 更新
docker-compose.yml - 重启容器:
1
2docker compose down
docker compose up -d
问题 3:BOT_TOKEN 无效
错误信息:
1 | AccessTokenInvalid: The bot access token is invalid |
解决方案:
| 检查项 | 正确 | 错误 |
|---|---|---|
| 冒号类型 | : (英文) |
: (中文) |
| 格式 | 数字:字母 |
其他格式 |
- 重新从 @BotFather 获取 Token
- 确认冒号是英文冒号
: - 验证 Token:
1
https://api.telegram.org/bot<TOKEN>/getMe
- 更新
docker-compose.yml - 重启容器
问题 4:机器人不响应消息
排查步骤:
1 | # 1. 检查容器状态 |
问题 5:路径重复问题
错误信息:
1 | 本地路径:/vol1/1000/tg_bigfile_bot/vol1/1000/tg_bigfile_bot/downloads... |
解决方案:
1 | cd /app/data/files |
⚙️ 高级配置
修改下载目录
编辑 docker-compose.yml:
1 | volumes: |
例如:
1 | volumes: |
重启容器:
1 | docker compose down |
多用户配置
修改 AUTHORIZED_USER_ID:
1 | - AUTHORIZED_USER_ID=5534986,1255567890,955543210 |
多个用户 ID 使用英文逗号分隔。
调整并发下载数
修改 MAX_CONCURRENT_TASKS:
| 值 | 适用场景 |
|---|---|
1-2 |
网络较慢 |
3 |
默认值,适合大多数情况 |
4 |
网络较快 |
1 | - MAX_CONCURRENT_TASKS=3 |
修改文件权限
根据你的 NAS 用户 ID 设置:
1 | - PUID=1000 |
📝 维护命令
常用命令速查表
| 操作 | 命令 |
|---|---|
| 启动容器 | docker compose up -d |
| 停止容器 | docker compose stop |
| 重启容器 | docker compose restart |
| 查看日志 | docker logs -f telegram-downloader |
| 进入容器 | docker exec -it telegram-downloader sh |
| 删除容器 | docker compose down |
| 更新镜像 | docker compose pull && docker compose up -d |
📊 配置总结
关键配置一览
| 配置项 | 说明 | 示例 |
|---|---|---|
| API_ID | Telegram API ID | 5552776 |
| API_HASH | Telegram API Hash | 555a806aa32910a806aade8556bdf3cc |
| BOT_TOKEN | Bot Token | 555521098:AAHxvsE-q8Fa29lL4O4F |
| AUTHORIZED_USER_ID | 授权用户 ID | 555234986 |
| TZ | 时区 | Asia/Shanghai |
| MAX_CONCURRENT_TASKS | 最大并发下载数 | 3 |
| PUID/PGID | 文件权限 | 1000/1000 |
文件/目录结构
1 | /app/data/files/ |
💡 提示与注意事项
✅ 最佳实践
- 定期清理下载目录,避免磁盘空间不足。
- 设置合理的并发数,避免网络拥堵。
- 定期查看日志,及时发现异常。
- 备份配置文件,便于后续迁移。
⚠️ 注意事项
- 妥善保管 API 凭证,不要泄露。
BOT_TOKEN是敏感信息,不要提交到公开仓库或分享给他人。- 确保磁盘空间充足,避免下载失败。
- 定期更新镜像,获取最新功能和修复。
🎉 结语
至此,Telegram Downloader 已经部署完成。
现在你可以:
- ✅ 通过 Telegram 下载文件
- ✅ 在 NAS 上管理下载的文件
- ✅ 自动化文件下载和管理
祝你使用愉快!
如有问题,欢迎在评论区交流!
📌 相关链接
- Telegram 官网:https://telegram.org
- Docker 官网:https://www.docker.com
- 项目地址:https://github.com/jsavargas/telegram-downloader
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Anyaerの部落格!










