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:

  1. Download the latest Discord build
  2. Extract emoji information
  3. Save the data to build/emojis.json
  4. 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.

Languages
Python 100%