Telegram(电报)群组批量下载


访问成功o( ̄▽ ̄)ブ

众所周知,Telegram是世界上最好用的免费网盘非常好用的的社交软件,里面有非常多的群组,保存有非常多的学习资源,但对于我这种患有异常严重的收集癖的人来说来说,收集到资源后,在Telegram上的寻找之前收藏的某一资源的时间就变得异常的漫长,这真是太痛苦了/(ㄒoㄒ)/~~

此项目就是我在Github上找到暂时的解决方法,此项目并非本人开发,寻找项目地址请下滑到本页页底。


搭建过程


脚本需要python3环境

零、准备

1
whoami       #查看当前用户身份

下面命令须在root下运行,非root用户请运行以下命令:

1
su root      #输入命令后根据提示输入root密码

一、python3安装

1
2
3
apt-get -y install python3    #Ubuntu/Diban系统安装命令

yum -y install python3 #Centos系统安装命令

安装完成后可使用此命令查看python是否安装成功

1
python3 --version

Python 3.4以及之后版本请运行:

1
2
3
apt-get -y install python3-pip   #Ubuntu/Diban系统

yum -y install python3 #Centos系统

二、准备

  • 这里 获取自己的Telegram API密钥。
  • 下载脚本
1
git clone https://github.com/snow922841/telegram_channel_downloader.git

失败请运行下面的安装命令

1
2
3
apt-get -y install git     #Ubuntu/Diban系统安装命令

yum -y install git #Centos系统安装命令
  • 安装fclone(可选)
1
wget https://github.com/mawaya/rclone/releases/download/fclone-v0.4.1/fclone-v0.4.1-linux-amd64.zip -O fclone.zip && unzip fclone.zip && mv fclone*/fclone /usr/bin && chmod +x /usr/bin/fclone && fclone version

失败请运行下面的安装命令

1
2
3
apt-get -y install wget    #Ubuntu/Diban系统安装命令

yum -y install wget #Centos系统安装命令

三、使用

  • 进入脚本目录
1
cd telegram_channel_downloader
  • 安装依赖
1
pip3 install -r requirements.txt
  • 修改telegram_channel_downloader.py文件内的 api_id 和 api_hash 为你自己的
  • 修改脚本内的bot_token 、 admin_id等必填配置
  • 鉴于网友需要上传GD,特添加了使用gclone自动上传到团队盘的功能,需要在配置区域设置。具体查看脚本内注释

运行

1
python3 tg_channel_downloader.py
  • 按照提示输入telegram绑定的手机号获取验证码并输入
  • 配置完成后需要给bot发送 /start 频道的链接 0 才会正式开始运行脚本,否则无法启动 0代表开始下载消息的ID,可以自行修改。
  • 如未执行成功,返回“ModuleNotFoundError: No module named ‘telethon’”,请执行
1
pip3 install telethon      #安装telethon

四、常见问题

  • 关于获取admin_id

可以在电报中给@get_id_bot这个bot发消息获取

  • 关于上传到OneDrive

在脚本中找到一下参数:drive_id=’’,drive_name=’onedrive’, onedrive 就是你配置rclone的时候填的盘名称, 还有102行的fclone替换为rclone,rclone需要自行安装。

  • google teamdrive id

google teamdrive id是你的文件夹最后“/”后的一串字母,即:

  • telegram_channel_downloader.py文件备注。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
api_id = 1234567  # 你的telegram api id
api_hash = '1234567890abcdefgh' # 你的telegram api hash
bot_token = '1234567890:ABCDEFGHIJKLMNOPQRST' # 你的bot_token
admin_id = 1234567890 # 你的 chat id
save_path = '/usr/downloads' # 你从telegram下载到服务器上的地址
upload_file_set = True # 将上传文件设置为谷歌驱动器
drive_id = '5FyJClXmsqNw0-Rz19' # google teamdrive id 如果使用onedrive,删除''内的内容即可。
drive_name = 'gc' # 挂载驱动器名称
max_num = 5 # 同时下载数量
# filter file name/文件名过滤
filter_list = ['你好,欢迎加入 Quantumu', '\n']
# filter chat id /过滤某些频道不下载
blacklist = [1388464914, ]
download_all_chat = False # 监控所有你加入的频道,收到的新消息如果包含媒体都会下载,默认关闭
filter_file_name = [] # 过滤文件后缀,可以填jpg、avi、mkv、rar等。

本项目地址-Github