前言
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 前端最佳解决方案。
相关 TG 频道:Aria2 Channel
相关 TG 群组:Aria2 Group
本博客已开设 Telegram 频道,欢迎小伙伴们订阅关注。
本文作者:P3TERX
本文链接:https://p3terx.com/archives/aria2-telegram-bot-automatically-uploads-to-google-drive-onedrive.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
https://github.com/jw-star/aria2bot 可以试试这个bot
请问博主有想法实现转发tg文件自动下载并上传网盘吗?
真不错
要是能下载tg转存的视频和图片
那就更好了
不知道有没有类似的自建bot
黑群晖nas,就算拉取latest对bot发送start也没反应
TG 需要科学上网的,你要看你 NAS 能不能正常连 TG 服务器。建议放国外的 VPS 上用。
用不了的,最后改成latest 拉取最新版。稳定运行一个月了,每次发送100个种子文件,超棒的机器人,谢谢博主。
....
磁力链接发送格式是什么,直接发机器人没反应。
就直接发磁力链接就行,没反应大概率是没设置好。
目前那个tele-aria2的镜像有问题,作者也没打算更新了
报这个错误
大佬你好,请问rclone能使用SA能突破GD每日750G上传的限制吗?有些时候离线的东西太多了,一天都上传不完。这个要怎么配置呢?
rclone 没这功能,它的魔改版 gclone 或者 fclone 可以
博客已经进我收藏夹了。博主能不能试试写一个Aira2下载并自动上传到阿里网盘的脚本?阿里网盘的一些API在Github上可以找到。。迫于懒,博主去看看吧
我的脚本是调用的 RCLONE ,如果 RCLONE 支持了就能支持。阿里网盘 API 这东西要估计不是简单的一个脚本能解决的了,短时间应该搞不出来。你可以去 RCLONE 那边提意见看能不能支持。
如果你是Nas上用的话,我觉得docker里跑webdav-aliyundriver,配合群晖自带的Cloud Sync,可以实现将Aria2下载的同步到阿里云盘。
好棒,备用机有着落了
我bot创建成功了,然后就是给它发链接后就没动静了,是不是有可能没有连接上Aria2?
没动静理论上是没连上
docker部署的机器人 对接的aria2网站可否用127.0.0.1来替代?
在机器人与aria2部署在同一服务器的情况下
可以
docker run之后,给Bot发消息,提示“You're not allowed to use this bot
检查下用户 ID 有没有填错