├── data ├── accounts.txt ├── proxies.txt ├── tokens.txt └── config.json ├── README.md └── v3.py /data/accounts.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/proxies.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/tokens.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DiscordMemberBooster 2 | # Star = More 3 | -------------------------------------------------------------------------------- /data/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "invite_code": "RRSxrSsPxv", 3 | "capmonster_key": "", 4 | "threads": 150, 5 | "online_tokens": false, 6 | "token base_name": "onlp", 7 | "password": "Onlp@2022!" 8 | } -------------------------------------------------------------------------------- /v3.py: -------------------------------------------------------------------------------- 1 | import os, time, json, random, base64, threading, re, sys 2 | try: import requests, colorama, cursor; from capmonster_python import HCaptchaTask 3 | except: os.system('pip install -q capmonster-python websocket requests colorama cursor') 4 | import requests, colorama, cursor; from capmonster_python import HCaptchaTask 5 | 6 | 7 | class Booster: 8 | def __init__(self) -> None: 9 | colorama.init() 10 | cursor.hide() 11 | 12 | self.config = json.load(open('./data/config.json', 'r')) 13 | self.proxies = open('./data/proxies.txt', 'r').read().splitlines() 14 | 15 | self.threads = self.config['threads'] 16 | self.capmonster_key = self.config['capmonster_key'] 17 | self.invite_code = self.config['invite_code'] 18 | self.online_tokens = self.config['online_tokens'] 19 | self.password = self.config['password'] 20 | self.captcha_tokens = [] 21 | 22 | self.lock = threading.Lock() 23 | 24 | self.red = colorama.Fore.RED 25 | self.green = colorama.Fore.GREEN 26 | self.cyan = colorama.Fore.CYAN 27 | self.purp = colorama.Fore.MAGENTA 28 | 29 | def __name__(self) -> str: 30 | username = self.config["token base_name"] + " | " + "".join(random.choices("abcdefghijklmnopqrstuvwxyz", k=4)) 31 | return username 32 | 33 | def __email__(self) -> str: 34 | domains = ["@gmail.com", "@yahoo.com", "@outlook.com", "@hotmail.com", "@protonmail.com"] 35 | email = self.config["token base_name"] + "_" + "".join(random.choices("abcdefghijklmnopqrstuvwxyz", k=8)) + random.choice(domains) 36 | return email 37 | 38 | def __properties__(self): 39 | data = { 40 | "os": "Windows", 41 | "browser": "Chrome", 42 | "device": "", 43 | "system_locale": "en-US", 44 | "browser_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36", 45 | "browser_version": "102.0.5005.61", 46 | "os_version": "10", 47 | "referrer": "", 48 | "referring_domain": "", 49 | "referrer_current": "", 50 | "referring_domain_current": "", 51 | "release_channel": "stable", 52 | "client_build_number": 130153, 53 | "client_event_source": None 54 | } 55 | 56 | return base64.b64encode(json.dumps(data).encode()).decode() 57 | 58 | def print(self, arg): 59 | self.lock.acquire() 60 | print(arg) 61 | self.lock.release() 62 | 63 | def __headers__(self, session: requests.Session) -> str: 64 | cookies = "" 65 | for item in session.cookies.items(): 66 | cookies += "=".join(item) + '; ' 67 | 68 | return cookies 69 | 70 | def __cookies__(self, session: requests.Session, proxy) -> list: 71 | try: 72 | proxies = { 73 | "http": f'http://{proxy}', 74 | "https": f'http://{proxy}' 75 | } 76 | 77 | url = "https://discord.com/" 78 | 79 | headers = { 80 | "host": "discord.com", 81 | "connection": "keep-alive", 82 | "upgrade-insecure-requests": "1", 83 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36", 84 | "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", 85 | "sec-fetch-site": "none", 86 | "sec-fetch-mode": "navigate", 87 | "sec-fetch-user": "?1", 88 | "sec-fetch-dest": "document", 89 | "sec-ch-ua": "\".Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"103\", \"Chromium\";v=\"103\"", 90 | "sec-ch-ua-mobile": "?0", 91 | "sec-ch-ua-platform": "\"Windows\"", 92 | "accept-encoding": "gzip, deflate, br", 93 | "accept-language": "en-US,en;q=0.9" 94 | } 95 | 96 | response = session.get(url, headers=headers, proxies=proxies) 97 | 98 | __dcfduid, __sdcfduid = re.findall('[a-z0-9]{32,96}', response.headers["set-cookie"]) 99 | return __dcfduid, __sdcfduid 100 | except: 101 | proxy = random.choice(self.proxies) 102 | self.__cookies__(session , proxy) 103 | 104 | def __main__(self): 105 | while threading.active_count() < self.threads: 106 | threading.Thread(target=self.__captcha__).start() 107 | 108 | def __gen__(self, captcha_token: str, proxy: str) -> None: 109 | try: 110 | session = requests.Session() 111 | self.__cookies__(session , proxy) 112 | 113 | email = self.__email__() 114 | username = self.__name__() 115 | 116 | payload = { 117 | "captcha_service": "hcaptcha", 118 | "captcha_key": captcha_token, 119 | "consent": "true", 120 | "date_of_birth": "2000-02-13", 121 | "email": f"{email}", 122 | "gift_code_sku_id": "null", 123 | "invite": self.config['invite_code'], 124 | "password": self.config['password'], 125 | "promotional_email_opt_in": "false", 126 | "username": username, 127 | } 128 | 129 | headers = { 130 | 'Host': 'discord.com', 131 | 'X-Super-Properties': self.__properties__(), 132 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) sAppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.47", 133 | 'X-Debug-Options': 'bugReporterEnabled', 134 | "Cookie": self.__headers__(session), 135 | } 136 | 137 | r = session.post( 138 | url = 'https://discord.com/api/v10/auth/register', 139 | headers = headers, 140 | json = payload, 141 | proxies = { 142 | "http": f"http://{proxy}", 143 | "https": f"http://{proxy}" 144 | } 145 | ) 146 | 147 | if 'captcha_key' in r.text: 148 | self.print(f'{self.red}Error {self.purp}|{self.cyan} Invalid captcha') 149 | return 150 | 151 | if 'The resource is being rate limited.' in r.text: 152 | time_to_wait = int(r.json()['retry_after']) + 1 153 | self.print(f'{self.red}Error {self.purp}|{self.cyan} ratelimited ' + proxy + " | " + str(time_to_wait) + 's') 154 | 155 | if time_to_wait > 15: 156 | if captcha_token in self.captcha_tokens: 157 | return 158 | if captcha_token not in self.captcha_tokens: 159 | self.captcha_tokens.append(captcha_token) 160 | 161 | proxy = random.choice(self.proxies) 162 | self.__gen__(captcha_token, proxy) 163 | 164 | time.sleep(time_to_wait) 165 | r = session.post( 166 | url = 'https://discord.com/api/v10/auth/register', 167 | headers = headers, 168 | json = payload, 169 | proxies = { 170 | "http": f"http://{proxy}", 171 | "https": f"http://{proxy}" 172 | } 173 | ) 174 | 175 | token = r.json()['token'] 176 | self.captcha_tokens.append(captcha_token) 177 | with open("./data/tokens.txt", "a") as x: x.write(f'{token}\n') 178 | with open("./data/accounts.txt", "a") as x: x.write(f'{email}:{self.config["password"]}:{token}\n') 179 | self.print(f'{self.green}Joined {self.purp}|{self.cyan} ' + token) 180 | 181 | except Exception as e: 182 | if captcha_token in self.captcha_tokens: 183 | return 184 | else: 185 | proxy = random.choice(self.proxies) 186 | self.print(f'{self.red}Error {self.purp}|{self.cyan} retrying with ' + proxy) 187 | self.captcha_tokens.append(captcha_token) 188 | self.__gen__(captcha_token, proxy) 189 | 190 | def __captcha__(self): 191 | while True: 192 | try: 193 | proxy = random.choice(self.proxies) 194 | capmonster = HCaptchaTask(self.config["capmonster_key"]) 195 | task_id = capmonster.create_task("https://discord.com/register", "4c672d35-0701-42b2-88c3-78380b0db560") 196 | self.print(f'{self.green}Task {self.purp}|{self.cyan} ' + str(task_id)) 197 | captcha_token = capmonster.join_task_result(task_id)["gRecaptchaResponse"] 198 | self.print(f'{self.green}Solved {self.purp}|{self.cyan} ' + captcha_token[:15]) 199 | 200 | self.__gen__(captcha_token, proxy) 201 | except Exception as e: 202 | print(e) 203 | continue 204 | 205 | if __name__ == "__main__": 206 | os.system('cls' if os.name == 'nt' else 'clear') 207 | Booster().__main__() 208 | --------------------------------------------------------------------------------