こんにちは、mickです。
MacでDiscordのチャットログを保存したい
という要望に応える記事です。
MacでDiscordのチャットログを保存する方法を紹介します。
DiscordのチャットログをMacで保存する方法
Discordのチャットログは「DiscordChatExporter」という無料アプリを使って保存することができます。
サーバー上に保存してあるDiscordのチャットログ
Discordのチャットログは、サーバー上に保存してあります。
そのため、チャットログを保存するにはそこへ取りに行かないといけません。
チャットログの保存には別途アプリが必要
Discordのチャットログを保存するには、Discord以外にアプリが必要です。
これはDiscord本体にチャットログを保存する機能がないからです。
トークンとチャンネル(サーバー)IDの情報がいる
チャットログを保存するアプリでは、トークンとチャンネル(サーバー)IDが必要になります。
トークンは、ユーザーがDiscordのサーバーとやり取りをする鍵のこと。
チャンネル(サーバーID)は、チャットログの保存場所のこと。
この2つがそろえば、チャットログの保存は簡単です。
DiscordChatExporter でチャットログを保存する
Discordのチャットログは DiscordChatExporter で保存します。
DiscordChatExporterは、WindowsやMac、Linuxとマルチな環境で利用ができます。
気になる点は、MacとLinuxではコマンドライン方式しか使えないことです。
DiscordChatExporter には.NET Core runtimeが必要
DiscordChatExporter は、.NET Core runtimeというツールが必要です。
これはDiscordChatExporterが.NET Coreの機能を使っているからだと思います。
.NET Core runtimeは、WordやExcelをだしているMicrosoft社のプログラムです。
Discordのチャットログを保存する準備
それではDiscordのチャットログをMacで保存する方法を具体的に紹介していきます。
まずは、DiscordChatExporterを使うために.NET Core runtimeのプログラムをMacにインストールしていきます。
.NET Core runtimeをダウンロードする
.NET Core runtimeのMac版(64bit)を公式サイトからダウンロードします。
⇒ .NET Core runtime for macOS をダウンロード(クリックするとダウンロードが始まります)
今回は、執筆時点での推奨バージョン「.NET Core runtime 3.1.8」を使っています。
ファイルのダウンロードが終わったら、次はインストールです。
.NET Core runtimeをインストールする
「.NET Core runtime」をダウンロードできたら、インストール作業に入ります。
バージョンが3.1.8なら「dotnet-runtime-3.1.8-osx-x64.pkg」です。
これをダブルクリックしてインストールを開始します。
インストールが始まります。
保存先を決めます。
デフォルトのまま次に進みます。
インストールの内容を確認して「install」をクリック。
「.NET Core runtime」のインストールが始まります。
必要に応じて認証が求められます。
パスワードを入力するか、生体認証を行います。
インストールが完了しました。
不要なファイルを削除するかインストーラがきいてきます。
インストールに使ったファイルは、不要なので「Move to Trash」で削除してOK。
次はDiscordChatExporterをダウンロード、インストールしていきます。
DiscordChatExporterをダウンロードする
DiscordChatExporterは、GitHubからダウンロードします。
⇒ DiscordChatExporterのダウンロードサイト
Latest releaseからダウンロードできるWebページに移動。
執筆時点では、「2.23」が最新バージョンでした。
「DiscordChatExporter.CLI.zip」をダウンロードします。
これはMacではコマンドライン方式(CLI方式)しか使えないからです。
DiscordChatExporterをインストールする
DiscordChatExporterは、zipを解凍して適当な場所に設置します。
適当でいいのはDiscordChatExporterにインストーラが用意されていないから。
私の場合は「/Users/[ユーザ名]/Apps」というフォルダを作っています。
そしてそこにインストーラのないアプリをまとめて設置しています。
DiscordChatExporterは、設置するだけでインストールはOK。
これでDiscordのチャットログを保存する環境ができあがりました。
次は、Discordのチャットログを保存するのに必要な情報を取りに行きます。
Discordのトークンを取得
Discordでトークン(Token)を得るため探します。
ここからは、Discordの利用規約に反する行為です。
自己責任で行ってください。
トークンは、以下の方法で取得します。
- Discordで「Ctrl + Shift + I」キーを押して、開発者モードを起動
- 「Application」タブをクリック
- 「Local Storage」 > 「https://discordapp.com」を選択
- 「Ctrl + R」キーを押して、リロード
- 出てきた「token」(Key)の値(Value)をコピー
これでトークンの値を取得できました。
次はチャットIDを取得していきます。
DiscordのチャットIDを取得する
DiscordのチャットIDを得るために探します。
- Discordで「Ctrl + Shift + I」キーを押して、開発者モードを起動
- 「Sources」タブをクリック
- 「top」 > 「Electron Isolated Context」を選択
- 「channels/@me」にある数字をコピー
これでチャットIDを取得できました。
やっとDiscordのチャットログを保存する準備ができました。
DiscordChatExporterを使ってチャットログを保存していきます。
DiscordChatExporterでDiscordのチャットログを保存
これまでに取得したトークンとチャンネルIDを使ってチャットログを保存していきます。
ターミナル(Terminal)でDiscordChatExporterを使う
TerminalからDiscordChatExporterを使います。
MacではTerminalを使ったコマンドライン方式でしかDiscordChatExporterを使うことができません。
DiscordChatExporterを設置したフォルダに移動する
作業場所は、DiscordChatExporterを設置フォルダで行います。
cd [DiscordChatExporterのフォルダ]
TerminalにDiscordChatExporterを設置したフォルダをドラッグ&ドロップすると、[DiscordChatExporterのフォルダ]の入力は簡単。
トークンとチャンネルIDを使ってDiscordChatExporterを実行する
DiscordChatExporterを実行してチャットログを保存します。
コマンドラインはこちら
dotnet DiscordChatExporter.Cli.dll -t “token” -c channelID
dotnetを使ってDiscordChatExporter.Cli.dllを実行します。
(.NET Core runtimeをインストールしたのはdotnetコマンドを使うため)
tokenにはトークンの値を。
channelIDにはチャンネルIDを。
それぞれ当てはめて使います。
デフォルトの保存先は、DiscordChatExporterのフォルダ内です。
デフォルトの保存形式は.html
デフォルトのチャットログの保存形式はHTMLファイルになっています。
保存したログをChromeなどブラウザで確認することができます。
保存形式は、オプションでJSONやCSVなどに変更することができます。
まとめ。
Discordのチャットログを保存する方法を紹介しました。
Discordそのものにチャットログの保存機能がついていると便利なんですけどね。
チャットログを保存するアプリが有志によって作られていることからも受容は相当あるはず。
早くDiscordの公式が対応してくれればこんな手間はないのですが。
今後に期待、でしょうか。
以上、みなさまの助けなれば幸いです。
初稿 2020/10/06