7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Discordで過去のチャットログを保存する方法【macOS】

Last updated at Posted at 2023-03-14

image.png

概要

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を利用する方法についてもご興味のある方は、 こちらの記事 が参考になります。)

流れ

以下が全体の流れになります。

  1. 前準備
  2. DiscordChatExporter(Docker版)のインストール
  3. Discordのトークンを確認
  4. ログ収集開始
  5. 収集したログファイルを確認

最終的に、ログファイルHTMLファイル形式として取得できます。
ログはチャンネル毎に取得できます。収集範囲はチャンネルの最初のメッセージから最後のメッセージまでとなります。

以下、順に解説します。

前準備

  1. Dockerがインストール済みであること
  2. 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検索、などして原因を調査しましょう。
おおよそ下図のように文字出力されれば成功です。
image.png

Discordのトークンを確認

次にDiscordサーバーの情報を取得します。
実際にログ収集を行うためには、次の2つの情報が必須です。

  1. ユーザートークン
  2. チャンネルID

ユーザートークンは自分のものを、チャンネルIDは収集対象のチャンネルのものを取得します。
以下で取得方法を紹介します。

ユーザートークン

ユーザートークンおよびチャンネルIDの取得方法はこちらの記事の「トークンの取得」の章を参考に取得してください。

また、チャンネルID開発者モードを有効にすることでも取得できます。
個人的にはこちらの方が直感的で好みです。

開発者モードを有効にし、チャンネルIDを取得している様子
チャンネルの上で右クリックするだけで簡単に取得できてしまう。
image.png

最終的に、次のような値が取得できます。値の例です。

ユーザートークン 値の例
ユーザートークン 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」というファイルに保存されました。
image.png

実行後はFinderを開いて確認します。
Finderは次のコマンドで開くことができます。ドットの手前に半角スペースが必要なので注意してください。

open .

今回の例では、「放送部 - 機材 - 雑談チャンネル - [93848874438859342977995432].html」というファイル名で保存されています。
ログファイルはブラウザにドラッグ・アンド・ドロップすると開けます。

お疲れさまです。解説は以上となります:like:

続けて他チャンネルもログ収集

「他のチャンネルのログも収集したい」といった方のために、その場合についても簡単に記載しておきます。

とはいえ、2回目以降はすごく簡単です。
{チャンネルID}のところだけ書き換えて再実行するだけです。
2回目以降の実行は非常にスムーズに取得できます。

まとめ:star:

以上、DiscordChatExporterのDocker版の利用方法を解説しました。
なお、別のチャンネルのチャットログを収集する際は、チャンネルIDだけを書き換えてあげるだけで収集できます。
一つ一つのチャットログをスクショを撮ったりコピペしたりするのはすごく手間だったのですが、このツールを使うことであっという間に全件取得でき非常に便利です。ぜひ試してみてください。
最後に、素晴らしいツールを開発してくれたTyrrrzさんに感謝したいと思います。皆さんももしよかったらDiscordChatExporterのGitHubStarをお願いします :thumbsup: :star:

参考資料

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?