MCPcopy Index your code
hub / github.com/Gentlesprite/Telegram_Restricted_Media_Downloader

github.com/Gentlesprite/Telegram_Restricted_Media_Downloader @v2.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.0.0 ↗ · + Follow
364 symbols 1,450 edges 20 files 72 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

logo

Telegram_Restricted_Media_Downloader

A telegram downloader on windows and linux platform based on Python.

Python 3.13.2 pyrogram@kurigram 2.2.19 Platform Windows & Linux Ask DeepWiki

[!NOTE] 由于本项目提供的Linux版本可能对较早版本的Linux系统兼容性较差。
无法运行的Linux用户请阅读:"3.0.在生产环境中运行(对于Linux用户)""6.0.通过Docker运行"
如果你遇到任何问题,请先仔细阅读:"常见问题及解决方案汇总"
没有找到解决方案再进群或私聊提问。

免责声明:

本项目以MIT协议开源发布,本项目及依赖本项目发布的软件均为免费非盈利性质。仅限于合法、合规的用途。严禁使用本软件从事任何违反法律法规、侵犯他人合法权益或干扰平台正常运营的行为。

所有使用本软件的行为及其后果均由使用者自行承担全部法律责任,开发者不对任何使用行为及其后果负责。


本项目按“原样”提供,不附带任何明示或暗示的保证。

作者 Gentlesprite
YouTube视频教程 点击观看
Telegram交流群 点击加入
支持作者 点击跳转

1.0.下载地址:

平台 下载地址 备注
蓝奏云 点击跳转 密码:ceze
Github 点击跳转
Gitcode 点击跳转
Gitee 点击跳转 仅发布源码
Telegram交流群 点击加入 群文件

1.1.(选看)推荐终端:

点击展开

  1. 对于Windows11用户Windows Terminal默认已经安装好,可跳过下载的步骤,直接前往第3步。(将Windows Terminal设为默认终端)

  2. 对于Windows10用户,推荐使用Windows Terminal作为默认终端,仅作为推荐安装,无论安装与否不会影响本软件的使用Windows Terminal能提供更出色的显示、交互、体验效果,以及避免出现文字显示乱码。

Windows Terminal下载地址如下表:

平台 下载地址
微软商店 点击跳转
Github 点击跳转
  1. 下载完成完成后win+r输入wt回车打开,然后将Windows Terminal设为默认终端再启动软件,教程如下:

image

image

2.0.快速开始:

2.1.申请电报API:

  1. 前往网站:https://my.telegram.org/auth

  2. 填写自己绑定Telegram电报的手机号注意手机号格式先要+地区再写入电话号码例如+12223334455+1为地区,222333445为你绑定Telegram手机号,填写后点击Next

image

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

image

image

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

image

  1. 申请成功会得到一个api_hashapi_id保存下载,切记不要泄露给任何人!

2.2.(选看)电报机器人(bot_token)申请及使用教程:

[!NOTE] 如果配置了机器人,只要保持软件运行,就能实现多端发送下载命令并且随时进行下载
故可以将软件部署在服务器上,无论是Windows还是Linux平台。
Windows平台可直接使用releases里发布的二进制文件放在服务器运行。
Linux平台的部署教程请阅读:"3.0.在生产环境中运行(对于Linux用户)"

点击展开

2.2.1.申请教程:

  1. 前往网站:https://t.me/BotFather

  2. 打开后会提示"要打开 Telegram Desktop 吗?"此时点击"打开Telegram Desktop"如下图所示:

image

如果没有这个弹窗,说明电脑没有安装Telegram客户端,安装后再重试即可。

  1. 点击开始,如下图所示:

image

  1. 然后在当前聊天框中输入/newbot后回车,如下图所示:

image

它会回复你"Alright, a new bot. How are we going to call it? Please choose a name for your bot."意思是给机器人取一个名字,如下图所示:

image

  1. 这个名字是显示名称 (display name),并不是唯一识别码,随便设置一下即可,之后可以通过 /setname命令进行修改。

image

  1. 接着设置机器人的唯一名称。字符串必须 以bot结尾,比如 HelloWorld_botHelloWorldbot 都是合法的。如果设置的名字已经被占用需要重新设置。如设置成了 trmd_bot但是这个名字已经有人使用了,此时会提示"Sorry, this username is already taken. Please try something different."意思是已经被使用了,需要拟定一个不重复的,如下图所示:

image

如果结果如上图所示,则就代表名字重复了,需要重新拟定一个。

  1. 直到提示你"Done! Congratulations on your new bot. . ."如下图所示:

image

如果结果如上图所示,则代表bot_token申请成功了,箭头指的红框处就是你所申请的bot_token切记不要泄露给任何人!

2.2.2.使用教程:

  1. 申请完成后,在软件配置时询问"是否启用「机器人」(需要提供bot_token)? - 「y|n」(默认n)"选择y代表需要使用,如下图所示:

image

然后在上图箭头所指处填入"2.2.1.申请教程"第7步申请的bot_token后回车,即可配置完成。

  1. 在一切配置完成,软件启动成功后等待提示"「机器人」启动成功。",就代表机器人可以使用了,如下图所示:

image

  1. Telegram客户端中找到与BotFather的对话框,找到"2.2.1.申请教程"第7步对话的位置(或者用你自己的方式找到你的机器人的对话框),如下图所示:

image

然后在上图箭头所指处即可跳转到机器人对话框。

  1. 点击开始,如下图所示:

image

不出意外,会收到一条来自机器人发送的消息,如下图所示:

image

如果没收到尝试尝试给机器人发送任意命令。

  1. 目前机器人支持的命令用法及解释如下表所示:
命令 用法 解释
/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代表起始ID100代表截止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 频道链接 下载指定频道并支持通过内联键盘自定义内容过滤

其他功能: - (≥v1.8.7)转发视频图片音频语音GIF文档视频笔记类型的消息给机器人,即可创建下载任务。 - 此项功能不受用户自定义下载类型限制,确保文件即时获取。 - 转发的消息将按新消息处理,每次均生成独立文件命名。暂不支持重复文件识别,请妥善管理多次转发的相同内容。 - 此功能仅用于便利用户日常使用,对于无法被转发、下载的消息,请根据实际需求使用对应的命令。

  1. /help命令使用教程,如下图所示:

image

  1. 点击菜单可以显示机器人可用的命令,如下图所示:

image

  1. /download命令使用教程,如下图所示: > ⚠️ 注意:
    > 自版本≥v1.6.3起:
    > 已全面支持下载时的断点续传功能(支持所有上传场景),增强了在较差网络环境下的传输稳定性与可靠性。

  2. 方式一:

    • image
    • 只要发送了正确的下载命令,终端就会创建对应的下载任务,如下图所示:
    • image
  3. 方式二:

    • 该功能为版本≥v1.5.1的新增功能,用于对于单一链接的范围下载,并且该方式要求指定频道链接起始ID结束ID

    bash # 语法格式如下: /download 频道链接 起始ID 结束ID # 举例: /download https://t.me/test 1 500 # 代表下载https://t.me/test从消息ID=1到结束ID=500的媒体。

  4. /table命令使用教程:

需要注意的是,这个表格是实时状态,并不是最终下载完成的结果,每一次使用它都会随着当前下载记录而更新。

链接统计表的使用,如下图所示:

image

image

注意:由于早期代码设计缺陷,链接统计表为后续支持的功能:

  • 链接统计表仅会统计所有支持的类型并不会只统计用户当前所选择的类型。

  • 链接统计表对于评论区媒体的统计,会出现总数统计错误的问题,体现在总数1小于当前的下载数完成率>>100%的问题(该问题已在≥v1.5.9修复)。

  • 当用户未选择下载所有支持的类型时,在用户所选择的类型下载完成后(或使用机器人发送链接统计表),尽管所有用户指定类型的文件已经下载完成,当链接统计表显示完成率不为100%时,代表该链接还存在其他用户未指定的文件类型,但实际用户所指定的类型已经下载完成了,是正常情况。

  • 版本≥v1.6.5起已支持导出表格功能,通过该命令可在运行时控制是否在退出后导出指定类型的表格

计数统计表的使用,如下图所示:

image

image

  1. /forward命令使用教程:

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

  2. 转发消息语法: bash /forward 频道A 频道B 起始ID 结束ID

  3. 实例:

    • 该实例代表转发https://t.me/test频道中从消息ID=1结束ID=500的消息到 https://t.me/test2 频道

    bash /forward https://t.me/test https://t.me/test2 1 500

  4. 转发至个人收藏夹(任选一种命令即可):

    • 方式1,使用me或self指向个人收藏夹(任选一种命令即可):

    bash /forward https://t.me/test me 1 500

    bash /forward https://t.me/test self 1 500

    • 方式2,使用 https://t.me/用户名

    • 用户名即指个人账户信息里@后面那一串,需用户提前手动自己设置,否则无法使用该方式。

    • 例如通过查询个人信息,得知当前设置的用户名为@developer,此时指向个人的链接即为https://t.me/developer

    bash /forward https://t.me/test https://t.me/developer 1 500

    • 无论使用方式1或方式2,都代表转发 https://t.me/test 频道 中从消息ID=1到结束ID=500的消息到个人收藏夹
  5. 转发个人收藏夹的内容至任意频道:

  6. 方式1:

    bash /forward me https://t.me/test 1 500

  7. 方式2:

    bash /forward https://t.me/developer me 1 500

  8. 无论使用方式1或方式2,都代表转发个人收藏夹中从消息ID=1到结束ID=500的消息到https://t.me/test 频道

  9. /exit命令使用教程,如下图所示:

image

  1. /listen_download命令使用教程:

  2. /listen_download监听下载用于,实时监听该链接的最新消息进行下载。

  3. 在用户发送了正确的监听命令后,会收到机器人的成功提示。
  4. 当被监听的频道有可下载的内容时,就会自动发送命令下载。

  5. 注册监听下载:

    bash /listen_download https://t.me/A

  6. 注销监听下载:

    再次向机器人发送创建监听时的命令,机器人将会提供给用户一个用于注销监听的内联键盘,点击确认即可。

    bash /listen_download https://t.me/A

  7. 注册多个监听下载:

    bash /listen_download https://t.me/A https://t.me/B https://t.me/n

  8. 注销多个监听下载:

    ```bash /listen_download

Core symbols most depended-on inside this repo

get
called by 277
module/task.py
_t
called by 268
module/language.py
stdio_style
called by 21
module/enums.py
add_handler
called by 18
module/bot.py
suitable_units_display
called by 16
module/stdio.py
invoke
called by 15
module/client.py
single_button
called by 15
module/bot.py
safe_edit_message
called by 13
module/bot.py

Shape

Method 263
Function 50
Class 48
Route 3

Languages

Python100%

Modules by API surface

module/enums.py78 symbols
module/bot.py51 symbols
module/downloader.py40 symbols
module/stdio.py32 symbols
module/config.py26 symbols
module/task.py22 symbols
module/util.py21 symbols
module/path_tool.py19 symbols
module/app.py18 symbols
module/uploader.py12 symbols
module/client.py11 symbols
build.py7 symbols

For agents

$ claude mcp add Telegram_Restricted_Media_Downloader \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page