Skip to main content

A daemon to automate telegram download of big files.

Project description

telegram-download-daemon-ng

License: GPL v3 Test codecov

PyPI Downloads Docker Pulls Docker ghcr.io Pulls

Ko-fi Buy me a coffee

A Telegram Daemon (not a bot) for file downloading automation for channels of which you have admin privileges.

Based on the original work of @alfem: https://github.com/alfem/telegram-download-daemon

If you have got an Internet connected computer or NAS and you want to automate file downloading from Telegram channels, this daemon is for you.

Telegram bots are limited to 20Mb file size downloads. So I wrote this agent or daemon to allow bigger downloads (limited to 2GB by Telegram APIs).

Installation

You need Python3.8 or above

Install dependencies by running this command:

pip install telegram-download-daemon-ng

Obtain your own api id: https://core.telegram.org/api/obtaining_api_id

Usage

You need to configure these values:

Environment Variable Command Line argument Description Default Value
TELEGRAM_DAEMON_API_ID --api-id api_id from https://core.telegram.org/api/obtaining_api_id
TELEGRAM_DAEMON_API_HASH --api-hash api_hash from https://core.telegram.org/api/obtaining_api_id
TELEGRAM_DAEMON_CHANNEL --channel Channel id to download from it (Please, check Issue 45, Issue 48 and Issue 73)
TELEGRAM_DAEMON_BOT --bot Bot identifier to use. If not present, it will be requested (or the phone number) on first start
TELEGRAM_DAEMON_SESSION_PATH Path with session files
TELEGRAM_DAEMON_DEST --dest Destination path for downloaded files /telegram-downloads
TELEGRAM_DAEMON_TEMP --temp Destination path for temporary (download in progress) files use --dest
TELEGRAM_DAEMON_DUPLICATES --duplicates What to do with duplicated files: ignore, overwrite or rename them rename

You can define them as Environment Variables, or put them as a command line arguments, for example:

python3 telegram_download_daemon.py --api-id <your-id> --api-hash <your-hash> --channel <channel-number>

Finally, resend any file link to the channel to start the downloading. This daemon can manage many downloads simultaneously.

You can also 'talk' to this daemon using your Telegram client:

  • Say "list" and get a list of available files in the destination path.
  • Say "status" to the daemon to check the current status.
  • Say "clean" to remove stale (*.tdd) files from temporary directory.

Docker/Podman

If you are using Podman instead of Docker, just replace the docker word in the following commands by podman.

On a terminal run:

docker pull nyaran/telegram-download-daemon-ng

Then run it.

Replace values for TELEGRAM_DAEMON_API_ID, TELEGRAM_DAEMON_API_HASH and TELEGRAM_DAEMON_CHANNEL (see the table above), and set the paths for the volumes.

docker run \
 --rm \
 -e TELEGRAM_DAEMON_API_ID="YOUR_API_ID_HERE" \
 -e TELEGRAM_DAEMON_API_HASH="YOUR_API_HASH_HERE" \
 -e TELEGRAM_DAEMON_CHANNEL="YOUR_CHANNEL_ID_HERE" \
 -v "DOWNLOADS_VOLUME_PATH_HERE":/downloads \
 -v "SESSION_VOLUME_PATH_HERE":/session \
 -v "TEMP_VOLUME_PATH_HERE":/temp \
 --name telegram-download-daemon-ng \
 nyaran/telegram-download-daemon-ng

Note. The first time, you need to generate your session, to do that, and if you are not providing your bot ID, run the image in the interactive way, using -it (is important to use the same parameters)

docker run -it \
 --rm \
 -e TELEGRAM_DAEMON_API_ID="YOUR_API_ID_HERE" \
 -e TELEGRAM_DAEMON_API_HASH="YOUR_API_HASH_HERE" \
 -e TELEGRAM_DAEMON_CHANNEL="YOUR_CHANNEL_ID_HERE" \
 -v "DOWNLOADS_VOLUME_PATH_HERE":/downloads \
 -v "SESSION_VOLUME_PATH_HERE":/session \
 -v "TEMP_VOLUME_PATH_HERE":/temp \
 --name telegram-download-daemon-ng \
 nyaran/telegram-download-daemon-ng

Or just provide the bot ID (Replace "YOUR_BOT_ID" with the identifier of your bot):

docker run -it \
 --rm \
 -e TELEGRAM_DAEMON_API_ID="YOUR_API_ID_HERE" \
 -e TELEGRAM_DAEMON_API_HASH="YOUR_API_HASH_HERE" \
 -e TELEGRAM_DAEMON_CHANNEL="YOUR_CHANNEL_ID_HERE" \
 -e TELEGRAM_DAEMON_BOT="YOUR_BOT_ID" \
 -v "DOWNLOADS_VOLUME_PATH_HERE":/downloads \
 -v "SESSION_VOLUME_PATH_HERE":/session \
 -v "TEMP_VOLUME_PATH_HERE":/temp \
 --name telegram-download-daemon-ng \
 nyaran/telegram-download-daemon-ng

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

telegram_download_daemon_ng-1.0.0b6.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

telegram_download_daemon_ng-1.0.0b6-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file telegram_download_daemon_ng-1.0.0b6.tar.gz.

File metadata

File hashes

Hashes for telegram_download_daemon_ng-1.0.0b6.tar.gz
Algorithm Hash digest
SHA256 1a9fc25b0399f01d0e8c5cce94c6c0068e0f35784a81790a3f03449082bb04c0
MD5 087289e078629ae4914aa931fc4a55d5
BLAKE2b-256 055359701987a2e8fab27e49a5c09d1289871108e07e5082ace1b39310b870d0

See more details on using hashes here.

File details

Details for the file telegram_download_daemon_ng-1.0.0b6-py3-none-any.whl.

File metadata

File hashes

Hashes for telegram_download_daemon_ng-1.0.0b6-py3-none-any.whl
Algorithm Hash digest
SHA256 69a3efa6b80414d49b3402413df6ac106f7e23a9ba5c9f1d2e306b9041a62258
MD5 92cc123ea29b182d601b3ec65bec2c05
BLAKE2b-256 9051b56e2ac8ba104a32ddedfe23efa003972be05d49aaeb9c1dc1674286f96f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page