管理者権限を持つチャネルのファイルダウンロードを自動化するための Telegram デーモン (ボットではありません)。
インターネットに接続されたコンピュータまたは NAS があり、Telegram チャネルからのファイルのダウンロードを自動化したい場合は、このデーモンが最適です。
Telegram ボットのダウンロードはファイル サイズ 20Mb に制限されています。そこで、より大きなダウンロード (Telegram API によって 2 GB に制限される) を許可するために、このエージェントまたはデーモンを作成しました。
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 | https://core.telegram.org/api/obtaining_api_id の api_id | |
TELEGRAM_DAEMON_API_HASH | --api-hash | https://core.telegram.org/api/obtaining_api_id の api_hash | |
TELEGRAM_DAEMON_DEST | --dest | ダウンロードされたファイルの宛先パス | /telegram-downloads |
TELEGRAM_DAEMON_TEMP | --temp | 一時 (ダウンロード中) ファイルの宛先パス | --dest を使用する |
TELEGRAM_DAEMON_CHANNEL | --channel | ダウンロードするチャネル ID (Issue 45、Issue 48、および Issue 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
ボリュームを参照してください。