https://github.com/5ht2/discord-emoji-extractor
Extract sent emojis from your Discord messages, and download them
https://github.com/5ht2/discord-emoji-extractor
Last synced: 9 months ago
JSON representation
Extract sent emojis from your Discord messages, and download them
- Host: GitHub
- URL: https://github.com/5ht2/discord-emoji-extractor
- Owner: 5HT2
- License: isc
- Created: 2021-09-06T18:30:54.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-20T07:12:42.000Z (over 2 years ago)
- Last Synced: 2025-08-20T02:49:54.152Z (10 months ago)
- Language: Go
- Size: 3.61 MB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# discord-emoji-extractor
[](https://wakatime.com/badge/github/5HT2/discord-emoji-extractor)
[](https://www.codefactor.io/repository/github/5HT2/discord-emoji-extractor)
Download all the emojis you've ever sent inside messages on Discord. Supports skipping duplicates and resuming downloads.

## Usage
These instructions are for building to Go project.
The bash [equivalent](https://github.com/5HT2/discord-emoji-extractor/blob/master/extract.sh) does not need compiling.
```bash
git clone git@github.com:5HT2/discord-emoji-extractor.git
cd discord-emoji-extractor
make
./extract -h # Run the program with help arguments
```
## Running the Go version
1. Download your Discord data backup. You can get this by going to Discord Settings > Privacy & safety > Request all of my data
2. Extract the data somewhere. Doesn't matter.
3. Follow the above [usage](#Usage) instructions and run the program from anywhere.
4. Follow the interactive instructions. You can use the `-dir $DIR -dirconfirm` args with `DIR` set to a path to skip the prompts.
5. At any point you may cancel downloading and re-run the program, and it will resume downloading.
## Running the Bash version
1. Download your Discord data backup. You can get this by going to Discord Settings > Privacy & safety > Request all of my data
2. Extract the data somewhere. Doesn't matter.
3. `cd my_data/messages/`
4. Download [`extract.sh`](https://github.com/5HT2/discord-emoji-extractor/blob/master/extract.sh) to the `messages` directory.
```bash
wget https://github.com/5HT2/discord-emoji-extractor/raw/master/extract.sh
```
5. Make the script executable.
```bash
chmod +x extract.sh
```
6. Run the `extract.sh` script. The bash script does not support pausing and resuming downloads.
## How it works
I basically just wanted a way to grab old emojis from servers that I'd left, with a picture preview, so the gist of the
script is just reading each `messages.csv`, grepping for emojis and parsing the required info from each message
(list of emojis, each emoji's name, ID, and type, etc).
The Go version works similarly, but is much faster and supports cancelling and resuming downloading.
## Contributing and Improvements
Feature-wise, maybe you could parse the events file to get emojis which you've also used as reactions?
A bot to dynamically upload to a bunch of selected servers (as per the default 50 emoji / server limit) and skip ones with the same name, would be neat. Bots have a stricted upload ratelimit than users, so letting it run in the background to wait out the timeout would be ideal.
Possible command syntax could be
```bash
./extract -dir $DIR -dirconfirm -upload -token $TOKEN -serverids 96230004047740928,785362280601616406,343525052332900352
```