一个 Telegram 守护进程(不是机器人),用于为您拥有管理员权限的频道自动下载文件。
如果您有一台连接互联网的计算机或 NAS,并且您想自动从 Telegram 频道下载文件,那么这个守护进程适合您。
Telegram 机器人的下载文件大小限制为 20Mb。所以我编写了这个代理或守护进程来允许更大的下载(Telegram API 限制为 2GB)。
你需要Python3(3.6 工作正常,3.5 会随机崩溃)。
通过运行以下命令安装依赖项:
pip install -r requirements.txt
(如果您不想安装cryptg
及其依赖项,则只需安装telethon
)
警告:如果您收到“ File size too large message
,请检查您正在使用的 Telethon 库的版本。旧版本有 1.5Gb 文件大小限制。
获取您自己的 api id:https://core.telegram.org/api/obtaining_api_id
您需要配置这些值:
环境变量 | 命令行参数 | 描述 | 默认值 |
---|---|---|---|
TELEGRAM_DAEMON_API_ID | --api-id | api_id 来自 https://core.telegram.org/api/obtaining_api_id | |
TELEGRAM_DAEMON_API_HASH | --api-hash | api_hash 来自 https://core.telegram.org/api/obtaining_api_id | |
TELEGRAM_DAEMON_DEST | --dest | 下载文件的目标路径 | /telegram-downloads |
TELEGRAM_DAEMON_TEMP | --temp | 临时(正在进行下载)文件的目标路径 | 使用--目标 |
TELEGRAM_DAEMON_CHANNEL | --channel | 从中下载的频道 ID(请查看第 45 期、第 48 期和第 73 期) | |
TELEGRAM_DAEMON_DUPLICATES | --duplicates | 如何处理重复的文件:忽略、覆盖或重命名它们 | 重命名 |
TELEGRAM_DAEMON_WORKERS | --workers | 同时下载数量 | 等于处理器核心 |
您可以将它们定义为环境变量,或将它们作为命令行参数,例如:
python telegram-download-daemon.py --api-id <your-id> --api-hash <your-hash> --channel <channel-number>
最后,将任何文件链接重新发送到频道以开始下载。该守护进程可以同时管理多个下载。
您还可以使用 Telegram 客户端与此守护进程“对话”:
docker pull alfem/telegram-download-daemon
当我们使用TelegramClient
方法时,它要求我们与Console
交互以向其提供我们的电话号码并使用安全代码进行确认。
为此,在使用Docker时,您需要首次以交互方式运行容器。
当您使用docker-compose
时,存储登录名的.session
文件将保存在容器外部的Volume中。因此,在使用 docker-compose 时,您需要:
$ docker-compose run --rm telegram-download-daemon
# Interact with the console to authenticate yourself.
# See the message "Signed in successfully as {youe name}"
# Close the container
$ docker-compose up -d
请参阅 docker-compose.yml 文件中的sessions
卷。