返回排行榜

jarvis2f/telegram-files

Java

A self-hosted Telegram file downloader for continuous, stable, and unattended downloads.

downloaderself-hostedtelegramdockernextjsshadcn-uitdlibvertxunraid
Star 增长趋势
Star
2.4k
Forks
174
周增长
Issues
24
1k2k
2024年12月2025年6月2026年1月2026年7月
制品库Mavengit clone https://github.com/jarvis2f/telegram-files.git
README

Telegram Files

A self-hosted Telegram file downloader for continuous, stable, and unattended downloads.

license last-commit release


🔗 Table of Contents


📍 Overview

  • Seamless file downloads from Telegram channels and groups
  • Support for multiple Telegram accounts to manage and download files simultaneously
  • Pause and resume downloads anytime, with automatic file transfer to designated destinations
  • Instant preview of downloaded videos and images
  • Fully responsive design with mobile-friendly access, Progressive Web App (PWA) support, and offline capabilities
  • Easily fetch files from Telegram shared links

🧩 Screenshots

More Screenshots

🚀 Getting Started

Before getting started with telegram-files, you should apply a telegram api id and hash. You can apply for it on the Telegram API page.

Using docker  

docker run -d \
  --name telegram-files \
  --restart always \
  -e APP_ENV=${APP_ENV:-prod} \
  -e APP_ROOT=${APP_ROOT:-/app/data} \
  -e TELEGRAM_API_ID=${TELEGRAM_API_ID} \
  -e TELEGRAM_API_HASH=${TELEGRAM_API_HASH} \
  -p 6543:80 \
  -v ./data:/app/data \
  ghcr.io/jarvis2f/telegram-files:latest

Using docker-compose

Copy docker-compose.yaml and .env.example to your project directory and run the following command:

docker-compose up -d

Install on unRaid

On unRaid, install from the Community Repositories by searching for telegram-files.

Important Note: You should NOT expose the service to the public internet. Because the service is not secure.


⌨️ Development

☑️ Prerequisites

Before getting started with telegram-files, ensure your runtime environment meets the following requirements:

  • Programming Language: JDK23,TypeScript
  • Package Manager: Gradle,Npm
  • Container Runtime: Docker

⚙️ Installation

Install telegram-files using one of the following methods:

Build from source:

  1. Clone the telegram-files repository:
git clone https://github.com/jarvis2f/telegram-files
  1. Navigate to the project directory:
cd telegram-files
  1. Install the project dependencies:

Using npm  

cd web
npm install

Using gradle  

cd api
gradle build

Using docker  

docker build -t jarvis2f/telegram-files .

📌 Project Roadmap

  • Task 1: Automatically download files based on set rules.
  • Task 2: Download statistics and reports.
  • Task 3: Improve Telegram’s login functionality.
  • Task 4: Support auto transfer files to other destinations.
  • Task 5: File table is optimized using virtual lists.
  • Task 6: Preload file information to support responsible searches.

🔰 Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/jarvis2f/telegram-files
    
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
    
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
    
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
    
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!

🎗 License

This project is protected under the MIT License. For more details, refer to the LICENSE file.


🆗 FAQs

Q. Can't start the api server, error:java.lang.UnsatisfiedLinkError: no tdjni in java.library.path

A. Maybe download tdlib failed, you can see the entrypoint.sh file, then download tdlib manually.

Q. Web's spoiler is static, how to solve it?

A. 1. Because CSS Houdini Paint API is not supported by all browsers. 2. It is only supported on https.

Use in http environment, you can use the following method to solve it

Open the chrome://flags page, search for Insecure origins treated as secure, and add the address of the web page to the list.

Q. How to use the telegram-files maintenance tool?

A. You can use the following command to run the maintenance tool(before running the command, you should stop telegram-files container):

Command
docker run --rm \
  --entrypoint tfm \
  -v $(pwd)/data:/app/data \
  -e APP_ROOT=${APP_ROOT:-/app/data} \
  -e TELEGRAM_API_ID=${TELEGRAM_API_ID} \
  -e TELEGRAM_API_HASH=${TELEGRAM_API_HASH} \
  ghcr.io/jarvis2f/telegram-files:latest ${Maintenance Command}

Maintenance Command:

  • album-caption: Fixed issue with missing caption for album messages before 0.1.15.
  • thumbnail: Fixed issue with missing clear thumbnail.
相关仓库
yt-dlp/yt-dlp

A feature-rich command-line audio/video downloader

PythonPyPIThe Unlicenseyoutube-dlpython
discord.gg/H5MNcFW63r
179.4k15.3k
imputnet/cobalt

best way to save what you love

SvelteGNU Affero General Public License v3.0downloaderreddit
cobalt.tools
41.7k3.6k
iawia002/lux

👾 Fast and simple video download library and CLI tool written in Go

GoGo ModulesMIT Licensedownloadergo
31.6k3.3k
GopeedLab/gopeed

A fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.

GoGo ModulesGNU General Public License v3.0bittorrentdownloader
gopeed.com
25.4k1.7k
KurtBestor/Hitomi-Downloader

:cake: Desktop utility to download images/videos/music/text from various websites, and more.

PythonPyPIhitomiexhentai
24.2k2.2k
mikf/gallery-dl

Command-line program to download image galleries and collections from several image hosting sites

PythonPyPIGNU General Public License v2.0gallerydownloader
discord.gg/rSzQwRvGnE
18.9k1.5k
amir1376/ab-download-manager

A Download Manager that speeds up your downloads

KotlinApache License 2.0composecompose-multiplatform
abdownloadmanager.com
16.8k867
nilaoda/N_m3u8DL-CLI

[.NET] m3u8 downloader 开源的命令行m3u8/HLS/dash下载器,支持普通AES-128-CBC解密,多线程,自定义请求头等. 支持简体中文,繁体中文和英文. English Supported.

C#MIT Licensem3u8dl-clim3u8
nilaoda.github.io/N_m3u8DL-CLI/
16k2.3k
Tyrrrz/YoutubeDownloader

Downloads videos and playlists from YouTube

C#MIT Licenseyoutubedownload
github.com/Tyrrrz/YoutubeDownloader/releases
15.7k2k
JoeanAmier/TikTokDownloader

TikTok 发布/喜欢/合辑/直播/视频/图集/音乐;抖音发布/喜欢/收藏/收藏夹/视频/图集/实况/直播/音乐/合集/评论/账号/搜索/热榜数据采集工具/下载工具

PythonPyPIGNU General Public License v3.0douyinpython
discord.com/invite/ZYtmgKud9Y
15.2k2.6k
nilaoda/BBDown

Bilibili Downloader. 一个命令行式哔哩哔哩下载器.

C#MIT Licensedownloader
13.9k1.7k
instaloader/instaloader

Download pictures (or videos) along with their captions and other metadata from Instagram.

PythonPyPIMIT Licenseinstagraminstagram-client
instaloader.github.io
12.9k1.6k