使用 电报机器人 tele bot 下载视频资源到nas群晖上
本文章解决:
通过tele 手机APP 远程执行群晖上的命令 、 tdl使用。
效果图:
只要复制资源的链接,发送给机器人,就可以实现自动下载

安装部署:
有2种方式,一种是通过我弄好的Docker容器【方便】,另一种是自己构建docker【更多参与感】。
Docker版:
1.1 获取ADMIN_ID(详见:https://medium.com/@tabul8tor/how-to-find-your-telegram-user-id-6878d54acafa),(如果需要多个人使用, 那么这里的adminUsers 就输入多个)

1.2 获取机器人token(自己Google,或者私聊我)

1.3 创建config.js,把下面这段代码写入config.js了,其中adminUsers填写ADMIN_ID,botToken机器人的token:
module.exports = {
config:function(){
return (
{
adminUsers:[XXXXXX], //admin users' telegram id, should be numbers
botToken: 'XXXX:XXXXX', // bot token
}
);
}};1.4 下载镜像:
这里有个docker版本的,https://hub.docker.com/r/aikunzhe/teleshellbot ,内置的tdl版本:v0.18.3 on Nov 29, 2024

1.5 运行容器:
文件夹路径:/root/.tdl 放置tdl的个人配置信息的;/downloads 下载目录,/app/config.js 机器人的配置信息;
网络:使用host,
环境:需要配置系统代理,还有修改tdl的代理、存储方式。这里自己解决网络问题。
docker run -d \
--restart=always \
--privileged \
--network=host \
--name tgbot \
-e http_proxy=0.0.0.0:2017 \
-e https_proxy=0.0.0.0:2017 \
-e TDL_PROXY=0.0.0.0:2017 \
-e TDL_STORAGE={"type": "file", "path": "/root/.tdl/data.json"}\
-v /宿主机/.tdl:/root/.tdl \
-v /宿主机/downloads:/downloads \
-v /宿主机/config.js:/app/config.js \
aikunzhe/teleshellbot

【结束】
自己构建版:
1.创建teleg 机器人,省略,自己去百度
2.下载git项目 ,修改你的ADMIN_ID和token 并运行dockefile
2.2 获取ADMIN_ID,(如果需要多个人使用, 那么这里的adminUsers 就输入多个)2.3 获取机器人token(自己Google,或者私聊我)2.4 修改config.js:

2.3 构建容器:
docker build -t tgbot .2.4 运行容器:
三个代理地址可以不填写,只要保证自己的网络环境畅通。
配置download目录,方便下载的资源在群晖文件管理器中查看。
docker run -d \
--restart=always \
--privileged \
--network=host \
--name tgbot \
-e http_proxy=0.0.0.0:2017 \
-e https_proxy=0.0.0.0:2017 \
-e TDL_PROXY=0.0.0.0:2017 \
-e TDL_STORAGE={"type": "file", "path": "/root/.tdl/data.json"}\
-v /宿主机/.tdl:/root/.tdl \
-v /宿主机/downloads:/downloads \
-v /宿主机/config.js:/app/config.js \
tgbot

配置tdl
仅需配置一次,进入容器配置tdl,登录tg账号:
docker exec -it 62f12bf7878f(容器id) /bin/sh #进入容器
./tdl login -T code #使用手机号码和验证码登录这里列出一个更多的tdl操作命令:具体详细教程:https://docs.iyear.me/tdl/zh/getting-started/quick-start/#login
使用:
在tg的机器人界面,调用tg下载:
./tdl dl -u https://t.me/xxxxx -d /download/xxx --reconnect-timeout 0 -t 4 -l 2
#参数说明 -d /download/xxx 配置下载目录
#参数说明 -t 4 -l 2 使用每个任务4个线程,2个并发任务下载
#参数说明 --reconnect-timeout 0 重连超时,如果您的网络不稳定,请将超时设置为更长时间或0(无限)。
调用其他命令:
诸如 ls 等命令,只要docker里面有 也可以通过这个对话框进行调用

参考:
tdl 说明文档:https://docs.iyear.me/tdl/zh/more/env/
tgbot的源代码: https://github.com/aikunzhe/TeleShellBot
tdl无法同时下载多个文件,所以需要修改存储为“file”才能使用多进程。

重连超时,因为下载的文件比较大,所以在默认2m里面是无法下载完的,所以需要调整一下这个参数。

进入docker容器的方式有很多,比如通过极空间自带的ssh:


浙公网安备 33010602011771号