A telegram downloader on windows and linux platform based on Python.
Note
由于本项目没有提供Linux环境下的二进制文件,但支持Linux环境运行。
故Linux用户请阅读:"3.0.在生产环境中运行(对于Linux用户)"。
作者:Gentlesprite
B站视频教程:点击观看
Telegram交流群:点击加入
软件免费使用!并且在GitHub开源,如果你付费那就是被骗了。
蓝奏云:点击跳转下载 密码:ceze
Github:点击跳转下载
-
对于Windows11用户,
Windows Terminal
默认已经安装好,可直接跳过此步骤。 -
对于Windows10用户,推荐使用
Windows Terminal
作为默认终端,仅作为推荐安装,无论安装与否不会影响本软件的使用,Windows Terminal
能提供更出色的显示、交互、体验效果,以及避免出现文字显示乱码。Windows Terminal 微软商店:点击跳转下载
Windows Terminal Github:点击跳转下载
-
下载完成完成后
win+r
输入wt
回车打开,然后将Windows Terminal
设为默认终端再启动软件,教程如下:
-
填写自己绑定
Telegram
电报的手机号注意手机号格式先要+地区再写入电话号码例如+12223334455
,+1
为地区,222333445
为你绑定Telegram
的手机号,填写后点击Next
。 -
打开你的
Telegram
客户端,此时会收到来自Telegram
账号的消息,将上面的验证码填入Confirmation code
框中,然后点击Sign in
。 -
点击
API development tools
按照提示填入即可。 -
申请成功会得到一个
api_hash
和api_id
保存下载,切记不要泄露给任何人!
Note
如果配置了机器人,只要保持软件运行,就能实现多端发送下载命令并且随时进行下载。
故可以将软件部署在服务器上,无论是Windows还是Linux平台。
Windows平台可直接使用releases里发布的二进制文件放在服务器运行。
Linux平台的部署教程请阅读:"3.0.在生产环境中运行(对于Linux用户)"。
-
打开后会提示"要打开 Telegram Desktop 吗?"此时点击"打开Telegram Desktop"如下图所示:
如果没有这个弹窗,说明电脑没有安装Telegram客户端,安装后再重试即可。
-
点击开始,如下图所示:
-
然后在当前聊天框中输入
/newbot
后回车,如下图所示:它会回复你
"Alright, a new bot. How are we going to call it? Please choose a name for your bot."
意思是给机器人取一个名字,如下图所示: -
这个名字是显示名称 (display name),并不是唯一识别码,随便设置一下即可,之后可以通过
/setname
命令进行修改。 -
接着设置机器人的唯一名称。字符串必须 以
bot
结尾,比如HelloWorld_bot
或HelloWorldbot
都是合法的。如果设置的名字已经被占用需要重新设置。如设置成了trmd_bot
但是这个名字已经有人使用了,此时会提示"Sorry, this username is already taken. Please try something different."
意思是已经被使用了,需要拟定一个不重复的,如下图所示:如果结果如上图所示,则就代表名字重复了,需要重新拟定一个。
-
直到提示你
"Done! Congratulations on your new bot. . ."
如下图所示:如果结果如上图所示,则代表
bot_token
申请成功了,箭头指的红框处就是你所申请的bot_token
,切记不要泄露给任何人!
-
申请完成后,在软件配置时询问"是否启用「机器人」(需要提供bot_token)? - 「y|n」(默认n)"选择
y
代表需要使用,如下图所示:然后在上图箭头所指处填入"2.2.1.申请教程"第7步申请的
bot_token
后回车,即可配置完成。 -
在一切配置完成,软件启动成功后等待提示"「机器人」启动成功。",就代表机器人可以使用了,如下图所示:
-
在
Telegram
客户端中找到与BotFather
的对话框,找到"2.2.1.申请教程"第7步对话的位置(或者用你自己的方式找到你的机器人的对话框),如下图所示:然后在上图箭头所指处即可跳转到机器人对话框。
-
点击开始,如下图所示:
不出意外,会收到一条来自机器人发送的消息,如下图所示:
如果没收到尝试尝试给机器人发送任意命令。
-
目前机器人支持的命令用法及解释如下表所示:
命令 用法 解释 /help
向机器人发送发送 /help
即可。展示可用命令。 /download
向机器人发送 /download 链接1 链接2 链接3 链接n
即可。分配新的下载任务。 /table
向机器人发送 /table
即可。在终端输出当前下载情况的统计信息。 /exit
向机器人发送 /exit
即可。退出软件。 -
/help
命令使用教程,如下图所示: -
点击菜单可以显示机器人可用的命令,如下图所示:
-
/download
命令使用教程,如下图所示:只要发送了正确的下载命令,终端就会创建对应的下载任务,如下图所示:
-
/table
命令使用教程:需要注意的是,这个表格是实时的状态,并不是最终下载完成的结果,每一次使用它都会随着当前的下载记录而更新。
链接统计表的使用,如下图所示:
计数统计表的使用,如下图所示:
-
/exit
命令使用教程,如下图所示:
# 这里只是介绍每个参数的含义,软件会详细地引导配置参数。
# 如果是按照软件的提示填,选看。如果是手动打开config.yaml修改配置,请仔细阅读下面内容。
# 手动填写时请注意冒号是英文冒号,冒号加一个空格。
api_hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 申请的api_hash。
api_id: 'xxxxxxxx' # 申请的api_id。
# bot_token(选填)如果不填,就不能使用机器人功能。可前往https://t.me/BotFather免费申请。
bot_token: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
download_type: # 需要下载的类型。支持的参数:video,photo。
- video
- photo
is_shutdown: true # 下载完成后是否自动关机。支持的参数:true,false。
links: D:\path\where\your\link\files\save\content.txt # 链接地址写法如下:
# 新建txt文本,一个链接为一行,将路径填入即可请不要加引号,在软件运行前就准备好。
# D:\path\where\your\link\txt\save\content.txt 一个链接一行。
max_download_task: 3 # 最大的下载任务数,值过高可能会导致网络相关问题。支持的参数:所有>0的整数。
proxy: # 代理部分,如不使用请全部填null注意冒号后面有空格,否则不生效导致报错。
enable_proxy: true # 是否开启代理。支持的参数:true,false。
hostname: 127.0.0.1 # 代理的ip地址。
scheme: socks5 # 代理的类型。支持的参数:http,socks4,socks5。
port: 10808 # 代理ip的端口。支持的参数:0~65535。
username: null # 代理的账号,没有就填null。
password: null # 代理的密码,没有就填null。
save_path: F:\directory\media\where\you\save # 下载的媒体保存的目录。
-
链接获取方法:对想要保存的媒体文件点击鼠标右键然后选择复制消息直链如下图所示:
-
目前支持视频和图片两种类型的下载。
-
如果当前复制的链接为多张图片或视频,那么程序会自动下载当前消息所有的内容!
-
现在的部分频道为了避免封禁将媒体文件放在了评论区,并且还禁止转发,此时如想下载评论区里面的视频和图片,请不要复制当前消息的链接。请直接打开评论区,找到任意一个图片或者视频,按照上面所教的方法复制评论区的任意视频或图片的消息直链即可下载当前评论区所有的视频和图片,评论区的消息直链复制的后,后缀会带一个
?comment=123456
,代表是下载评论区的内容,请不要将其删除!如果需要下载评论区的内容请勿手动在链接后添加?comment=123456
,而是采用上述复制的方法,避免出错。 -
links的文本写法1如下图所示:
-
你所需要下载的视频前提是你当前的Telegram账号,在此视频链接的频道中,否则会报错无法下载!!!
-
常见的错误写法(请不要这样写):
字段解释:
字段 解释 ?comment
评论区的链接。 ?single
单独的链接。 ?single&comment
评论区中单独的链接。 /c
私密频道的链接。 https://t.me/TEST/111/666
频道 TEST
话题111
的链接。https://t.me/c/1111111111/333/666
私密频道 1111111111
话题333
的链接。链接解释:
Telegram
链接组成:正常频道:
https://t.me/频道名/消息ID
私密频道:
https://t.me/c/频道名(10位纯数字)/消息ID
话题频道:
https://t.me/频道名/话题ID/消息ID
私密话题频道:
https://t.me/c/频道名(10位纯数字)/话题ID/消息ID
链接 实际频道名 消息ID 解释 https://t.me/TEST/111
TEST
111
下载该链接的所有视频图片。 https://t.me/TEST/111?single
TEST
111
下载该链接的所有视频图片。 https://t.me/TEST/111?comment=666
TEST
111
下载该链接的视频图片的同时,下载该链接下方的讨论组的所有视频图片。 https://t.me/TEST/111?single&comment=666
TEST
111
下载该链接的视频图片的同时,下载该链接下方的讨论组的所有视频图片。 https://t.me/c/1111111111/666
-1001111111111
666
下载该私密频道链接的所有视频图片。 https://t.me/TEST/111/666
TEST
666
下载该话题链接的所有视频图片。 https://t.me/c/1111111111/333/666
-1001111111111
666
下载该私密话题链接的所有视频图片。 上述表格的频道名和消息ID都是相同的,这就代表的重复链接,不要这样写。
原因:注意图片中红框的内容结合上述表格,你会发现
?comment
,?single
和?single&comment
前面的内容都是一模一样的,这代表这是同样的一个链接,如果需要同时下载评论区和原本链接的内容,只需填这一个链接即可全部下载。报错的原因是因为?comment
链接本身就会下载全部内容,若此时再添加一个前缀完全相同的没有带?comment
的链接,就会导致这条链接的内容被下载了两次,如果上一次的任务还没下载完,同样的链接的下载任务再一次地被添加进去了,就会导致下载报错。如果你并非是想下载评论区中的内容,而只是该链接的内容。
写法如下:
正常频道:
https://t.me/xxx/111
私密频道:
https://t.me/c/xxxxxxxxxx/111
话题频道:
https://t.me/xxx/xxx/111
私密话题频道:
https://t.me/c/xxxxxxxxxx/xxx/111
注意这样写就不会下载评论区的内容了!链接中如果带
?single
或?single&comment
字段,不用管,直接复制进来,程序会为你下载该链接的所有内容!
推荐使用Python==3.13.2
作为该项目环境。
需安装python
与git
并配置环境变量。
git clone https://github.com/Gentlesprite/Telegram_Restricted_Media_Downloader.git
cd Telegram_Restricted_Media_Downloader
python -m pip install --upgrade pip
pip install -r requirements.txt
python main.py
git clone https://github.com/Gentlesprite/Telegram_Restricted_Media_Downloader.git
cd Telegram_Restricted_Media_Downloader
python3 -m pip install --upgrade pip
pip3 install -r requirements.txt
python3 main.py
如果提示没有安装pip使用如下命令进行安装:
sudo apt update
sudo apt-get install python3-pip
在项目目录下打开终端使用如下命令拉取仓库当前的最新版本:
git pull
Telegram:@Gentlesprite