Fast, multi-connection Telegram file downloader with a terminal UI (TUI).
Project description
telegram-turbo-downloader
Fast, multi-connection Telegram file downloader with a terminal UI (TUI).
Search a channel or bot, tick the files you want, and download them in parallel — right from your terminal.
telegram-turbo-downloader is a fast Telegram download manager for the terminal. It downloads large files (movies, series, archives, backups) from Telegram channels, groups, and search bots using multiple parallel connections, so a 2 GB video that normally crawls at 0.3–0.5 MB/s finishes in minutes instead of hours. It ships as a clean TUI (text user interface) — no browser, no bloated desktop client, no manual message-ID hunting.
Why is downloading from Telegram so slow? The standard Telegram client and most libraries pull a file through a single MTProto connection, which is heavily rate-limited on free accounts. This tool opens a pool of connections and fetches many chunks of the file at once, then reassembles them — dramatically increasing throughput. It also handles cross-datacenter (cross-DC) routing and resumes interrupted downloads automatically.
Table of contents
Features
- ⚡ Parallel multi-connection downloads — saturate your bandwidth instead of one slow MTProto stream.
- 🔎 Search bots & browse channels — type a query, the app sends it to the bot and harvests the files it returns; or list a channel's recent files.
- ✅ Multi-select download queue — tick several episodes/files and download the whole batch unattended.
- 📊 Live TUI dashboard — real-time per-file progress bars, speed, ETA, and part counts.
- ⏸️ Automatic resume — interrupted transfers continue from where they stopped (sparse
.partscanning), no re-downloading finished chunks. - 🌍 Cross-DC aware — correctly downloads files hosted on a different Telegram datacenter than your account.
- 📁 Smart output folders — auto-sorts files into
Show/S01/…orMovie (Year)/…from the filename. - 🖥️ Cross-platform — Windows, macOS, and Linux; pure terminal, works over SSH.
Installation
Requires Python 3.9+.
From PyPI (recommended)
pip install telegram-turbo-downloader
# optional extras: faster decryption + SOCKS/HTTP proxy support
pip install "telegram-turbo-downloader[all]"
From source
git clone https://github.com/s21v1d9p/telegram-turbo-downloader.git
cd telegram-turbo-downloader
pip install -e ".[all]"
Quick start
-
Get Telegram API credentials at https://my.telegram.org → API development tools. You'll get an
API_IDandAPI_HASH. -
Configure — copy the example env file and fill it in:
cp .env.example .env # edit .env: set API_ID and API_HASH
-
Log in once (creates a reusable session):
telegram-turbo-downloader-login
-
Launch the app:
telegram-turbo-downloader
(Both commands also have a short alias:
ttd-login/ttd.)
Usage
Inside the TUI:
- Open a channel/bot — type a username like
@some_channelor@SomeSearchBot(or a numeric-100…id) and press Open to list recent files. - Search — type a query (e.g.
Panchayat S01) and press Search. The app messages the bot and collects the files it posts back. - Filter — narrow the visible list as you type.
- Select — press Space to tick a file, A to select all, N to clear.
- Download — press D. The dashboard shows every file downloading in parallel with live speed and ETA.
| Key | Action |
|---|---|
Space |
Select / deselect the highlighted file |
A / N |
Select all / clear selection |
D |
Download selected files |
R |
Refresh the current listing |
B |
Back to browse (from the dashboard) |
Q |
Quit |
Downloaded files are saved under ~/Downloads/ by default, auto-organized by show and season.
How it works
telegram_turbo_downloader/
app.py terminal UI entry point (`telegram-turbo-downloader`)
login.py one-time session login (`telegram-turbo-downloader-login`)
tui/ Textual screens: search/browse + live download dashboard
core/ orchestration: connect, search bot, per-file download logic
engine/ high-speed parallel download engine (bundled dependency)
The core/ layer resolves a message's file, splits it into 1 MB parts, preallocates a sparse file, and hands the parts to a worker pool that fetches them concurrently across a pool of Telegram connections. Progress is streamed back to the TUI. Finished transfers are atomically renamed from *.part to the final file.
Configuration
.env keys:
| Key | Description |
|---|---|
API_ID, API_HASH |
Your Telegram API credentials (required) |
SESSION_DIR |
Where session files are stored (default ./data) |
DOWNLOAD_ACCOUNT |
Account label used for the session folder |
DOWNLOAD_CHANNEL |
Optional channel/bot to open on launch |
Environment overrides:
| Variable | Description |
|---|---|
TTD_JOBS |
Number of parallel connections/workers (default 5). For free accounts, 5–6 is a good ceiling for cross-DC downloads. |
TTD_JOBS=6 telegram-turbo-downloader
FAQ
How do I download large files from Telegram quickly? Use a multi-connection downloader like this one. Single-connection downloads are rate-limited; parallel chunked downloading is far faster.
Can it download from Telegram search bots? Yes. Enter the bot's username, type your query, and the app harvests the files the bot replies with.
Does it resume interrupted downloads? Yes — automatically. Re-run the download and it skips already-completed chunks.
Is a premium Telegram account required? No. It works on free accounts; premium accounts simply get higher throughput.
Where are files saved?
Under ~/Downloads/, auto-sorted into show/season or movie folders based on the filename.
Credits
The bundled parallel download engine in telegram_turbo_downloader/engine/ is derived from the open-source TeleBackup SDK by xwc9527/telebackup (also on PyPI as teleget9527), redistributed under the AGPL-3.0 license. The only change from upstream is that in-code comments and log/UI strings were translated from Chinese to English; the program logic is unchanged. All credit for the download engine goes to its original authors. See NOTICE for details.
The terminal UI, search/browse/queue orchestration, and documentation are original work.
License
Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) — see LICENSE. Because the bundled engine is AGPL-3.0, this project (as a whole) is distributed under the same license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file telegram_turbo_downloader-0.1.1.tar.gz.
File metadata
- Download URL: telegram_turbo_downloader-0.1.1.tar.gz
- Upload date:
- Size: 87.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e43a384c49c2f932137c6c272729710feb427ee6331ae89a04e28e3cdb54080a
|
|
| MD5 |
9f4597aeaf8c21df3239c4a8a73f8d3b
|
|
| BLAKE2b-256 |
fec8ba12ba06ffe056edc91db9abaabf3462b5428619ae18c2c4a0ede178a464
|
Provenance
The following attestation bundles were made for telegram_turbo_downloader-0.1.1.tar.gz:
Publisher:
publish.yml on s21v1d9p/telegram-turbo-downloader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
telegram_turbo_downloader-0.1.1.tar.gz -
Subject digest:
e43a384c49c2f932137c6c272729710feb427ee6331ae89a04e28e3cdb54080a - Sigstore transparency entry: 2212379775
- Sigstore integration time:
-
Permalink:
s21v1d9p/telegram-turbo-downloader@e4fdbcb0007c9df0cae1d63280d42080a23afedf -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/s21v1d9p
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e4fdbcb0007c9df0cae1d63280d42080a23afedf -
Trigger Event:
release
-
Statement type:
File details
Details for the file telegram_turbo_downloader-0.1.1-py3-none-any.whl.
File metadata
- Download URL: telegram_turbo_downloader-0.1.1-py3-none-any.whl
- Upload date:
- Size: 88.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9be88c79ad6374137aa52467389d1c1ef5f503d6fc6593af40a628464000b5a
|
|
| MD5 |
b491732bb1410e1fa0300b4b0f3650bd
|
|
| BLAKE2b-256 |
11c2879476ec314cfef7104c35acf3a3211ead660082fa16c66c87805dab2736
|
Provenance
The following attestation bundles were made for telegram_turbo_downloader-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on s21v1d9p/telegram-turbo-downloader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
telegram_turbo_downloader-0.1.1-py3-none-any.whl -
Subject digest:
e9be88c79ad6374137aa52467389d1c1ef5f503d6fc6593af40a628464000b5a - Sigstore transparency entry: 2212379790
- Sigstore integration time:
-
Permalink:
s21v1d9p/telegram-turbo-downloader@e4fdbcb0007c9df0cae1d63280d42080a23afedf -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/s21v1d9p
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e4fdbcb0007c9df0cae1d63280d42080a23afedf -
Trigger Event:
release
-
Statement type: