项目链接
https://github.com/anasty17/mirror-leech-telegram-bot
来自Gemini的分析:
通过对您提供的 requirements.txt 和 config_sample.py 文件进行分析,这是一个功能非常全面且高度可定制的 Telegram 镜像与离线下载机器人 (Mirror/Leech Telegram Bot)。它的主要用途是接收用户的下载指令,将网络上的各类资源下载到运行该机器人的服务器上,然后再将这些文件上传到各种云盘(Mirror 镜像)或者直接分割回传到 Telegram 聊天中(Leech 搬运)。
以下是对该项目的详细分析:
1. 技术栈与底层架构
- 开发语言与并发机制:项目基于 Python 开发,并且深度使用了异步编程(如
asyncio、aiofiles、uvloop 等依赖)来保证在高并发下载和上传时的性能表现。
- Telegram 框架:使用了
kurigram 库(基于 MTProto 协议的 Telegram 客户端)以及 tgcrypto 提升加密解密性能。
- Web 服务端:集成了
fastapi 和 uvicorn,这表明机器人除了响应 Telegram 消息外,还提供了一个 Web 后端,可能用于查看下载状态、目录浏览或 Rclone 服务 (RCLONE_SERVE_PORT)。
- 数据库:使用 MongoDB(通过
pymongo 库)进行数据持久化存储,默认数据库名为 mltb。
2. 核心功能模块
A. 多协议下载能力
该机器人支持几乎所有主流的文件下载协议,充当一个全能的离线下载中心:
- BT与磁力链:支持 qBittorrent 和 Aria2c(通过
aioqbt 和 aioaria2 库控制)。配置中还可以设定种子超时时间 (TORRENT_TIMEOUT)。
- 流媒体与图集提取:内置了
yt-dlp(配合 curl-cffi 绕过风控)用于下载 YouTube 等视频网站的高清视频,以及 gallery-dl 用于抓取网页图片画廊。
- Usenet (新闻组):支持 Sabnzbd 客户端对接,并使用
par2cmdline-turbo 进行错误修复和校验。
- 网盘解析支持:支持配置 JDownloader 账户(
JD_EMAIL, JD_PASS)以突破各种国外网盘的下载限制,并且支持 AllDebrid 这样的中转解析服务 (ALLDEBRID_API_KEY)。
B. 丰富的上传与转存系统 (Mirror)
下载完成后,机器人可以自动将文件推送到多种目标平台:
- Google Drive:官方 API 深度集成,支持个人盘和团队盘 (
IS_TEAM_DRIVE),支持使用服务账号 (USE_SERVICE_ACCOUNTS) 绕过单账号上传限额,并且可以配合自定义索引站点 (INDEX_URL) 直接生成直链。
- 万能网盘工具 Rclone:通过 Rclone 挂载和标志位 (
RCLONE_FLAGS),理论上可以将文件转存到 OneDrive、Dropbox 等几十种第三方云存储中。
- 托管分享平台:支持自动上传至 Gofile、Filelion、Streamwish、Buzzheavier 等临时文件托管和流媒体播放服务。
C. Telegram 回传机制 (Leech)
如果用户想直接在 Telegram 中获取文件:
- 可以根据 Telegram 的限制自定义分卷压缩大小 (
LEECH_SPLIT_SIZE),支持强制以文档格式发送 (AS_DOCUMENT) 或媒体组格式发送 (MEDIA_GROUP)。
- 可以通过预设的聊天 ID 将文件自动转存到特定的频道或群组备份 (
LEECH_DUMP_CHAT)。
D. 自动化与媒体处理扩展
- 资源检索:自带 BT 搜索引擎集成,预设了十几个主流资源站(如 PirateBay, Nyaa, 1337x, YTS 等)的 qBittorrent 搜索插件。
- RSS 订阅:内置 RSS 源监控(基于
feedparser 库),支持检测到新资源后自动推送到频道 (RSS_CHAT) 并触发下载。
- 视频/媒体处理:可以直接调用后端的 FFmpeg 工具(如自动合并切片视频、提取或封装)和 Pillow 库处理缩略图。
总结
这是一个为重度资源玩家准备的“自动化服务器下载中转枢纽”。用户只需要在 Telegram 发送一条链接,该机器人就能自动调用服务器带宽将其下载下来,并根据配置稳妥地打包、分片,最终上传至私人云盘或直接推送到 Telegram 频道中。