Демон Telegram (не бот) для автоматизации загрузки файлов для каналов, на которых у вас есть права администратора.
Если у вас есть компьютер, подключенный к Интернету, или NAS, и вы хотите автоматизировать загрузку файлов с каналов Telegram, этот демон для вас.
Боты Telegram ограничены загрузкой файла размером 20 МБ. Поэтому я написал этот агент или демон, чтобы разрешить загрузку большего размера (ограничение API Telegram до 2 ГБ).
Вам нужен Python3 (3.6 работает нормально, 3.5 случайно вылетает).
Установите зависимости, выполнив эту команду:
pip install -r requirements.txt
(Если вы не хотите устанавливать cryptg
и его зависимости, вам просто нужно установить telethon
)
Предупреждение. Если вы получили File size too large message
, проверьте версию библиотеки Telethon, которую вы используете. В старых версиях ограничение на размер файла составляет 1,5 ГБ.
Получите свой собственный идентификатор API: https://core.telegram.org/api/obtaining_api_id.
Вам необходимо настроить следующие значения:
Переменная среды | Аргумент командной строки | Описание | Значение по умолчанию |
---|---|---|---|
TELEGRAM_DAEMON_API_ID | --api-id | api_id из https://core.telegram.org/api/obtaining_api_id | |
TELEGRAM_DAEMON_API_HASH | --api-hash | api_hash из https://core.telegram.org/api/obtaining_api_id | |
TELEGRAM_DAEMON_DEST | --dest | Путь назначения для загруженных файлов | /telegram-downloads |
TELEGRAM_DAEMON_TEMP | --temp | Путь назначения для временных (в процессе загрузки) файлов | используйте --dest |
TELEGRAM_DAEMON_CHANNEL | --channel | Идентификатор канала для загрузки с него (см. выпуск 45, выпуск 48 и выпуск 73) | |
TELEGRAM_DAEMON_DUPLICATES | --duplicates | Что делать с дубликатами файлов: игнорировать, перезаписывать или переименовывать их | переименовывать |
TELEGRAM_DAEMON_WORKERS | --workers | Количество одновременных загрузок | Равно ядрам процессора |
Вы можете определить их как переменные среды или поместить в качестве аргументов командной строки, например:
python telegram-download-daemon.py --api-id <your-id> --api-hash <your-hash> --channel <channel-number>
Наконец, повторно отправьте ссылку на любой файл на канал, чтобы начать загрузку. Этот демон может управлять многими загрузками одновременно.
Вы также можете «поговорить» с этим демоном, используя клиент Telegram:
docker pull alfem/telegram-download-daemon
Когда мы используем метод TelegramClient
, он требует от нас взаимодействия с Console
, чтобы предоставить ей наш номер телефона и подтвердить код безопасности.
Для этого при использовании Docker необходимо первый раз запустить контейнер в интерактивном режиме .
Когда вы используете docker-compose
, файл .session
, в котором хранится логин, хранится на томе вне контейнера. Поэтому при использовании docker-compose вам необходимо:
$ docker-compose run --rm telegram-download-daemon
# Interact with the console to authenticate yourself.
# See the message "Signed in successfully as {youe name}"
# Close the container
$ docker-compose up -d
См. объем sessions
в файле docker-compose.yml.