Skip to main content

Channel transcripts

Saving a channel as a page you can open in a browser, plus the raw data behind it.

Running one​

/transcript channel: #general

Leave channel out and you get the channel you typed the command in. The bot reads the whole channel, oldest message first, and replies with two files:

FileWhat it is
general-2026-09-15.htmlThe channel, drawn the way Discord draws it. Open it in any browser.
general-2026-09-15.jsonEvery message as Discord sent it, untouched, with a table of the names, roles and channels the page needed.

The page keeps the things Discord shows: avatars, role colours, replies with their preview, edits, reactions, embeds, buttons, polls, forwarded messages, stickers, and the join and pin lines. Times show in your own timezone, the same as Discord, and the date dividers move with them.

The two options​

limit takes only the latest that many messages. Use it on a channel that is too big to attach in one go; the page says which dates it covers, so you can work back through the rest in parts.

private shows the files to you alone. Use it when you are pulling a private channel while standing in a public one. Without it the files post where you ran the command, which is the right place for an archive of that channel.

Images​

Discord's links to attachments stop working about a day after the export. The page stores its images inside itself, avatars first, then attachments in order, for as long as the upload limit allows. The reply and the page footer both say how many made it. Files that are not images, and any image that did not fit, link to Discord and expire with it.

Who can run it​

Somebody who can already read the channel, and who has Manage Messages there or the admin role. The bot also has to be able to read the channel. If you cannot see a channel, you cannot export it, whatever the bot can see.

Size​

The two files travel in one message under the server's upload limit, 10 MB on a server with no boosts. Over that they arrive as one zip. A channel that will not fit even zipped gets a reply saying so; use limit. An export stops at 25,000 messages, which is past what a 10 MB upload can carry anyway.

When you are stuck

The reply just says the channel is too big

Run it again with limit. Start with 5000 and read the dates off the page to pick the next range.

The reply landed in the channel, not as a reply to me

The export took longer than a command reply stays alive, fifteen minutes, so the bot posted it directly. A private export that outlives the reply goes to your DMs instead.

Images are missing when I open the page later

They did not fit inside the page, so they link to Discord, and Discord's links have expired. The footer says how many were kept. Export smaller ranges with limit to fit more images in each.

A mention shows as unknown-user

That person has left Discord entirely, or the lookup for them failed. Everybody the bot could still name is named, including people who have left the server.