一個 Telegram 守護程序(不是機器人),用於為您擁有管理員權限的頻道自動下載檔案。
如果您有一台連接互聯網的電腦或 NAS,並且您想自動從 Telegram 頻道下載文件,那麼這個守護程序適合您。
Telegram 機器人的下載檔案大小限制為 20Mb。所以我編寫了這個代理或守護程序來允許更大的下載(Telegram API 限制為 2GB)。
你需要Python3(3.6 工作正常,3.5 會隨機崩潰)。
透過執行以下命令安裝依賴項:
pip install -r requirements.txt
(如果您不想安裝cryptg
及其依賴項,則只需安裝telethon
)
警告:如果您收到「 File size too large message
,請檢查您正在使用的 Telethon 庫的版本。舊版有 1.5Gb 檔案大小限制。
取得您自己的 api id: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 | 臨時(正在進行下載)檔案的目標路徑 | 使用--目標 |
TELEGRAM_DAEMON_CHANNEL | --channel | 從中下載的頻道 ID(請查看第 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
檔案將會保存在容器外部的Volume中。因此,在使用 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
請參閱 docker-compose.yml 檔案中的sessions
區。