Telegram Bot 控制 Aria2 下载并自动上传到 Google Drive、OneDrive

  • A+
所属分类:系统文档

前言

tele-aria2 是一个可以控制 Aria2 服务端的 Telegram Bot ,它可以发任务到远程 Aria2 进行下载、查看任务、删除任务等操作。准确来说它是一个 Aria2 前端程序,只不过形式不是我们所熟知的 Ar­i­aNg 那样的 Web 页面,而是以一个聊天机器人的形式存在。如果 Aria2 配置好联动 Rclone 自动上传,那么就可以实现发送下载链接给 Bot → Aria2 下载 → Rclone 自动上传文件到 Google Drive 等网盘的骚操作。

部署 Aria2

Aria2 一键安装管理脚本 增强版 (GNU/​Linux) 和 Aria2 Pro (Docker) 任选其一,这里不做赘述了。如果需要自动上传那么就需要配置联动 Rclone 的步骤,能正常下载并上传即代表部署工作完成,否则忽略这个步骤即可。

获取 Telegram Bot 访问令牌

使用 @BotFather 创建自己的 Bot 并获取访问令牌(<TOKEN>),过程如图所示:

Telegram Bot 控制 Aria2 下载并自动上传到 Google Drive、OneDrive

获取用户 ID

  • 给刚创建 Bot 随便发送一个信息
  • 访问https://api.telegram.org/bot<TOKEN>/getUpdates(替换<TOKEN>字段),会获得一长串信息,其中"id":字段后面的数字就是所要获取的用户 ID 。

部署 tele-aria2

为了防止环境不统一导致部署失败将使用 Docker 进行部署。

  • 首先编写一个配置文件,从上到下依次是 Aria2 RPC 地址、密钥、代理地址、Bot 访问令牌、用户 ID、任务显示数量最大值。根据自己的实际情况填写,自由地区的 VPS 可以去掉代理地址配置。
{
  "aria2-server": "ws://10.0.0.2:6800/jsonrpc",
  "aria2-key": "P3TERX_2020",
  "proxy": "http://127.0.0.1:7890",
  "bot-key": "123456789:xyz",
  "user-id": "123456",
  "max-index": 10
}

TIPS: 如果你需要多用户支持,用户 ID 之间用,(半角逗号)隔开即可,就像这样:"user-id": "123,456,789"

  • 把编写好的配置文件保存到 ~/.tele-aria2-conf.json(这个文件名称和路径随意,自己知道就行,后面的 Docker 运行命令中记得替换)
nano ~/.tele-aria2-conf.json
  • 运行 Docker 容器
docker run -d \ 
--name tele-aria2 \
--restart unless-stopped \
--log-opt max-size=1m \
--network host \
-v ~/.tele-aria2-conf.json:/config.json \
p3terx/tele-aria2:0.2.2
  • 发送/start给 Bot ,Bot 回复并弹出菜单即代表部署成果。
Telegram Bot 控制 Aria2 下载并自动上传到 Google Drive、OneDrive

使用 Bot 控制 Aria2 下载

  • 发送链接或者种子文件即可开始下载,下载完成会有通知。
Telegram Bot 控制 Aria2 下载并自动上传到 Google Drive、OneDrive
  • 如果配置好了自动上传,那么等待上传完成即可。

局限性

  • 无法在 Bot 中直接查看上传进度,毕竟只是 Aria2 的前端
  • 暂时一个 Bot 只能控制一个 Aria2 服务端

尾巴

tele-aria2 目前尚处于初级开发阶段,功能比较极简,不过 Aria2 绝大多数时间的使用场景是添加、暂停、删除任务。Ar­i­aNg 功能强大,但由于开发者为了保持操作逻辑的严谨性(添加任务前可修改默认参数),因此牺牲掉批量添加种子功能,而 tele-aria2 可以一次性发送多个种子来实现批量添加种子,一定程度上也弥补了 Ar­i­aNg 这个功能的缺失。所以说在日常使用场景中 tele-aria2 可以替代 Ar­i­aNg ,而在需要单独定制任务参数或者查看任务进度时使用 Ar­i­aNg ,二者相辅相成应该算是目前 Aria2 前端最佳解决方案。


  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: