$ curl cheat.sh/
#  You can often overcome this with judicious use of proxies.
#  
#  Start by getting a list of proxies from which you will make random
#  selections. I have a scraper that acquires proxies from https://free-
#  proxy-list.net
#  
#  My list (extract) looks like this:-

 http://103.197.71.7:80 - no
 http://163.116.177.33:808 - yes

#  'yes' means that HTTPS is supported. This list currently contains 95
#  proxies. It varies depending on the response from my scraper
#  
#  So we start by parsing the proxy list. Subsequently we choose proxies
#  at random before trying to access the Roblox API. This may not run
#  quickly because the proxies are not necessarily reliable. They are
#  free after all.

 from requests import get as GET, packages as PACKAGES
 from random import choice as CHOICE
 from concurrent.futures import ThreadPoolExecutor as TPE

 PACKAGES.urllib3.util.ssl_.DEFAULT_CIPHERS = 'ALL:@SECLEVEL=1'
 ROBLOX_API = 'https://api.roblox.com/users/get-by-username'
 TIMEOUT = 1

 def get_proxies():
     http, https = list(), list()
     with open('proxylist.txt') as p:
         for line in p:
             proxy_url, _, supports_https = line.split()
             _list = https if supports_https == 'yes' else http
             _list.append(proxy_url)
     return http, https

 http, https = get_proxies()

 def process(name):
     params = {'username': name.strip()}
     while True:
         try:
             proxy = {'http': CHOICE(http), 'https': CHOICE(https)}
             (r := GET(ROBLOX_API, params=params, proxies=proxy, timeout=TIMEOUT)).raise_for_status()
             if (j := r.json()).get('success', True):
                 print(j)
             break
         except Exception as e:
             pass

 with open('names.txt') as names:
     with TPE() as executor:
         executor.map(process, names)

#  In principle, the *while* loop in *process()* could get stuck so it
#  might make sense to limit the number of retries.
#  
#  This produces the following output:

 {'Id': 4082578648, 'Username': 'paquita12345jeje', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 2965702542, 'Username': 'mekayla_091', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 4079018794, 'Username': 'app_58230', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 3437922948, 'Username': 'kakoytochelik123', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 4082346906, 'Username': 'Abobausrip', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 2988555289, 'Username': 'HixPlayk', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 3286921649, 'Username': 'Sherri0708', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 1441252794, 'Username': 'ghfgrgt7nfdbfj', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 4088896225, 'Username': 'ddddorffg', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 3443374919, 'Username': 'TheWolfylikedog', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 3980932331, 'Username': 'Ameliathebest727', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 3773237135, 'Username': 'rip_robson0007', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}
 {'Id': 4082991447, 'Username': 'hfsgfhsgfhgfhds', 'AvatarUri': None, 'AvatarFinal': False, 'IsOnline': False}

#  [SIGHUP] [so/q/74979319] [cc by-sa 3.0]

$
Follow @igor_chubin cheat.sh