概要
Discordで過去のチャットログを保存する方法を紹介します。
一般的にDiscordのチャットログ収集・保存方法は、大きく2種類あります。本投稿ではツールを使った方法を紹介します。
①一つ一つコピペする
-
②ツールを利用する
← この記事
ツールを利用する方法のうち、現在最もポピュラーなツールは「DiscordChatExporter」です。
本投稿では、DiscordChatExporter
というツールを使った自動ログ収集方法を解説します。
DiscordChatExporter とは
DiscordChatExporter
はDiscordのチャットログを収集してくれるソフトウェアです。フリーソフトウェアで提供されており、無料
で誰でも
利用できます。
逆にDiscord公式は、ログ履歴をエクスポートする機能を提供しておらず、ユーザーがコピペなどで地道に汲み上げる必要があり非常に手間でした。DiscordChatExporter
はこの問題を解決するツールです。
DiscordChatExporter
は便利なことにGUI画面が提供されています。
しかし惜しいことにGUI版はWindows版
限定で、macOS版
ではCLI版のみの提供となります。そうしたことから、これまでmacユーザーにとって若干のとっつきにくさがありました。
本投稿では、DiscordChatExporter
のmacOS向けの利用方法について解説を行います。
macOSから利用するためには、上記に加えて.NET(C#の実行環境)
の環境構築が必要ですが、今回紹介する方法では、.NETの環境構築をスキップ
する利用方法を紹介します。
具体的には、Docker
を利用した方法を紹介します。
Docker版
を使うメリットは、①.NETの環境構築がスキップできる点
②PCの内部設定を汚さずに利用できる点
③すでにDocker導入済みユーザーにとって最速に利用できる点
などがあります。
ツールの使い方に関しては一度やり方さえを覚えてしまえば二回目以降は利用は非常にスムーズですので、今後のためにもぜひ覚えておくと便利でしょう。
(※なお、.NETを利用する方法についてもご興味のある方は、 こちらの記事 が参考になります。)
流れ
以下が全体の流れになります。
- 前準備
-
DiscordChatExporter(Docker版)
のインストール - Discordのトークンを確認
- ログ収集開始
- 収集したログファイルを確認
最終的に、ログファイル
がHTMLファイル形式
として取得できます。
ログはチャンネル毎に取得できます。収集範囲はチャンネルの最初のメッセージから最後のメッセージまでとなります。
以下、順に解説します。
前準備
-
Docker
がインストール済みであること -
git
がインストール済みであること
もし上記2点が終わっていない方は、必ず済ませてから次に進んでください。
準備には次の記事が参考になります。
・Docker/Docker-Desktopのインストール → 【動作確認】まで
・Gitのinstallのやり方 for Mac | インストールから確認方法まで → 全部
DiscordChatExporter(Docker版)のインストール
ターミナルで下記を実行します。
mkdir discord-logs && cd $_
docker pull tyrrrz/discordchatexporter:stable
動作確認
ここまでの設定が成功しているか確認するため、一度、動作確認を行います。
次のコマンドを実行します。実行結果から設定の成否が判別できます。
docker run --rm tyrrrz/discordchatexporter:stable
実行の様子
もし、赤文字
が出ていたり、ERROR
などの文字が表示される場合はなにかの設定が抜けている可能性があります。エラー文をコピペ → Google検索、などして原因を調査しましょう。
おおよそ下図のように文字出力されれば成功
です。
Discordのトークンを確認
次にDiscordサーバーの情報を取得します。
実際にログ収集を行うためには、次の2つの情報が必須です。
ユーザートークン
チャンネルID
ユーザートークンは自分のものを、チャンネルIDは収集対象のチャンネルのものを取得します。
以下で取得方法を紹介します。
ユーザートークン
ユーザートークン
およびチャンネルID
の取得方法はこちらの記事の「トークンの取得」の章を参考に取得してください。
また、チャンネルID
は開発者モードを有効にすることでも取得できます。
個人的にはこちらの方が直感的で好みです。
最終的に、次のような値が取得できます。値の例です。
ユーザートークン | 値の例 |
---|---|
ユーザートークン | XgVKAWsQKrqR*HzK3^j6X.G-drCi.riXABcDEfGHiJKMrqjLiiyGbrLVF0KS8 |
チャンネルID | 93848874438859342977995432 |
準備が整ったので、次はいよいよログ収集を行います。
ログ収集開始
次のコマンドでログ収集を開始します。
{ユーザートークン}
{チャンネルID}
は各自の環境に合わせて置換してください。
# テンプレート
docker run --rm -v $PWD:/out tyrrrz/discordchatexporter:stable export -t {ユーザートークン} -c {チャンネルID}
# 例
docker run --rm -v $PWD:/out tyrrrz/discordchatexporter:stable export -t XgVKAWsQKrqR*HzK3^j6X.G-drCi.riXABcDEfGHiJKMrqjLiiyGbrLVF0KS8 -c 93848874438859342977995432
実際にログ収集している様子。
放送部サーバーの雑談チャンネルのチャットログを収集しています。
「放送部 - 機材 - 雑談チャンネル - [93848874438859342977995432].html
」というファイルに保存されました。
実行後はFinderを開いて確認します。
Finderは次のコマンドで開くことができます。ドットの手前に半角スペースが必要なので注意してください。
open .
今回の例では、「放送部 - 機材 - 雑談チャンネル - [93848874438859342977995432].html
」というファイル名で保存されています。
ログファイルはブラウザにドラッグ・アンド・ドロップすると開けます。
お疲れさまです。解説は以上となります
続けて他チャンネルもログ収集
「他のチャンネルのログも収集したい」といった方のために、その場合についても簡単に記載しておきます。
とはいえ、2回目以降はすごく簡単です。
{チャンネルID}
のところだけ書き換えて再実行するだけです。
2回目以降の実行は非常にスムーズに取得できます。
まとめ
以上、DiscordChatExporter
のDocker版の利用方法を解説しました。
なお、別のチャンネルのチャットログを収集する際は、チャンネルIDだけを書き換えてあげるだけで収集できます。
一つ一つのチャットログをスクショを撮ったりコピペしたりするのはすごく手間だったのですが、このツールを使うことであっという間に全件取得でき非常に便利です。ぜひ試してみてください。
最後に、素晴らしいツールを開発してくれたTyrrrzさん
に感謝したいと思います。皆さんももしよかったらDiscordChatExporter
のGitHubにStar
をお願いします
参考資料
- Tyrrrz/DiscordChatExporter: Exports Discord chat logs to a file https://github.com/Tyrrrz/DiscordChatExporter
- DiscordChatExporter/Token-and-IDs.md at master · Tyrrrz/DiscordChatExporter · GitHub https://github.com/Tyrrrz/DiscordChatExporter/blob/master/.docs/Token-and-IDs.md