使用tg机器人自动下载并上传频道内文件

发布时间: 2022-10-04

因为需要经常转存tg群里的文件,一旦多起来就得经常手动转存,于是在GitHub找到了一个自动下载并上传到OD、GD的tg机器人源码。搭建过程中,博主使用的是Debian9系统,脚本作者使用的是Ubuntu 18.04.5。其他系统自测。同时,搭建过程需要 python3.6.9 环境,经过实测,通过apt-get自动安装的是 python3.5,运行该脚本会报错。

如果运行运行脚本时出现164行报错,那可能就是你的系统或是环境问题,这一点要注意。

GitHub地址:telegram_channel_downloader

一. Telegram API 申请

进入 https://my.telegram.org/apps ,登录后选择 Apps ,填写相关信息后自动生成 apiId 和 apiHash 等信息。如果之前申请过,进入 Apps 后即可看到。

这个很简单,这里就不啰嗦了。

二. 安装 python3.6.9

1. 安装 aptitude 及 依赖包

sudo apt-get install aptitude
sudo aptitude -y install gcc make zlib1g-dev libffi-dev libssl-dev

2. 下载 Python 3.6.9,解压并授予权限

wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar -xzvf Python-3.6.9.tgz
chmod -R +x Python-3.6.9

3. 进入文件夹,执行安装配置,开始编译安装

cd Python-3.6.9/
./configure --prefix=/usr/local/python36
make && make install

4. 对 python 运营文件夹赋予权限

sudo chmod 777 -R /usr/local/python36

5. 添加PATH环境变量

vim ~/.bashrc

在文件末尾添加:export PATH=/usr/local/python36/bin:$PATH

source ~/.bashrc

6. 添加快捷方式

ln -s /usr/local/python36/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python36/bin/pip3.6 /usr/bin/pip3.6
ln -s /usr/local/python36/bin/pip3 /usr/bin/pip3
ln -s /usr/local/python36/bin/pyvenv-3.6 /usr/bin/pyvenv

7. 检查安装是否成功:返回版本信息即代表安装成功

python3 -V
pip -V

8. 升级pip3、查询python库需要升级的文件,升级库文件(这一步可做可不做)

python3 -m pip install --upgrade pip
pip3 list --outdated
pip3 install --upgrade 需升级的库名

三. 开始正式搭建tg机器人

1. 下载脚本

git clone https://github.com/snow922841/telegram_channel_downloader.git

2. 安装 rclone / gclone 或是 fclone:这三个都可以用于上传GD,rclone、gclone仅能用于上传至OD。如果只需要下载到本地,则无需安装这一步

Rclone安装及检查命令:
curl https://rclone.org/install.sh | sudo bash
rclone --version

Gclone安装及检查命令:
bash <(wget -qO- https://git.io/gclone.sh) 
gclone --version

Fclone安装办法:
1、进入项目页:https://github.com/mawaya/rclone/releases,下载对应系统版本的zip文件
2、在本地解压获得fclone文件
3、上传至/usr/bin目录里
4chmod +x /usr/bin/fclone来赋予权限


*** 安装完之后一定要记得配置好需要上传的网盘。

3. 进入脚本目录

cd telegram_channel_downloader

4. 安装依赖

pip3 install -r requirements.txt

5. 修改 telegram_channel_downloader.py 文件内的相关信息:

api_id、api_hash:第一步获取到的对应信息,分别填入对应位置;

bot_token:@BotFather 申请一个新的bot机器人(必须是未使用的),将获得一串字符。填入其中;

admin_id:可以在电报中给 @get_id_bot 发送随意消息获取;

如果需要上传到OD:应修改脚本中以下参数:drive_id=”,drive_name=’onedrive’,onedrive 就是你配置 rclone 的时候填的网盘名称,还有第102行的“fclone”替换为“rclone”;

所有配置都有相应备注,根据需要修改。

6. 运行脚本:脚本只要在运行过程中才能使用,可以使用screen保持不断线

python3 tg_channel_downloader.py
 # 按照提示输入你的 telegram 所绑定的手机号,获取验证码并输入后即可

screen的一些相关命令:

# 创建一个screen会话:
screen -S xx      #xx为创建会话的名称 

# 隐藏并保留当前会话窗口: 
Ctrl+A,再按"D" 

# 恢复会话窗口: 
screen -r xx      #恢复名字为xx的会话 

# 如果忘记或者没有设定会话名称: 
screen -ls      #列出所有会话,找到并使用恢复命令即可 

# 关闭会话窗口 
exit

7. 配置完成后,给你的bot机器人发送: /start 频道的链接 0 ,就可以正式开始运行脚本,下载文件了。

频道的链接:点击你的频道名就能看到频道链接;

0:这是消息ID,可以自己定义,0代表的是最早的信息。如果要从特定某条信息往后下载,鼠标右键点击该条消息,选择复制该消息直链,就能从链接末尾看到消息ID数字。

请在下方留下您的评论.加入TG吹水群