This is 100% not a joke: I just woke up and I was dreaming about how to hand off control from Lisp back to a browser to handle this case. I may have a problem.
I managed to trick them with selenium, that line overriding webdriver to "null" for the navigator property was the secret sauce I think.
chrome_opt.add_argument("--headless")
chrome_opt.add_argument("--disable-gpu")
chrome_opt.add_argument("--window-size=1920,1080")
chrome_opt.add_argument("--start-maximized")
drv=webdriver.Chrome(chromedriver_location, options=chrome_opt)
drv.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'})
drv.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})

