2017-07-12 13:18:00 -04:00
# DiscordChatExporter
2019-11-06 13:34:59 -05:00
[![Build ](https://github.com/Tyrrrz/DiscordChatExporter/workflows/CI/badge.svg?branch=master )](https://github.com/Tyrrrz/DiscordChatExporter/actions)
2021-07-19 13:09:35 -04:00
[![Coverage ](https://codecov.io/gh/Tyrrrz/DiscordChatExporter/branch/master/graph/badge.svg )](https://codecov.io/gh/Tyrrrz/DiscordChatExporter)
2017-10-15 16:58:33 -04:00
[![Release ](https://img.shields.io/github/release/Tyrrrz/DiscordChatExporter.svg )](https://github.com/Tyrrrz/DiscordChatExporter/releases)
[![Downloads ](https://img.shields.io/github/downloads/Tyrrrz/DiscordChatExporter/total.svg )](https://github.com/Tyrrrz/DiscordChatExporter/releases)
2019-11-19 14:17:05 -05:00
[![Donate ](https://img.shields.io/badge/donate-$$$-purple.svg )](https://tyrrrz.me/donate)
2017-10-15 16:58:33 -04:00
2020-12-28 11:38:22 -05:00
✅ **Project status: active** .
2020-10-24 18:53:32 -04:00
2021-02-09 19:05:08 -05:00
DiscordChatExporter can be used to export message history from a [Discord ](https://discord.com ) channel to a file.
It works with direct messages, group messages, and server channels, and supports Discord's dialect of markdown as well as all other rich media features.
2017-07-12 13:18:00 -04:00
2021-02-09 19:05:08 -05:00
❓ **If you have questions or issues, please refer to the [wiki](https://github.com/Tyrrrz/DiscordChatExporter/wiki)** .
2019-11-16 13:59:53 -05:00
2017-08-28 17:45:04 -04:00
## Download
2021-02-09 19:05:08 -05:00
This application comes in two flavors: graphical user interface (**GUI**) and command line interface (**CLI**).
The following table lists all available download options:
2017-08-28 17:45:04 -04:00
2021-02-09 19:05:08 -05:00
< table >
< thead >
< tr >
< th > < / th >
< th > Downloads< / th >
< th > Supported OS< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > < b > GUI< / b > < / td >
< td >
2021-04-14 08:02:06 -04:00
< ul >
< li > 🟢 < b > < a href = "https://github.com/Tyrrrz/DiscordChatExporter/releases/latest" > Stable release< / a > < / b > (< code > DiscordChatExporter.zip< / code > )< / li >
< li > 🟠 < a href = "https://github.com/Tyrrrz/DiscordChatExporter/actions?query=workflow%3ACI" > CI build< / a > (< code > DiscordChatExporter.zip< / code > )< / li >
< / ul >
2021-02-09 19:05:08 -05:00
< / td >
< td >
< ul >
2021-04-14 08:04:42 -04:00
< li > Windows < b > 7< / b > or higher< / li >
2021-02-09 19:05:08 -05:00
< / ul >
< / td >
< / tr >
< tr >
< td > < b > CLI< / b > < / td >
< td >
2021-04-14 08:02:06 -04:00
< ul >
2021-06-08 11:04:19 -04:00
< li > 🟢 < b > < a href = "https://github.com/Tyrrrz/DiscordChatExporter/releases/latest" > Stable release< / a > < / b > (< code > DiscordChatExporter.CLI.zip< / code > ) ⚙️< / li >
< li > 🟠 < a href = "https://github.com/Tyrrrz/DiscordChatExporter/actions?query=workflow%3ACI" > CI build< / a > (< code > DiscordChatExporter.CLI.zip< / code > ) ⚙️< / li >
< li > 🐋 < a href = "https://hub.docker.com/r/tyrrrz/discordchatexporter" > Docker< / a > (< code > tyrrrz/discordchatexporter< / code > )< / li >
< li > 📦 < a href = "https://aur.archlinux.org/packages/discord-chat-exporter-cli" > AUR< / a > (< code > discord-chat-exporter-cli< / code > ) 🦄< / li >
2021-04-14 08:02:06 -04:00
< / ul >
2021-02-09 19:05:08 -05:00
< / td >
< td >
< ul >
2021-04-14 08:02:06 -04:00
< li > Windows < b > 7< / b > or higher< / li >
< li > macOS < b > 10.13 (High Sierra)< / b > or higher< / li >
2021-06-08 11:04:19 -04:00
< li > Linux (multiple distros)< / li >
2021-02-09 19:05:08 -05:00
< / ul >
< / td >
< / tr >
< / tbody >
< / table >
2019-12-08 07:00:12 -05:00
2021-06-08 11:04:19 -04:00
- ⚙️ - Requires .NET runtime to be installed manually:
- [.NET Core v3.1 Runtime for **Windows x64** ](https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-desktop-3.1.0-windows-x64-installer )
- [.NET Core v3.1 Runtime for **Windows x86** ](https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-desktop-3.1.0-windows-x86-installer )
- [.NET Core v3.1 Runtime for **macOS x64** ](https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-3.1.0-macos-x64-installer )
- [.NET Core v3.1 Runtime for **Linux** ](https://docs.microsoft.com/en-us/dotnet/core/install/linux ) (find your distro)
2021-06-24 12:23:39 -04:00
- 🦄 - Community-maintained resource
2021-02-09 19:26:58 -05:00
2017-07-13 02:32:44 -04:00
## Features
2019-12-10 12:27:41 -05:00
- Graphical user interface (Windows)
- Command line interface (Windows, Linux, macOS)
2021-02-21 20:15:09 -05:00
- Support for both user and bot tokens
- Support for Discord's dialect of markdown
2021-07-17 17:19:25 -04:00
- Support for Discord's message filter syntax
2021-02-21 20:15:09 -05:00
- Support for attachments, embeds, emojis, and other rich media features
- Multiple output formats: HTML (dark/light), TXT, CSV, JSON
- File partitioning, date ranges, and other export options
- Exports messages on the fly without buffering in-memory
2017-07-13 02:32:44 -04:00
2018-11-17 16:22:12 -05:00
## Screenshots
2019-09-06 13:27:53 -04:00
![channel list ](.screenshots/list.png )
2021-06-24 12:23:39 -04:00
![rendered output ](.screenshots/output.png )
## Building the project locally
Prerequisites:
- [.NET 5.0 SDK ](https://dotnet.microsoft.com/download/dotnet/5.0 )
- [.NET 3.1 SDK ](https://dotnet.microsoft.com/download/dotnet/3.1 ) (temporarily as the app still targets .NET 3.1, but requires .NET 5.0 to build)
- _(Recommended)_ C#/.NET IDE, such as [JetBrains Rider ](https://www.jetbrains.com/rider ), [VS Code ](https://code.visualstudio.com/docs/languages/csharp ), or [Visual Studio ](https://visualstudio.microsoft.com ).
To build the entire solution run the following command in the root of the repository:
```sh
> dotnet build
```
This will generate runtime artifacts for each project:
```plaintext
./DiscordChatExporter.Gui/bin/[Debug|Release]/[runtime]/*
./DiscordChatExporter.Cli/bin/[Debug|Release]/[runtime]/*
```
You can also build and run a specific project directly.
To do that, navigate to its directory and use `dotnet run` :
```sh
> cd DiscordChatExporter.Gui
> dotnet run
```