License: MIT License
Author: adamjvr
Technologies: Python 3.10+, PyQt6, JSON
The Discord JSON Data Dump Viewer is a desktop GUI application that helps you explore your personal Discord data export in a structured, human-friendly way.
Discord’s official export gives you a large directory of JSON files. These contain:
- Direct Messages (DMs)
- Server text channels
- Per-channel message histories
- Account information and relationships
- Activity / analytics data
- Attachments and exported assets
While the export is complete, it is not convenient to read directly:
- Conversations are split across many folders.
- IDs are long numeric strings.
- There is no unified “view” per conversation.
- Direct messages are not grouped logically as one timeline.
- Searching requires manually opening and scanning JSON files.
This application solves those problems by providing:
- A PyQt6-based GUI for browsing exports.
- Clear separation between DMs and Server channels.
- Optional grouping of DMs by participants, so long-term conversations are merged into a single timeline.
- A message table with sorting, filtering, and searching.
- An inline image preview pane for attachments.
- A global search that scans all messages across all channels.
- Optional display of Activities metadata matched by date.
- Export of filtered messages to CSV or Markdown.
The overall goal is to turn a raw JSON data dump into a navigable, readable message archive viewer.
A typical project layout looks like this:
discord-data-dump-viewer/
│
├── src/
│ ├── main.py
│ ├── main_window.py
│ ├── models.py
│ ├── dialogs.py
│ └── icons/
│
├── README.md
└── LICENSE
- main.py — Starts the PyQt6 application.
- main_window.py — GUI logic and interactions.
- models.py — JSON parsing, DM grouping, searching.
- dialogs.py — Attachment viewer and global search dialogs.
- Python 3.10+
- PyQt6
pip install PyQt6cd src
python main.pyAccount/
Activity/
Activities/
Messages/
Servers/
Contains:
- user ID
- username/global name
- relationships
Maps channel IDs to readable names.
Contains:
- ID
- Timestamp
- Contents
- Attachments
Channel metadata:
- type
- recipients
Optional analytics/events per date.
Handles loading:
- Export root
- Channels
- DM grouping
- Messages
- Global search
- Activities
Contains:
- Channel list
- Message table
- JSON detail view
- Attachment preview pane
- Attachment viewer
- Global search
Select File → Open Export Folder.
- Show all / DMs / Servers
- Only channels with attachments
- Group DMs by participants
- Sort alphabetical
Columns:
- Type
- ID
- Timestamp
- Contents
- Attachments?
Selecting shows JSON & activities (optional).
- Local search (current channel)
- Global search (all channels)
- Filter only messages with attachments
- Ascending time
- Descending time
Matches messages by date. Shown in JSON view if enabled.
- Attachment column
- Attachment dialog
- Inline preview
- Auto-preview
- Save previewed image
Exports filtered messages to:
- CSV
- Markdown
- Read-only
- Global search slow on large data
- DM grouping depends on metadata
- Activity data optional
Future improvements:
- Discord markdown rendering
- Emoji/reactions
- Avatars
- Activity analytics
- SQLite backend
- User-specific filters
MIT License
Copyright (c) 2025 Adam Vadala-Roth
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction...
- 100% offline
- No external APIs
- Local data only
