This project is a cross-platform cli executable program to interact with a Discord Bot (genuine bot application or user account, limitations apply to both respectively) to locally download files posted from Discord in real-time as well as a full archive of old messages. It can download any directly sent Discord attachments or linked files and supports fetching highest possible quality files from specific sources (see list below).
It also supports very extensive settings configurations and customization, applicable globally or per-server/category/channel/user. Tailor the bot to your exact needs and runtime environment.
Originally a fork of Seklfreak's discord-image-downloader-go
The original project was abandoned, for a list of differences and why I made an independent project, see below
Wiki - Getting Started
Wiki - Settings
Wiki - Settings Examples
Wiki - Guide - Commands
Operating System | Architectures ( ? = available but untested ) |
---|---|
Windows | amd64, arm64 (?), armv7/6/5 (?), 386 (?) |
Linux | amd64, arm64, armv7/6/5, risc-v64 (?), mips64/64le (?), s390x (?), 386 (?) |
Darwin (Mac) | amd64, arm64 (?) |
FreeBSD | amd64 (?), arm64 (?), armv7/6/5 (?), 386 (?) |
OpenBSD | amd64 (?), arm64 (?), armv7/6/5 (?), 386 (?) |
NetBSD | amd64 (?), arm64 (?), armv7/6/5 (?), 386 (?) |
Read more in Discord Trust & Safety Team's Official Statement...
While this project works for user logins, I do not recommend it as you risk account termination. If you can, use a proper Discord Bot user for this program.
NOTE: This only applies to real User Accounts, not Bot users. This program currently works for either.
- Direct Links to Files
- Discord File Attachments
- Twitter / X (unofficial scraping, requires account login, see config section)
- Instagram (unofficial scraping, requires account login, see config section)
- Imgur
- Streamable
- Gfycat
- Tistory
- Flickr (requires API key, see config section)
- I'll always welcome requests but some sources can be tricky to parse...
Differences from Seklfreak's discord-image-downloader-go & Why I made this
- Better command formatting & support
- Configuration is JSON-based rather than ini to allow more elaborate settings and better organization. With this came many features such as channel-specific settings.
- Channel-specific control of downloaded filetypes / content types (considers things like .mov as videos as well, rather than ignore them), Optional dividing of content types into separate folders.
- (Optional) Reactions upon download success.
- (Optional) Discord messages upon encountered errors.
- Extensive bot status/presence customization.
- Consistent Log Formatting, Color-Coded Logging
- Somewhat different organization than original project; initially created from scratch then components ported over.
- Various fixes, improvements, and dependency updates that I also contributed to Seklfreak's original project.
I've been a user of Seklfreak's project since ~2018 and it's been great for my uses, but there were certain aspects I wanted to expand upon, one of those being customization of channel configuration, and other features like message reactions upon success, differently formatted statuses, etc. If some aspects are rudimentary or messy, please make a pull request, as this is my first project using Go and I've learned everything from observation & Stack Overflow.
- Q: How do I install?
- A: SEE #getting-started
- Q: How do I convert from Seklfreak's discord-image-downloader-go?
- A: Place your config.ini from that program in the same directory as this program and delete any settings.json file if present. The program will import your settings from the old project and make a new settings.json. It will still re-download files that DIDG already downloaded, as the database layout is different and the old database is not imported.
- I'm a complete amateur with Golang. If anything's bad please make a pull request.
- Follows Semantic Versioning:
[MAJOR].[MINOR].[PATCH]
https://semver.org/ - Follows Conventional Commits:
FEAT/FIX/REFACT/DOCS/CHORE/STYLE/TEST
https://www.conventionalcommits.org/en/v1.0.0/ - github.com/Seklfreak/discord-image-downloader-go - the original project this was founded on