Tips and best practices
Download assets soon after exporting
Discord CDN links are signed and expire (roughly 24 hours). The sync pipeline downloads assets immediately after each export for exactly this reason — if you use the lower-level commands, run discord-sync assets <dir> right after export, not next week. Assets that fail (or whose links had already expired) are recorded in _assets/manifest.json with the error; once fresh exports re-reference them with new signed URLs, discord-sync assets <dir> --retry-failed gives them another chance.
Incremental syncs still take a few minutes on big forums
An incremental sync only fetches messages newer than the recorded lastMessageId, but DiscordChatExporter still has to enumerate every thread of the channel (that is the shape of the Discord API, not a choice). On a large forum channel expect a few minutes per sync even when only a handful of new messages come back — the win is in the download volume, not the enumeration.
Spread very large first-time exports
For a first-time export of a huge channel, prefer the chunked export command over a flat one: --step controls the window size and --sleep/--jitter the pauses between windows. Chunks are marked .done as they finish, so you can interrupt at any point and rerun the same command to resume. Once the full export exists, run update-state on the directory and switch to regular sync for the increments.
Explored state lives in your browser
The Explored toggles on the HTML pages are stored in the browser’s localStorage, keyed by thread ID — so they survive regeneration, but they do not follow the files to another browser or machine. Use the export/import buttons on html/index.html to move the state as a JSON file.
The Markdown files are made for Obsidian
Drop a channel’s md/ folder (or the whole channel directory) into a vault:
- The
explore: falsefrontmatter property is preserved across regenerations, so flipping it totruein Obsidian is safe — use it to drive an Obsidian Base or Dataview query listing what you have not read yet (e.g.WHERE explore = false). discord_urlin the frontmatter and the per-message↗links jump straight back to the original messages on Discord.- Attachment links point at the local
_assets/copies, so images render offline once assets are downloaded.