TRMD
支持断点续传的Telegram下载器。
[!Tip]
本项目推荐代理:点击跳转。
欢迎提交附带详细复现步骤的BUG反馈。
接受付费定制化需求、付费远程搭建、教学、答疑。
[!Important]
本项目没有帮你解决问题的义务。
如果你遇到问题没有找到解决方案:
联系作者付费解答。
推荐先观看视频教程并配合“README.md”与“常见问题及解决方案汇总”。
加入TRMD交流群搜索历史聊天记录是否提到过相关问题,凡是重复的问题不予回答。
特点
| 特点 |
说明 |
| 受限下载 |
下载(受保存限制)聊天中的媒体文件。 |
| 断点续传 |
下载与上传均支持断点续传。 |
| 网页面板 |
浏览器实时查看下载与上传进度。 |
| 开箱即用 |
提供Windows、Linux平台二进制文件,并支持通过Docker部署运行。 |
| 批量下载 |
🤖下载整个频道及其评论区(可选),并支持关键词、类型、日期等自定义过滤规则。 |
| 使用门槛 |
🤖在帮助菜单通过点击按钮逐步引导用户创建所需任务。 |
| 消息转发 |
🤖频道开启限制保存内容时自动回退为下载后上传。 |
| 文件上传 |
🤖批量上传本地文件到Telegram。 |
| 实时监听 |
🤖监听频道最新消息并自动下载或转发。 |
免责声明
本项目以GNU GPL-3.0协议开源发布。
所有使用本软件的行为及其后果均由使用者自行承担全部法律责任,开发者不对任何使用行为及其后果负责。
本项目按“原样”提供,不附带任何明示或暗示的保证。
1.0.下载地址
1.1.推荐终端(选看)
点击展开
-
对于Windows11用户,Windows Terminal默认已经安装好,可跳过下载的步骤,直接前往第3步(将Windows Terminal设为默认终端)。
-
对于Windows10用户,推荐使用Windows Terminal作为默认终端,仅作为推荐安装,无论安装与否不会影响本软件的使用,Windows Terminal能提供更出色的显示、交互、体验效果,以及避免出现文字显示乱码。
Windows Terminal下载地址如下表:
-
下载完成完成后win+r输入wt回车打开,然后将Windows Terminal设为默认终端再启动软件,教程如下:


2.0.快速开始
2.1.申请电报API
[!IMPORTANT]
申请电报API对IP纯净度要求极高,针对无法申请的情况:
可直接使用YouTube视频教程或B站视频简介下提供的api,随后申请电报API可省略。
-
前往网站:https://my.telegram.org/auth
-
填写自己绑定Telegram电报的手机号注意手机号格式先要+地区再写入电话号码例如+12223334455,+1为地区,222333445为你绑定Telegram的手机号,填写后点击Next。

-
打开你的Telegram客户端,此时会收到来自Telegram账号的消息,将上面的验证码填入Confirmation code框中,然后点击Sign in。


-
点击API development tools按照提示填入即可。

-
申请成功会得到一个api_hash和api_id保存下载,切记不要泄露给任何人!
2.2.电报机器人bot_token申请及使用教程(选看)
[!TIP]
大部分的使用需求都能通过配置机器人满足:
例如需要下载整个频道的内容亦或是监听、转发某个频道,根据实际需求查看对应机器人命令。
故可以将TRMD部署在服务器、NAS,无论是Windows、Linux还是Docker。
点击展开
2.2.1.申请教程
-
前往网站:https://t.me/BotFather
-
打开后会提示"要打开 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,切记不要泄露给任何人!
2.2.2.使用教程
-
申请完成后,在软件配置时询问"是否启用「机器人」(需要提供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或/download 频道链接 1 100 |
分配新的下载任务,两种方式可选(指定链接下载和范围下载,具体使用方法请见下方说明)。 |
/table |
向机器人发送/table即可。 |
在终端输出当前下载情况的统计信息。 |
/forward |
/forward https://t.me/A https://t.me/B 1 100 |
将频道A的消息转发至频道B,其中1代表起始ID,100代表截止ID。 |
/exit |
向机器人发送/exit即可。 |
退出软件。 |
/listen_download |
/listen_download https://t.me/A https://t.me/B https://t.me/n |
实时监听频道A、频道B和频道n的最新消息(任意消息)进行下载。 |
/listen_forward |
/listen_forward https://t.me/A https://t.me/B |
实时监听频道A的最新消息(任意消息)转发至频道B。当频道A存在内容保护限制时,回退至下载后上传。 |
/listen_info |
向机器人发送/listen_info即可。 |
查看当前已经创建的监听信息。 |
/upload |
/upload 本地文件 目标频道 |
上传本地的文件到指定频道。 |
/upload_r |
/upload_r 本地文件夹 目标频道 |
递归上传文件夹(包含子文件夹)到指定频道。 |
/download_chat |
/download_chat 频道链接 |
获取该频道全部内容,用户通过自定义条件进行内容筛选,最终下载该频道中用户所需内容。 |
/auth |
/auth或/auth 用户ID或/auth @用户名 |
添加/移除/查看授权使用机器人的用户,支持用户ID或@用户名。 |
其他功能:
- (
≥v1.8.7)转发视频、图片、音频、语音、GIF、文档、视频笔记、实况图片类型的消息给机器人,即可创建下载任务。
- 此项功能不受用户自定义下载类型限制,确保文件即时获取。
- 转发的消息将按新消息处理,每次均生成独立文件命名。暂不支持重复文件识别,请妥善管理多次转发的相同内容。
- 此功能仅用于便利用户日常使用,对于无法被转发、下载的消息,请根据实际需求使用对应的命令。
2.2.3.命令
/help

菜单

/download
⚠️ 版本变更说明:
| 版本 |
说明 |
≥v1.6.3 |
已全面支持下载时的断点续传功能(支持所有上传场景),增强了在较差网络环境下的传输稳定性与可靠性。 |
-
方式一:

- 只要发送了正确的下载命令,终端就会创建对应的下载任务,如下图所示:

-
方式二:
/table
需要注意的是,这个表格是实时的状态,并不是最终下载完成的结果,每一次使用它都会随着当前的下载记录而更新。
链接统计表的使用,如下图所示:


注意:由于早期代码设计缺陷,链接统计表为后续支持的功能:
-
链接统计表仅会统计所有支持的类型,并不会只统计用户当前所选择的类型。
-
链接统计表对于评论区媒体的统计,会出现总数统计错误的问题,体现在总数为1,小于当前的下载数,完成率>>100%的问题(该问题已在≥v1.5.9修复)。
-
当用户未选择下载所有支持的类型时,在用户所选择的类型下载完成后(或使用机器人发送链接统计表),尽管所有用户指定类型的文件已经下载完成,当链接统计表显示完成率不为100%时,代表该链接还存在其他用户未指定的文件类型,但实际用户所指定的类型已经下载完成了,是正常情况(该问题已在≥v2.0.2调整:在机器人设置或配置文件中被定义为跳过的下载类型与不支持的下载类型,统计时不再计入总数)。
-
版本≥v1.6.5起已支持导出表格功能,通过该命令可在运行时控制是否在退出后导出指定类型的表格。
计数统计表的使用,如下图所示:


/forward
⚠️ 注意:
消息能否转发,在于频道是否开启了限制保存内容功能。
如果无法转发,机器人会在聊天框提供一个下载按钮与下载后上传按钮(≥v1.6.7)。
⚠️ 版本变更说明:
| 版本 |
说明 |
≥v1.6.9 |
/forward将支持过滤转发类型。可通过[帮助页面]->[设置]->[转发设置]进行修改。 |
≥v1.7.5 |
为确保"受限转发"功能顺利完成,在下载后上传过程中,创建下载任务时将忽略配置文件中设置的下载类型限制,此时(指"受限转发"情况)/forward命令无法按照[转发设置]过滤类型。 |
≥v1.8.5 |
为确保"受限转发"功能顺利完成,在下载后上传过程中,创建下载任务时将忽略该链接是否被重复添加的判定。 |
/exit

/listen_download
/listen_download监听下载用于,实时监听该链接的最新消息进行下载。
- 在用户发送了正确的监听命令后,会收到机器人的成功提示。
- 当被监听的频道有可下载的内容时,就会自动发送命令下载。
注册监听下载
/listen_download https://t.me/A
注销监听下载
注销方法
再次向机器人发送创建监听时的命令,机器人将会提供给用户一个用于注销监听的内联键盘,点击确认即可。
与此同时,也可通过网页面板的监听版块提供的按钮注销监听下载(≥v2.0.2)。
/listen_download https://t.me/A
注册多个监听下载
/listen_download https://t.me/A https://t.me/B https://t.me/n
注销多个监听下载
/listen_download https://t.me/A https://t.me/B https://t.me/n
/listen_forward
⚠️ 版本变更说明:
| 版本 |
说明 |
≥v1.6.7 |
当检测到"受限转发"时,自动采用"下载后上传"的方式(默认开启)。当下载并完成上传后,可选择是否删除本地文件(默认关闭)。并且可通过[帮助页面]->[设置]->[上传设置]进行修改。 |
≥v1.6.9 |
/listen_forward将支持过滤转发类型。可通过[帮助页面]->[设置]->[转发设置]进行修改。 |
≥v1.7.5 |
为确保"受限转发"功能顺利完成,在下载后上传过程中,创建下载任务时将忽略配置文件中设置的下载类型限制。 |
≥v1.8.5 |
为确保"受限转发"功能顺利完成,在下载后上传过程中,创建下载任务时将忽略该链接是否被重复添加的判定。 |
/listen_forward监听转发用于,实时监听该链接的最新消息。
- 与
/forward命令一样,消息能否转发,在于频道是否开启了限制保存内容功能。
- 但在
≥v1.6.7起可以通过下载再上传的方式进行"转发"。
- 在用户发送了正确的监听命令后,会收到机器人的成功提示。
- 当被监听的频道有任何新内容时,就会自动转发至用户所指定的频道。
监听行为说明
- 频道独占原则:
- 每个频道同一时间只能激活一种监听模式(下载或转发)。
- 对于
/listen_forward命令,"同一频道"特指被监听的源频道。
- 转发目标频道不受此限制,仍可通过
/listen_download创建下载任务。
- 操作限制:
- 当
频道A正在监听转发频道B时:
- 可以同时在
频道B设置监听下载。
- 但
频道B的监听下载,不会响应来自频道A的监听转发。
- 监听切换流程:
- 必须先通过同一命令(注册监听时的命令)来取消现有监听。
- 然后才能创建新的监听事件。
注册监听转发
/listen_forward https://t.me/A https://t.me/B
注销监听转发
注销方法
再次向机器人发送创建监听时的命令,机器人将会提供给用户一个用于注销监听的内联键盘,点击确认即可。
与此同时,也可通过网页面板的监听版块提供的按钮注销监听转发(≥v2.0.2)。
/listen_forward https://t.me/A https://t.me/B
/listen_info
/upload
⚠️ 版本变更说明:
| 版本 |
说明 |
≥v1.7.9 |
已全面支持上传时的断点续传功能(支持所有上传场景),增强了在较差网络环境下的传输稳定性与可靠性。 |
≥v1.8.4 |
/upload 命令支持me、self 作为目标频道的参数(me、self 作为目标频道参时,代表指向个人收藏夹Saved Messages)。 |
-
/upload用于上传本地的文件到指定频道。
- 支持上传文件夹(当指定路径为文件夹时并且版本需≥v1.7.1)。
- 当指定的路径为文件夹时,将会上传指定文件夹下所有的文件。
-
上传文件语法:
/upload 本地文件(夹) 目标频道
注意事项
Telegram 对上传的单个文件大小设有明确限制:
- 普通用户:单个文件最大上传大小为
2000 MiB(约 2 GB)。
- 会员用户(Telegram Premium):单个文件最大上传大小为
4000 MiB(约 4 GB)。
对于Windows用户
上传一个文件
/upload C:\files\video.mp4 https://t.me/test
上传一个文件夹
版本需要≥v1.7.1。
/upload C:\files https://t.me/test
对于Linux用户
上传一个文件
/upload /home/username/files/video.mp4 https://t.me/test
上传一个文件夹
版本需要≥v1.7.1。
/upload /home/username/files https://t.me/test
/upload_r
⚠️ 版本变更说明:
| 版本 |
说明 |
≥v1.8.4 |
/upload_r命令支持me、self作为目标频道的参数(me、self作为目标频道参时,代表指向个人收藏夹Saved Messages)。 |
/download_chat
-
/download_chat下载指定频道。
- 与
/download不同的是:/download_chat支持通过机器人发送的内联键盘进行自定义内容过滤。
- 该命令支持下载无法复制具体请求链接的对话。
- 使用该命令后,需要通过操作机器人回复中的内联键盘,来设置过滤器、执行任务或取消任务。
- 需要注意的是,在上一个
/download_chat命令任务未执行或取消前,无法发起新的/download_chat命令来创建下载任务。
- 自版本
≥v1.7.5起,/download_chat命令创建的下载任务过滤条件将完全遵循用户在内联键盘中的设置,意味着该命令不会遵循配置文件中的任何规则(例如配置文件中的下载文件类型设置)。
-
目前支持的过滤方式:
| 过滤方式 |
默认值 |
| 日期范围 |
第一条消息的发送日期~最后的一条消息的发生日期 |
| 文件类型 |
视频、图片、文档、音频、语音、动画(GIF)、视频笔记、实况照片 |
| 匹配关键词 |
– |
| 包含评论区 |
关 |
/auth
⚠️ 权限说明:
/auth命令为root专用(root即登录用户),非root用户发送该命令将收到"该命令仅root可用"的提示。
-
/auth用于管理授权使用机器人的用户,支持通过用户ID或@用户名添加授权,并支持查看与移除已授权用户。
-
查看当前已授权的用户列表(不带任何参数,直接发送即可):
/auth
-
添加授权用户(root通过指定用户ID或@用户名进行添加):
/auth 1234567890
/auth @username
-
移除授权用户:进入机器人菜单的[🔐授权用户]→[🔑添加/移除授权用户],在已授权用户列表中点击对应的[🗑️移除授权]内联按钮即可移除。
2.3.配置文件说明
用户配置文件
[!NOTE]
用户配置文件通常无需自行配置,此处旨在介绍全局配置文件中各参数的含义。
用户配置文件会在软件启动时自动在软件目录下生成config.yaml文件,并详细地引导用户配置参数。
手动编辑config.yaml对配置进行修改时,请仔细阅读下面内容理解各参数含义。
需注意配置文件使用的引号、冒号均为半角,冒号后需有一个空格。
api_hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
api_id: 'xxxxxxxx'
bot_token: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
download_type:
- video
- photo
- document
- audio
- voice
- animation
- video_note
- live_photo
is_shutdown: true
links: D:\path\where\your\link\files\save\content.txt
max_retries:
download: 5
upload: 3
max_tasks:
download: 3
upload: 3
proxy:
enable_proxy: true
hostname: 127.0.0.1
scheme: socks5
port: 10808
username: null
password: null
save_directory: F:\directory\media\where\you\save
session_directory: F:\directory\session\where\you\save
temp_directory: F:\directory\temp\where\you\save
参数说明
| 参数 |
说明 |
api_hash |
申请的api_hash(Telegram API 凭据)。 |
api_id |
申请的api_id(Telegram API 凭据,需加引号)。 |
bot_token |
机器人令牌(选填);不填则无法使用机器人功能,可前往BotFather免费申请。 |
download_type |
需要下载的媒体类型,详见download_type参数支持下载的媒体类型表。 |
is_shutdown |
下载完成后是否自动关机,支持true、false。 |
links |
链接地址文本文件路径(一个链接一行,不要加引号,运行前准备好)。 |
max_retries |
任务重试次数,含download(下载任务重试次数)与upload(上传任务重试次数)。 |
max_tasks |
最大并发任务数,含download与upload。 |
proxy |
代理配置,子字段详见proxy参数配置项表;不使用代理时请将enable_proxy设为false(注意键值间冒号后需保留空格,否则YAML解析报错)。 |
save_directory |
下载媒体保存目录(支持通配符)。 |
session_directory |
会话保存目录(支持通配符)。 |
temp_directory |
缓存保存目录(支持通配符)。 |
download_type参数支持下载的媒体类型
| 下载类型 |
说明 |
video |
视频。 |
photo |
图片。 |
document |
文档。 |
audio |
音频。 |
voice |
语音。 |
animation |
动画(GIF)。 |
video_note |
视频笔记。 |
live_photo |
实况照片(未指定且photo存在时视为photo)。 |
proxy参数配置项
| 配置项 |
说明 |
enable_proxy |
是否启用代理,支持true、false。 |
scheme |
代理协议,如socks5、http。 |
hostname |
代理服务器IP或域名。 |
port |
代理服务器端口。 |
username |
代理认证用户名(选填)。 |
password |
代理认证密码(选填)。 |
通配符说明
自版本≥v1.7.4起,save_directory参数将支持通配符,通配符允许用户动态生成存储路径。系统会在下载时自动将通配符替换为对应的实际值,实现按规则自动分类存储。
- 目前
save_directory支持的通配符如下表所示:
| 通配符 |
意义 |
%CHAT_ID% |
以实际频道ID作为指定路径填充。 |
%CHAT_NAME% |
以实际频道名作为指定路径填充(≥v1.9.6)。 |
%MIME_TYPE% |
以实际文件类型作为指定路径填充。 |
%MESSAGE_ID% |
以实际消息ID作为指定路径填充(≥v2.1.1);媒体组使用成员ID最小-最大区间(如123-129)。 |
%MESSAGE_ID_WITH_ENTITIES% |
同%MESSAGE_ID%填充规则,并额外将消息文本与格式化实体序列化为json文件({区间或ID}_entities.json)落盘(≥v2.1.1)。 |
-
用法示例1:
F:\directory\media\%CHAT_ID%
-
用法示例2(≥v1.9.6):
F:\directory\media\%CHAT_NAME%
-
用法示例3:
F:\directory\media\%MIME_TYPE%
-
用法示例4:
F:\directory\media\%CHAT_NAME%\%CHAT_ID%\%MIME_TYPE%
全局配置文件
[!NOTE]
全局配置文件通常无需自行配置,此处旨在介绍全局配置文件中各参数的含义。
部分参数支持通过机器人设置进行修改。
authorized_users: []
console_log_level: WARNING
export_table:
count: false
link: false
file_log_level: INFO
forward_type:
animation: true
audio: true
document: true
photo: true
text: true
video: true
voice: true
video_note: true
live_photo: true
notice: false
upload:
delete: false
download_upload: true
参数说明
| 参数 |
说明 |
authorized_users |
通过/auth命令设置的记录有权限使用机器人的用户。 |
console_log_level |
终端显示的最低日志级别(如WARNING)。 |
export_table |
运行结束时是否导出统计表,含count(控制运行结束时是否导出下载计数统计表)、link(控制运行结束时是否导出下载链接统计表)、upload(控制运行结束时是否导出上传统计表)。 |
file_log_level |
TRMD_LOG.log文件中记录的最低日志级别(如INFO)。 |
forward_type |
控制/listen_forward与/forward命令可转发的文件类型,详见forward_type参数支持转发的媒体类型。 |
notice |
控制机器人启动时是否向用户发送启动提示(欢迎语)。 |
upload |
控制转发时,频道中受保护内容的处理方式,含delete(控制频道中受保护内容在下载上传完成后是否删除本地文件,默认关闭)与download_upload(控制频道中受保护内容是否回退至下载后上传,默认开启)。 |
forward_type参数支持转发的媒体类型
| 下载类型 |
说明 |
text |
文本。 |
video |
视频。 |
photo |
图片。 |
document |
文档。 |
audio |
音频。 |
voice |
语音。 |
animation |
动画(GIF)。 |
video_note |
视频笔记。 |
live_photo |
实况照片(未指定且photo存在时视为photo)。 |
全局配置文件存放路径
对于Windows用户
%APPDATA%/TRMD/.CONFIG.yaml
对于Linux用户
~/.config/TRMD/.CONFIG.yaml
2.4.使用注意事项
点击展开
链接获取方法
对想要保存的媒体文件点击鼠标右键然后选择复制消息直链,如下图所示:

links参数的文本内容具体写法
如下图所示,即一行代表一个链接:

常见的links参数的文本内容的错误写法
如下图所示:

关于私密频道链接的下载行为
- 要求当前所登录的
Telegram账号,在这个私密频道中,否则会报错无法下载。
- 这是
Telegram服务端设计所决定的,任何下载器都无法越界。
重复链接问题说明
问题描述
- 如上图所示,在提交的下载任务中,存在多个前缀相同但参数不同的链接(如
?comment、?single或?single&comment)。
问题原因
- 当链接包含
?comment参数时,会自动下载原始消息及其评论区内容。
- 如果同时提交相同前缀但无
?comment的链接,会导致同一资源被重复添加至下载队列。
- 若前一次任务尚未完成,重复提交相同资源会触发任务冲突,进而引发下载异常。
解决方案
≥v2.0.8已针对重复链接导致的资源竞争问题进行自动处理。
- 仅需提交一个完整链接(如带
?comment的版本),系统会自动处理原始内容及评论区,无需额外提交无参数版本。
- 避免重复提交相同资源,确保每条链接的
t.me/c/<频道>/<消息ID>部分唯一,防止任务冗余。
- 由于这些链接的频道名和消息ID完全一致,实际上指向的是同一资源的不同表现形式。
- 但请注意以下参数的功能差异:
?comment用于标识是否下载评论区内容。
?single用于在媒体组中指定仅下载该消息ID对应的单个资源。
?single&comment用于指定仅下载评论区中该消息ID所对应的内容。
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 |
Telegram链接所有链接格式
"所有"指的是如果有合并发送为一组的文件,则给定一个链接,所有合并发送的文件会被全部下载。
"媒体"指的是用户在config.yaml文件中,通过download_type参数所设置的所需下载类型的媒体。
| 链接 |
实际频道名 |
消息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处理)。 |
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 |
下载该私密话题链接的所有媒体。 |
如何下载评论区的文件
通常在评论区复制任意一条消息链接即可。
评论区链接的下载行为规则的说明
- 仅下载消息正文内容(即频道/群组中直接发布的原始消息)。
- 不包含评论区内容,即使原消息存在评论,也不会被纳入下载任务。
- 下载消息正文 + 关联的全部评论区内容(完整会话结构)。
- 若原消息无评论区(如频道消息或评论功能关闭),则仅下载消息正文内容,与无参数版本行为一致。
非下载评论区的推荐写法
如下表所示:
功能变更概述
自≥v1.5.8版本起,链接中包含?single或?single&comment参数时,系统将启用单文件下载模式。此模式专为以下场景设计与优化:
- 解决
≥1.5.8版本/listen_download当监听到合并发送的文件时,出现重复下载问题。
- 用户需求,仅需从合并发送的多媒体组中提取特定单一文件。
- 用户需求,仅需下载评论区中的单个指定媒体(避免评论区媒体过多时,迟迟下载不到想要的文件)。
参数行为详解
| 参数格式 |
下载范围 |
应用场景 |
xx?single |
仅下载消息正文中的xx对应媒体文件 |
从合并图组/视频组提取单文件 |
?single&comment=xx |
仅下载评论区中的xx所对应的媒体文件 |
获取评论区单独分享的图片/视频 |
版本兼容性说明
- 此特性仅对
≥v1.5.8版本生效。
- 历史版本中这些参数可能被忽略,导致完整内容下载。
最佳实践建议
单一文件下载
当消息包含多个媒体文件时,使用标准链接附加?single参数可精准获取首个文件:
https://t.me/c/123456789/123?single
评论区单文件下载
需从评论区单独下载文件时,应采用复合参数格式:
https://t.me/c/123456789/123?single&comment=xx
参数互斥原则
- 避免同时提交同一消息的完整版和单文件版链接(
≥v2.0.8已针对重复链接导致的资源竞争问题进行自动处理)。
- 单文件模式与评论区下载模式(
?comment)不可混用。
2.5.软件更新教程

3.0.在生产环境中运行
推荐使用Python==3.13.2作为该项目环境(避免使用其他Python版本导致运行时出现报错)。
对于Windows用户
需自行安装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
对于Linux用户
克隆本项目并进入项目目录。
git clone https://github.com/Gentlesprite/Telegram_Restricted_Media_Downloader.git
cd Telegram_Restricted_Media_Downloader
更新pip版本(推荐)。
python3 -m pip install --upgrade pip
创建并使用虚拟环境(可选)。
python3 -m venv venv
source venv/bin/activate
安装程序运行所需依赖并等待全部安装完成。
pip3 install -r requirements.txt
运行程序(到这一步就安装完成并运行了,后面是注意事项)。
python3 main.py
注意事项
如果选择创建虚拟环境运行,在下次运行时也需要先激活虚拟环境。
在项目目录下,激活虚拟环境后再运行程序。
source venv/bin/activate
python3 main.py
如果提示没有安装pip使用如下命令进行安装:
sudo apt update
sudo apt-get install python3-pip
关于更新
在项目目录下打开终端使用如下命令拉取仓库当前的最新版本:
git pull
由于新版本可能使用了新的依赖,使用git pull拉取后,最好更新一下依赖(如果是虚拟环境请先激活再执行)。
pip3 install -r requirements.txt
4.0.运行前设置命令行参数(高阶用法)
[!NOTE]
自版本≥v1.8.3起:
用户可在运行前通过命令行参数对软件运行配置进行更多自定义设置。
点击展开
设置命令行运行参数需先在软件目录打开终端,或任意位置打开终端进入软件目录(经常使用建议配置环境变量)。
目前支持的命令行参数用法及解释如下表所示:
| 短参数 |
长参数 |
解释 |
-h |
--help |
展示帮助 |
-v |
--version |
展示版本信息 |
-q |
--quiet |
跳过重新配置文件的确认提示 |
-c |
--config |
设置用户配置文件的路径 |
-s |
--session |
设置会话文件的路径 |
-t |
--temp |
设置运行缓存的路径 |
-p |
--port |
设置网页面板的端口 |
长参数与短参数最终结果一致。
4.1.参数
-h、–help
该参数用于展示帮助。
-v、–version
该参数用于展示版本信息。
-q、–quiet
| 使用须知 |
| 1.该参数用于跳过重新配置文件的确认提示。 |
| 2.用户配置文件缺少必要参数时,指定该参数无效。 |
| 3.该参数为一次性设置,不记忆。 |
-c、–config
| 使用须知 |
| 1.该参数用于设置用户配置文件的路径。 |
| 2.该参数旨在解决多个实例(多开)场景下,避免重复部署软件本体而设计的配置分离方案。 |
3.该参数需指定一个符合“2.3.配置文件说明(用户配置文件)”格式规范的文件,并且后缀名需为.yaml。 |
| 4.当指定的文件路径无效时,将使用软件默认设置。 |
| 5.该参数为一次性设置,不记忆。 |
-
对于生产环境用户(需要先完成前置步骤“3.0.在生产环境中运行”):
以Linux系统为例(Winodws系统同理),此处假设用户配置文件位于/home/username/files/example.yaml。
python3 main.py -c /home/username/files/example.yaml
python3 main.py --config /home/username/files/example.yaml
-
对于Windows用户:
此处假设用户配置文件位于C:\files\example.yaml。
TRMD.exe -c C:\files\example.yaml
TRMD.exe --config C:\files\example.yaml
-
对于Linux用户:
此处假设用户配置文件位于/home/username/files/example.yaml。
./TRMD -c /home/username/files/example.yaml
./TRMD --config /home/username/files/example.yaml
-s、–session
⚠️ 版本变更说明:
| 版本 |
说明 |
≥v1.8.5 |
-s、--session参数在设置后将被保存到用户配置文件的session_directory参数中,下次使用时无需重复指定,除非需要修改该设置。 |
≥v2.1.1 |
-s、--session指定的会话目录中会新增TRMDStorage.db数据库文件,用于保存网页面板的下载与上传记录,删除或迁移该文件仅影响网页记录,不影响账号登录。 |
| 使用须知 |
| 1.该参数用于设置会话文件的路径。 |
2.软件会在用户登录成功时后,默认在运行目录下生成sessions文件夹,用于保存当前账号信息,以便后续快速登录。 |
| 3.该参数旨在解决多账号登录场景下需手动重命名会话文件的问题,使用该参数用户可通过直接指定不同路径,选择对应账号进行登录。 |
4.该参数需指定一个文件夹,可包含已有的.session文件,指定为空文件夹或不存在时,登录后将在该路径自动生成会话文件。 |
README 内容过长,已截取前 64 KB。完整内容请前往 GitHub 仓库查看。
评论