telegram里面用户是可以无限上传文件的,但是我们在国内无法直接访问telegram,所以有大佬开发了个项目,可以通过机器人获取telegram里的文件直链,只需要一台vps即可
原项目地址:https://github.com/EverythingSuckz/TG-FileStreamBot
环境要求:
python3
首先我们通过git拉取项目:- git clone https://github.com/EverythingSuckz/TG-FileStreamBot
复制代码
进入项目地址
- cd TG-FileStreamBot
- virtualenv -p /usr/bin/python3 venv
复制代码
如果这一步报错“Command 'virtualenv' not found”,说明没有安装virtualenv,执行:
安装好virtualenv后,再执行:
- virtualenv -p /usr/bin/python3 venv
- . ./venv/bin/activate
- pip3 install -r requirements.txt
复制代码
然后我们telegram里面搜索botfather并添加机器人:
向bot发送/newbot指令来新建一个bot,以下带#号为bot回复的语句
- #Alright, a new bot. How are we going to call it? Please choose a name for your bot.
- 输入你的bot名称
- #Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
- 然后输入你的bot用户名,之后你会用这个用户名搜索你的bot,bot名必须以**_bot**结尾,比如zhangsan_bot
复制代码
输入用户名后,botfather会回复给你一串机器人密钥,我们要保存好,图中圈出来的部分就是密钥
接下来我们新建一个频道,公开频道或者私人频道都可以 搜索添加@get_id_bot 再将bot添加到频道中,它会回复一个负数给你,那个就是你频道的id,id格式为-100xxxxxxxxxx
我们再到浏览器打开https://my.telegram.org/,登录我们的telegram账号,注册获取一个app id和app hash,这一步就不详细写了,按流程走就行了 现在我们拥有一个机器人密钥,一个app id和一个app hash和一个频道id 然后在项目目录下新建一个名为.env的文件,注意不要忘记前面那个. 按照以下格式编辑.env文件,注意#号后面的内容不要输入到文件中: - API_ID= #这里写你的app id
- API_HASH= #这里写你的app hash
- BOT_TOKEN= #这里写你的机器人密钥
- BIN_CHANNEL= #这里写你的频道id
- PORT= #这里写你想要使用的端口号
- FQDN= #这里填你的域名
- HAS_SSL=False #这里是ssl选项,最好填默认的False
复制代码
编辑好后,保存,我们再在ssh内执行
现在我们只要把tg内的文件转发给我们新建的机器人,或者上传文件给机器人,机器人就会返回一条文件直链供我们下载,下载文件会经过我们的vps中转,如图
注册成服务,首先在当前路径下,创建WebStreamer.sh,内容如下:- #!/bin/bash
- . ./venv/bin/activate
- python3 -m WebStreamer
复制代码
然后创建,并编辑对应服务:- vim /etc/systemd/system/webstreamer.service
复制代码
内容如下:- [Unit]
- Description=telegram online download
- Documentation=https://github.com/EverythingSuckz/TG-FileStreamBot
- After=network-online.target
- Wants=network-online.target
- [Service]
- Type=simple
- User=root
- Group=root
- WorkingDirectory=/root/TG-FileStreamBot
- ExecStart=/usr/bin/bash WebStreamer.sh
- Restart=always
- [Install]
- WantedBy=multi-user.target
复制代码 最后启动服务:- systemctl start webstreamer
复制代码 注意:上面的图片链接资源没有保存在你的服务器。链接也会在一定的时间内失效的,想下载,要尽快
|