Discordチャンネルに画像を自動投稿する方法

あなたはDiscordサーバーを運営していて、特定のチャンネルに定期的に画像を自動的に投稿したいと思っていますか?この記事では、Discord-AIUツールとカスタムスクリプトを使用して、Discordチャンネルに画像を自動的にアップロードする方法を示します。
目次
- 目標とツールキット
- Discord-AIUのインストール
- チャンネル用のWebhookエンドポイントを作成
- Discord-AUI設定の構成
- Discordに複数の画像を自動投稿
- 定期的に実行するようにDiscord-AUIをスケジュール
目標とツールキット
あなたがアニメ専用のDiscordサーバーを運営していて、毎日新しいファンアートでメンバーを引きつけたいと想像してみてください。このアイデアは実装が簡単そうに見えます:24時間ごとに画像を投稿することを覚えておけばいいのです。間違いです。生活は忙しく、気づけばメンバーがあなたに叫んで、毎日のアニメの楽しみがどこに行ったのかを不思議がっています。そこで自動化が登場し、あなたの精神を救います。
Discordチャンネルに画像を自動的に投稿するために、ツールとスクリプトの組み合わせを使用します。私たちの主な目標は、手動の介入なしに指定したDiscordチャンネルに定期的に画像をアップロードするシステムを設定することです。私たちは、Discord-AIU(自動画像アップローダー)ツールを基盤として使用し、スケジューリングと画像選択プロセスを処理するためのカスタムスクリプトを使用します。
Discord-AIUのインストール
目標を概説したので、Discord-AIUを使用して画像アップロードボットを作成しましょう。まず、Discord-AIUをGitHubリポジトリからダウンロードする必要があります。最新バージョンを取得し、適切な場所に解凍することをお勧めします。このツールはPythonで開発されているため、主要なオペレーティングシステムで実行できます。

Discord-AIUをダウンロードしたら、必要なPython依存関係をインストールする必要があります。システムにPythonがインストールされている場合は、ターミナルまたはコマンドプロンプトを開き、Discord-AIUディレクトリに移動して、pdm installコマンドを実行します(実行するためにPDMをインストールする必要があるかもしれません)。

このコマンドは、ツールが正常に機能するために必要なすべてのパッケージ、すなわちpillow、python-dotenv、およびrequestsをインストールします。
チャンネル用のWebhookエンドポイントを作成
次のステップは、DiscordサーバーにWebhookエンドポイントを作成することです。このWebhookは、Discord-AIUとあなたのサーバーとの接続ポイントです。これを行うには、サーバー設定を開き、統合タブに移動します。

Webhookを作成ボタンをクリックすると、Webhookをカスタマイズするためのオプションが表示されます。アバターを編集したり、画像が投稿されるチャンネルを選択したり、Webhookに名前を付けたりできます。

これらを設定した後、Webhook URLをコピーボタンをクリックして、新しく作成したWebhookのURLを取得できます。
Discord-AUI設定の構成
Webhookが設定されたので、Discord-AIUを構成する時間です。Discord-AUIフォルダーを開き、srcサブフォルダーに移動します。

そこに、discord_aiu.pyというファイルを探し、お気に入りのテキストエディタで開きます。ファイルの上部近くにある対応する設定オプションにWebhook URLを貼り付けます。次のようになります:
WEBHOOK_URL = "https://discord.com/api/webhooks//YOUR_WEBHOOK_TOKEN"また、好みに応じてFOLDER_PATH設定オプションを変更することをお勧めします。デフォルトでは、次のように設定されています:
FOLDER_PATH = './images/'このパスはdiscord_aiu.pyファイルの場所に対して相対的です。言い換えれば、「images」フォルダーはdiscord_aiu.pyスクリプトと同じディレクトリに作成する必要があります。ファイルを保存し、今すぐフォルダーを作成してください。
Discordに複数の画像を自動投稿
Discord-AUIが正しく機能するかどうかをテストするために、新しく指定した画像フォルダーに1つ以上のサンプル画像を置きます。次に、ターミナルまたはコマンドプロンプトを開き、Discord-AIUディレクトリに移動し、次のコマンドを実行します:
pdm run ./src/discord_aiu.pyすべてが正しく設定されていれば、指定されたDiscordチャンネルにすぐにすべてのテスト画像が表示されるはずです。また、ツールの出力を確認すると、成功裏にアップロードされた画像の数が正確に表示されるはずです。

