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

前言

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

部署 Aria2

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

获取 Telegram Bot 访问令牌

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

获取用户 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 回复并弹出菜单即代表部署成果。

使用 Bot 控制 Aria2 下载

  • 发送链接或者种子文件即可开始下载,下载完成会有通知。

  • 如果配置好了自动上传,那么等待上传完成即可。

局限性

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

尾巴

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


更多 Aria2 教程


相关 TG 频道:Aria2 Channel

相关 TG 群组:Aria2 Group


本博客已开设 Telegram 频道,欢迎小伙伴们订阅关注。

添加新评论

已有 2 条评论

docker run之后,给Bot发消息,提示“You're not allowed to use this bot

检查下用户 ID 有没有填错