Skip to content

RandomPotato247/VisibleMessageExporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

VisibleMessageExporter — Discord Message Exporter for BetterDiscord

Export, download, and archive Discord chat messages — a BetterDiscord plugin that saves visibly rendered Discord messages to TXT/JSON files on your own machine — with a visible-message picker, chat density modes for faster scrolling, automatic 500-message chunking, and local archiving of attachments (files, images, charts) before their CDN links expire.

Everything runs locally in your Discord client. No servers, no accounts, no API scraping, no tokens.

Why "visible" messages?

This plugin deliberately does not call the Discord API or crawl channel history. It only reads messages that are actually rendered on your screen, exactly as you see them. You scroll (or let the auto-runner scroll), it captures. This keeps the plugin simple, transparent, and free of selfbot-style behavior.

Features

  • Save any message as TXT/JSON from its right-click context menu.
  • Visible Message Picker — a panel that captures every message currently on screen with one click, with dedup, live counters (selected / visible / new / dupes / media-links), and a preview list.
  • Density modes (Compact → Turbo → Turbo+ → Text-Only) — compress the chat so far more messages fit on screen per scroll, making bulk capture much faster. Media collapses to thin strips (not hidden) so image links still get captured. ⚠️ The higher modes are heavy — see the warning below.
  • Auto chunk export — press one button and the plugin selects + scrolls up automatically, saving a JSON chunk every 500 messages until it reaches the top of the channel (or your target). Pacing adapts to how heavy your chat renders, so it won't overload the client.
  • Attachment archiving — uploaded files and images are downloaded to a local media/ folder at capture time. This matters because Discord CDN attachment URLs are signed and expire after ~24 hours; exported links go dead, but your local copies don't.
  • Session manifest — every auto-chunk session writes a manifest JSON with per-chunk message counts, first/last message IDs, and text hashes so you can verify completeness.
  • Chunk Folder button — opens the export folder in your file explorer and copies its path to the clipboard.

Installation

  1. Install BetterDiscord.
  2. Download VisibleMessageExporter.plugin.js from this repo.
  3. Drop it into your BetterDiscord plugins folder:
    • Windows: %appdata%\BetterDiscord\plugins
    • macOS: ~/Library/Application Support/BetterDiscord/plugins
    • Linux: ~/.config/BetterDiscord/plugins (or Discord → Settings → Plugins → Open Plugins Folder)
  4. Enable VisibleMessageExporter in Discord → Settings → Plugins.

Usage

Single messages

Right-click any message → Save Message as TXT, or Add Message to TXT Batch and later Save TXT/JSON Batch.

Bulk export (the main workflow)

  1. Right-click any message → Open Visible Message Picker.

  2. (Optional) Click Density to cycle chat compression — more messages per screen = faster capture. Start with Compact; Turbo is faster and self-throttles.

    ⚠️ Warning — high density modes can crash Discord. Turbo, Turbo+, and Text-Only put hundreds of messages on screen at once, which multiplies the processing done on every capture step. The auto-chunk runner paces itself adaptively to compensate, but on weaker machines — or in channels heavy with images/embeds — these modes can still freeze or crash the Discord client, especially while chunks are saving. Compact is the safe default. Only step up to Turbo if Compact runs smoothly, and treat Turbo+ / Text-Only as experimental. If Discord crashes mid-run, nothing is lost: already-saved chunks and downloaded media stay on disk, and the session manifest shows exactly where capture stopped.

  3. Click Auto 1000 Chunks. The plugin selects visible messages, scrolls up, and saves a JSON chunk every 500 messages automatically. It stops at the top of the channel (no-progress detection) or when you press Stop.

  4. Click Save Remainder at the end to flush the final partial chunk.

  5. Click Chunk Folder to open the output folder.

Exports land in <BetterDiscord plugins folder>/test123-export-chunks/:

test123-export-chunks/
├── discord-visible-picker-session-<timestamp>-part-001-500.json
├── discord-visible-picker-session-<timestamp>-part-002-500.json
├── discord-visible-picker-session-<timestamp>-manifest.json
└── media/
    └── part-001-<attachmentId>-<filename>.png

Keyboard shortcuts (while the picker is open)

Key Action
A Select visible messages
S / Shift+S Select + scroll down / up
H Start/stop Auto 1000 Chunks
D Cycle density mode
P Save remainder chunk
J / T Save selection as JSON / TXT
R Refresh preview
C Clear selection
Esc Close picker

Safety & privacy

  • Local only. Exports are written to your own disk. The plugin makes no network requests except downloading attachments of messages you selected — and only from Discord's own CDN (cdn.discordapp.com / media.discordapp.net).
  • No credentials. It never reads or touches your Discord token, password, or account data.
  • No API scraping. It cannot see anything you can't see — only messages rendered in your client.
  • Auditable. The whole plugin is a single readable JavaScript file. Read it before you run it — that's good practice for any client mod.

⚠️ Disclaimers

  • Client modifications (including BetterDiscord itself) are against Discord's Terms of Service. Enforcement against passive cosmetic/utility plugins is historically rare, but you use this at your own risk.
  • Respect other people's content and your local laws. Only export chats you have a legitimate right to keep (your own communities, research with permission, personal archives).

Compatibility notes

Discord ships UI changes frequently and class names are obfuscated. The plugin uses defensive selectors ([class*="..."], [id*="message-content-"]) rather than exact class names, but a big Discord redesign can still break capture or density styling. If that happens, open an issue.

FAQ

Can this export/download my Discord chat history? Yes — that's what it's for. Open a channel or DM, open the Visible Message Picker, and let the auto-runner scroll and save your Discord messages to JSON chunks, including images and file attachments.

How is this different from DiscordChatExporter? DiscordChatExporter is a standalone app that exports full channel history via the Discord API using your token. VisibleMessageExporter takes the opposite approach: it runs inside your Discord client as a BetterDiscord plugin, never touches your token or the API, and captures only what's rendered on screen. Slower for huge channels, but simpler, fully transparent, and with zero credential exposure.

Does it back up images and files? Yes — attachments are downloaded locally at capture time, which matters because Discord's CDN links expire after ~24 hours.

Does it work on the Discord web app? No — BetterDiscord only supports the desktop client (Windows/macOS/Linux).

License

MIT

About

Discord message exporter — BetterDiscord plugin to export, download and archive Discord chat messages to TXT/JSON, with bulk auto-chunking and local image/file attachment backup

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors