因为需要经常转存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目录里
4、chmod +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数字。
好了,到此就开始愉快的下载吧!
文章出处:CNBoy 四海部落,刀云转载