使用tg机器人自动下载并上传频道内文件到本地&网盘

一. Telegram API 申请

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

二. 搭建tg机器人

  1. 下载脚本
    git clone <https://github.com/alonedogboy/telegram_channel_downloader.git>
  2. 安装 rclone。如果只需要下载到本地,则无需安装这一步
  3. 进入脚本目录
    cd telegram_channel_downloader
  4. 安装依赖
    pip3 install -r requirements.txt
  5. 修改 telegram_channel_downloader.py 文件内的相关信息:

api_id、api_hash:telegram api得到的信息,分别填入对应位置;

bot_token:联系@BotFather 创建一个机器人,也可以是现有的。将获得的token。填入其中;

admin_id:联系@get_id_bot 发送随意消息获取;

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

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

  1. 运行脚本:可用SCREEN保持在线
python3 tg_channel_downloader.py
# 输入 telegram 所绑定的手机号,获取验证码并输入后即可

screen相关命令:

# 创建一个screen会话:
screen -S xx #xx为创建会话的名称
# 隐藏并保留当前会话窗口:
按Ctrl+A,再按"D"键
# 恢复会话窗口:
screen -r xx #恢复名字为xx的会话
# 如果忘记或者没有设定会话名称:
screen -ls #列出所有会话,找到并使用恢复命令即可
# 关闭会话窗口
exit
  1. 运行:给机器人发送 /start 频道的链接 0 ,就可以正式开始运行脚本,下载文件了。

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

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