telegram-download-daemon/README.md

56 lines
2.6 KiB
Markdown
Raw Normal View History

2020-04-23 02:20:53 +08:00
# telegram-download-daemon
2020-04-23 02:35:13 +08:00
A Telegram Daemon (not a bot) for file downloading automation
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
2020-04-23 23:03:24 +08:00
or daemon to allow bigger downloads (limited to 1.5GB by Telegram APIs).
2020-04-23 02:35:13 +08:00
# Installation
You need Python3 (tested in 3.5).
2020-04-23 23:50:10 +08:00
Install dependencies by running this command:
2020-04-23 02:35:13 +08:00
2020-04-23 23:50:10 +08:00
pip install -r requirements.txt
(If you don't want to install `cryptg` and its dependencies, you just need to install `telethon`)
2020-04-23 02:35:13 +08:00
Obtain your own api id: https://core.telegram.org/api/obtaining_api_id
2020-04-24 02:33:33 +08:00
# Usage
2020-04-23 02:35:13 +08:00
2020-04-24 02:33:33 +08:00
You need to configure these values:
2020-04-23 02:35:13 +08:00
2020-04-24 02:33:33 +08:00
| Environment Variable | Command Line argument | Description | Default Value |
|--------------------------|:-----------------------:|--------------------------------------------------------------|---------------------|
| `TELEGRAM_DEAMON_API_ID` | `--api-id` | api_id from https://core.telegram.org/api/obtaining_api_id | |
| `TELEGRAM_DEAMON_API_HASH` | `--api-hash` | api_hash from https://core.telegram.org/api/obtaining_api_id | |
| `TELEGRAM_DEAMON_CHANNEL` | `--dest` | Destenation path for downloading files | `/telegram-downloads` |
| `TELEGRAM_DEAMON_DEST` | `--channel` | Channel id to download from it | |
2020-04-23 02:35:13 +08:00
2020-04-24 02:33:33 +08:00
You can define the as Environment Variables, or put them as a commend line arguments, for example:
2020-04-23 02:35:13 +08:00
2020-04-24 02:33:33 +08:00
python telegram-download-deamon.py --api-ip <your-id> --api-hash <your-hash> --channel <channel-number>
# Docker
When we use the [`TelegramClient`](https://docs.telethon.dev/en/latest/quick-references/client-reference.html#telegramclient) method, it requires us to interact with the `Console` to give it our phone number and confirm with a security code.
To do this, when using *Docker*, you need to **interactively** run the container for the first time.
When you use `docker-compose`, the `.session` file, where the login is stored is kept in *Volume* outside the container. Therefore, when using docker-compose you are required to:
```bash
$ docker-compose run --rm telegram-download-deamon
# Interact with the console to authenticate yourself.
# See the message "Signed in successfully as {youe name}"
# Close the container
$ docker-compose up -d
```
See the `sessions` volume in the [docker-compose.yml](docker-compose.yml) file.