Discord Emojis
A Python tool that automatically fetches and extracts the latest emoji data from Discord.
Overview
This project automatically downloads the latest Discord build from the Discord-Datamining repository, extracts emoji data, and saves it in a structured JSON format. It runs as a GitHub Actions workflow twice a week to keep the emoji data up-to-date without manual intervention.
How It Works
- GitHub Actions workflow runs automatically twice per week
- Downloads the latest Discord build
- Extracts emoji information
- Saves data in a standardized JSON format
- Tracks changes using hash comparison to avoid unnecessary updates
- Detects and reports UTF-16 surrogate pairs
Technical Details
The project uses:
- Python 3.13+
- Dependencies:
- json5
- orjson
- requests
Output
The emoji data is saved in build/emojis.json in the following format:
{
"emojis": [
{
"name": "emoji_name",
"id": "emoji_id",
...
},
...
]
}
The main emojis.json file in the root directory is the updated version that consumers can access via GitHub raw URLs or by cloning this repository.
Development
For local development or testing:
# Install dependencies using uv
uv sync --dev
# Run the update script manually
uv run src
Note: Local execution should only be done during development. In production, the script runs automatically through GitHub Actions.
The script will:
- Download the latest Discord build
- Extract emoji information
- Save the data to
build/emojis.json - Generate a hash file to track changes
If no changes are detected compared to the previous run, the script will exit with status code 3.