# telegram-dd **Repository Path**: wujiezero/telegram-download-deamon ## Basic Information - **Project Name**: telegram-dd - **Description**: monitor your telegram channel 's media then download - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-24 - **Last Updated**: 2025-12-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # telegram-dd 此项目致敬🫡 https://github.com/alfem/telegram-download-daemon 在前辈的基础上: ``` 1. 增加了代理的配置。 2. 优化了一些细节。 3. 增加了一个简单的页面用于查看下载记录,在7373端口。 4. 增加了下载文件按规则归类到不同路径。 ``` 具体的归类规则如下: ``` IGNORE: part, desktop Music: mp3, aac, flac, ogg, wma, m4a, aiff, wav, amr Videos: flv, ogv, avi, mp4, mpg, mpeg, 3gp, mkv, ts, webm, vob, wmv, srt Pictures: png, jpeg, gif, jpg, bmp, svg, webp, psd, tiff Archives: rar, zip, 7z, gz, bz2, tar, tgz, xz, iso, cpio Documents: txt, pdf, doc, docx, odf, xls, xlsv, xlsx, ppt, pptx, ppsx, odp, odt, ods, md, json, csv Books: mobi, epub, chm DEBPackages: deb Programs: exe, msi RPMPackages: rpm Mac: dmg, pkg Linux: sh, rpm, deb Android: apk ``` 一个用于自动化文件下载的 Telegram 守护进程(不是机器人),[适用于您拥有管理员权限的频道]。 如果您有一台联网的电脑或 NAS,并且想要自动化从 Telegram 频道下载文件,这个守护进程非常适合您。 允许下载的最大大小受 Telegram API 限制为 2GB。 # 安装 您需要 Python3(3.6+)。 通过运行以下命令安装依赖: 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` | 从 https://core.telegram.org/api/obtaining_api_id 获取的 api_id | | | `TELEGRAM_DAEMON_API_HASH` | `--api-hash` | 从 https://core.telegram.org/api/obtaining_api_id 获取的 api_hash | | | `TELEGRAM_DAEMON_DEST` | `--dest` | 下载文件的目标路径 | `/telegram-downloads` | | `TELEGRAM_DAEMON_TEMP` | `--temp` | 临时文件(下载中)的目标路径 | 使用 --dest 的值 | | `TELEGRAM_DAEMON_CHANNEL` | `--channel` | 要从中下载的频道 ID | | | `TELEGRAM_DAEMON_DUPLICATES` | `--duplicates` | 如何处理重复文件:忽略、覆盖或重命名 | rename | | `TELEGRAM_DAEMON_WORKERS` | `--workers` | 同时下载的数量 | 等于处理器核心数 | | `TELEGRAM_DAEMON_PROXY_HOST` | `--proxy-host` | 代理服务器主机地址 | | | `TELEGRAM_DAEMON_PROXY_PORT` | `--proxy-port` | 代理服务器端口 | | | `TELEGRAM_DAEMON_PROXY_TYPE` | `--proxy-type` | 代理类型(socks5, http, mtproxy) | socks5 | | `TELEGRAM_DAEMON_PROXY_USERNAME` | `--proxy-username` | 代理服务器用户名(如果需要认证) | | | `TELEGRAM_DAEMON_PROXY_PASSWORD` | `--proxy-password` | 代理服务器密码(如果需要认证) | | 您可以将它们定义为环境变量,或者作为命令行参数,例如: python telegram-download-daemon.py --api-id --api-hash --channel 使用代理的示例: python telegram-download-daemon.py --api-id --api-hash --channel --proxy-host --proxy-port --proxy-type socks5 --proxy-username --proxy-password 最后,将任何文件链接重新发送到频道即可开始下载。这个守护进程可以同时管理多个下载。 您还可以使用 Telegram 客户端与这个守护进程 "对话": * 发送 "list" 获取目标路径中可用文件的列表。 * 发送 "status" 检查当前状态。 * 发送 "clean" 从临时目录中删除过期的 (*.tdd) 文件。 * 发送 "queue" 列出等待开始的待处理文件。 # Docker 推荐自行编译镜像,而不是使用预编译的镜像。 只需要注释掉 `docker-compose.yml` 中的 `image` 语句,放开 `build` 的注释,并执行 `docker-compose build --no-cache`。 `docker pull wujiezero/telegram-dd` 当我们使用 [`TelegramClient`](https://docs.telethon.dev/en/latest/quick-references/client-reference.html#telegramclient) 方法时,它要求我们与 `Console` 交互,提供电话号码并使用安全码确认。 要做到这一点,在使用 *Docker* 时,您需要**交互式**运行容器第一次。 当您使用 `docker-compose` 时,存储登录信息的 `.session` 文件保存在容器外部的 *Volume* 中。因此,在使用 docker-compose 时,您需要: ```bash $ docker-compose run --rm telegram-dd # 与控制台交互进行身份验证。 # 看到消息 "Signed in successfully as {your name}" # 关闭容器 $ docker-compose up -d ``` 查看 [docker-compose.yml](docker-compose.yml) 文件中的 `sessions` 卷配置。