@Fox Unfortunately there is no integration shown in the repository, OP doesn't show us how to use external fingerprints.json with over 1k values lets say, to mask the selenium
an example
def setup_fingerprints(self):
# Set user agent
self.chrome_options.add_argument(f"--user-agent={self.fingerprint_values['ua']}")
# Set canvas fingerprint
canvas_script = f"Object.defineProperty(HTMLCanvasElement.prototype, 'toDataURL', {{ value: function() {{ return '{self.fingerprint_values['canvas']}'; }} }});"
self.driver.execute_script(canvas_script)
# Set webgl fingerprint
webgl_script = f"WebGLRenderingContext.prototype.getParameter = function(parameter) {{ return '{self.fingerprint_values['webgl']}'; }};"
self.driver.execute_script(webgl_script)
# Set audio fingerprint
audio_script = f"Object.defineProperty(AudioContext.prototype, 'outputLatency', {{ get: function() {{ return {self.fingerprint_values['audio_properties']['AudioContextBaseLatency']}; }} }});"
self.driver.execute_script(audio_script)
# Set battery fingerprint
battery_script = f"navigator.getBattery = function() {{ return Promise.resolve({{ charging: true, chargingTime: Infinity, dischargingTime: Infinity, level: 1 }}); }};"
self.driver.execute_script(battery_script)
# Set fonts fingerprint
fonts_script = ""
for font in self.fingerprint_values['fonts']:
fonts_script += f"document.fonts.check('12px {font}');"
self.driver.execute_script(fonts_script)