文章目录
- Telegram Files:自己搭一个 Telegram 文件下载器
- 1、解决什么问题
- 2、主要功能
- 3、怎么部署
- 4、技术栈
- 5、维护工具
- 6、适合谁用
Telegram Files:自己搭一个 Telegram 文件下载器
telegram-files 在 GitHub 上拿到 2287 Star 了。
这是一个自托管的 Telegram 文件下载器,支持从频道和群组里持续、稳定地下载文件,不需要人盯着。基于 JDK23 和 TypeScript 开发,Docker 一键部署。
1、解决什么问题
Telegram 频道里经常有大量文件分享,手动一个个下载不现实。现有的工具要么不稳定,要么功能单一,要么需要一直开着窗口。
telegram-files 的思路是把它部署到服务器上,让它 7x24 小时跑着。你只需要配置好规则,它会自动把文件下载到指定位置。下载过程中随时可以暂停、恢复,不用担心中断。
2、主要功能
支持同时登录多个 Telegram 账号,每个账号独立管理下载任务。这样可以同时从不同频道拉文件,互不影响。
下载完的视频和图片可以直接在线预览,不用等全部下完再看。前端做了 PWA 支持,手机浏览器也能用,甚至支持离线访问。
另一个实用功能是文件自动转存。下载完成后可以自动把文件转移到其他存储位置,比如 NAS 或云盘,不用手动搬。
3、怎么部署
最简单的方式是 Docker。先去 Telegram API 页面申请 API ID 和 Hash,然后一条命令搞定:
docker run -d \ --name telegram-files \ --restart always \ -e TELEGRAM_API_ID=你的API_ID \ -e TELEGRAM_API_HASH=你的API_HASH \ -p 6543:80 \ -v ./data:/app/data \ ghcr.io/jarvis2f/telegram-files:latest也可以用 docker-compose,项目里提供了模板文件,复制一份改改配置就行。
unRaid 用户更省事,直接在 Community Repositories 里搜 telegram-files 安装。
有个需要注意的地方:这个服务不适合暴露在公网,因为它本身没有做安全防护。
4、技术栈
后端用 JDK23,构建工具是 Gradle。前端是 TypeScript,用 npm 管理依赖。整体架构比较清晰,前后端分离。
如果想从源码编译,clone 下来分别在 api 和 web 目录执行构建就行:
cd api && gradle build cd web && npm install5、维护工具
项目自带了一个维护工具 tfm,用来处理一些历史遗留问题。比如 0.1.15 版本之前相册消息的 caption 丢失,或者缩略图没清理干净的情况。
用法是先停掉容器,然后跑:
docker run --rm \ --entrypoint tfm \ -v $(pwd)/data:/app/data \ -e TELEGRAM_API_ID=你的API_ID \ -e TELEGRAM_API_HASH=你的API_HASH \ ghcr.io/jarvis2f/telegram-files:latest album-caption6、适合谁用
需要批量下载 Telegram 频道文件的人,比如收集学习资料、备份频道内容、或者管理多个群组文件的场景。因为是自托管,数据都在自己手里,不用担心第三方服务跑路。
Web 端有个小细节:CSS Houdini Paint API 在 HTTP 环境下不生效,需要在 chrome://flags 里把地址加到安全来源列表才能正常显示。
rome://flags 里把地址加到安全来源列表才能正常显示。
[外链图片转存中…(img-kP38i1iu-1782391177037)]