Darvester aims to provide safe Discord OSINT harvesting, abiding by sane rate limiting and providing automated processing
- Rate-limit/soft ban avoidance
- Automated processing
- Flexible configuration
- Utilization of the Git version control system to provide chronological data
- Detailed logging
- and more
- Profile created date, and first seen date
- Username and discriminator
- User ID (or Snowflake)
- Bio/about me
- Connected accounts (reddit, YouTube, Facebook, etc.)
- Public Discord flags (Discord Staff, Early Bot Developer, Certified Mod, etc.)
- Avatar URL
- Status/Activity ("Playing", "Listening to", etc.)
- Name
- Icon URL
- Owner name and ID
- Splash URL
- Member count
- Description
- Features (thread length, community, etc.)
- Nitro tier
All as nested JSON in harvested.db
(SQLite). Select data with id
as user ID (Snowflake).
You can access this data through Discord by using the command ,select [USER ID]
(see screenshots below)
Prior to recent additions, there has been no easy way to retrieve data out of the database. NEW: Check out this recent discussion concerning easy ways to interact with this database, including a web frontend and a REST API backend.
* Unless the server is using a 3rd party verification bot. For example, non-community servers using mee6 or Dyno to verify by role/reactionUsing this tool, you agree not to hold the contributors and developers accountable for any damages that occur. This tool violates Discord terms of service and may result in your access to Discord services terminated.
See the wiki page here
$
python run.py -h
usage: run.py [-h] [-ig FILE/GUILD_ID_OR_NAME] [-s] [-v] [-vv] [-p] [--db harvested.db] [-q] [--whitelist FILE/USER_ID] [--last-scanned LAST_SCANNED] [--disable-vcs]
Darvester - PoC Discord guild and user information harvester
optional arguments:
-h, --help show this help message and exit
-ig FILE/GUILD_ID_OR_NAME, --ignore-guild FILE/GUILD_ID_OR_NAME
Either a comma separated list of guild IDs or strings in a text file, or a single guild ID or string passed. Darvester will ignore the guild(s) specified here.
-s, --swap-ignore Swap the functionality of the IGNORE_GUILD (--ignore-guild) list. With this flag set, the list will become a whitelist instead of a blacklist, and will only harvest guilds specified inside the list.
-v, --debug Enable verbose debug messages.
-vv, --debug-discord Enable debug messages from Discord.py (can get pretty spammy!).
-p, --enable-presence
Enable rich presence for bot and client.
--db harvested.db The database file to log into.
-q Enable quiet mode to suppress some info going to the console.
--whitelist FILE/USER_ID, -w FILE/USER_ID
Either a comma separated list of user IDs in a text file, or a single user ID passed. Darvester will only respond to this userwhen commands are issued.
--last-scanned LAST_SCANNED, -ls LAST_SCANNED
The amount of time (in seconds) that must pass before we scan this user again, otherwise we skip when we encounter this user.
--disable-vcs, -dv Disable the VCS tracking system