唯一の問題は、コマンドが常に指定されたフォルダー内のすべての画像を一括でアップロードすることです。これは、コミュニティと多くの画像を共有する必要がある場合には非常に便利で時間を節約できますが、私たちの目標は、定期的にDiscordに自動的に1枚の画像をアップロードすることです。幸いなことに、必要なのはカスタムスクリプトだけです。
定期的に実行するようにDiscord-AUIをスケジュール
Discord-AUIが機能することを確認したので、定期的に画像を投稿するプロセスを自動化しましょう。次のタスクを実行するスクリプトを作成します:
- キューフォルダーからランダムなファイルを選択します。
- それを画像フォルダーに移動します。
- Discord-AUIツールを実行します。
- アップロードされた画像を「uploaded」フォルダーに移動します。
Windowsを使用している場合は、新しいプレーンテキストファイルを作成し(メモ帳を使用できます)、次のコードをコピーして貼り付けます:
$QUEUE_FOLDER="C:\path\to\Discord-AIU\src\queue"
$IMAGES_FOLDER="C:\path\to\Discord-AIU\src\images"
$UPLOADED_FOLDER="C:\path\to\Discord-AIU\src\uploaded"
$DISCORD_AIU_PATH="C:\path\to\Discord-AIU\src\discord_aiu.py"
# キューからランダムなファイルを選択
$RANDOM_FILE=Get-ChildItem-Path$QUEUE_FOLDER| Get-Random -Count1
if($RANDOM_FILE){
# ファイルを画像フォルダーに移動
Move-Item-Path$RANDOM_FILE.FullName -Destination$IMAGES_FOLDER
# Discord-AIUを実行
Set-Location-Path"C:\path\to\Discord-AIU"
pdm run $DISCORD_AIU_PATH
# 処理されたファイルをアップロードフォルダーに移動
$PROCESSED_FILE=Get-ChildItem-Path$IMAGES_FOLDER
Move-Item-Path$PROCESSED_FILE.FullName -Destination$UPLOADED_FOLDER
}スクリプトをscript.ps1として保存するか、似たような名前を付けます(.ps1はPowerShellスクリプトの拡張子です)。
LinuxおよびmacOSユーザーは、次のbashスクリプトを使用してscript.shファイルを作成できます:
#!/bin/bash
QUEUE_FOLDER="/path/to/Discord-AIU/src/queue"
IMAGES_FOLDER="/path/to/Discord-AIU/src/images"
UPLOADED_FOLDER="/path/to/Discord-AIU/src/uploaded"
DISCORD_AIU_PATH="/path/to/Discord-AIU/src/discord_aiu.py"
# キューからランダムなファイルを選択
RANDOM_FILE=$(find"$QUEUE_FOLDER"-type f | shuf -n1)
if[-n"$RANDOM_FILE"]; then
# ファイルを画像フォルダーに移動
mv"$RANDOM_FILE""$IMAGES_FOLDER"
# Discord-AIUを実行
cd/path/to/Discord-AIU && pdm run "$DISCORD_AIU_PATH"
# ファイルをアップロードフォルダーに移動
mv"$IMAGES_FOLDER"/*"$UPLOADED_FOLDER"
fi必要なフォルダーを作成し、パスをその場所に合わせて変更することを忘れないでください。また、Discord-AIUフォルダー自体の場所も変更する必要があります。スクリプトを実行可能にするために、chmod +X /path/to/scriptコマンドを使用する必要があります。
最後に、script.ps1(Windows)ファイルまたはscript.sh(LinuxおよびmacOS)ファイルを自動的に実行するようにスケジュールする必要があります。例えば、1日1回実行するように設定します。
Windowsユーザーの場合、スタートメニューで検索してタスクスケジューラを開きます。右側のパネルで基本タスクの作成をクリックし、タスクに「Discord画像アップローダー」といった名前を付けます。

トリガーとして毎日を選択し、好みの時間を設定します。アクションとしてプログラムの開始を選択します。プログラム/スクリプトフィールドに「powershell」と入力し、引数の追加フィールドに-ExecutionPolicy Bypass -File "C:\path\to\your\script.ps1"と入力します。

LinuxまたはmacOSを使用している場合は、ターミナルを開き、次のように入力します:
crontab -ecronジョブを編集します(sudo EDITOR=nano crontab -eを使用してNanoエディタを使用することもできます)。
毎日12:00 PM(正午)にスクリプトを実行するための新しい行を追加します。次のようになります:
012***/path/to/your/script.shエディタを保存して終了します。
これらのステップが完了すると、選択したスクリプトが自動的に毎日実行され、Discordチャンネルに新しい画像が常に表示されます。キューのフォルダーに新しい画像を常に補充して、コンテンツの流れを確保することを忘れないでください。サーバーをさらに楽しい場所にしたい場合は、Raspberry PiをDiscordラジオ局に変える方法を学ぶことができます。
画像とスクリーンショットはDavid Moreloによるものです。