Loading

使用 电报机器人 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:

 

posted @ 2025-01-20 23:06  LungGiyo  阅读(3940)  评论(0)    收藏  举报