Fingerprinting
Skill pencil20388-eng/browser-automation-skills/skills/fingerprinting
๐ Drop-in skills that teach Claude Code, Cursor & Codex CLI how to automate browsers. Playwright, Selenium, Puppeteer, Web Scraping, AdsPower & more.
npx -y skills add pencil20388-eng/browser-automation-skills --skill fingerprintingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.4 KB, as published. Nobody here has run it
Browser Fingerprinting Skill
Understand how websites identify browsers through fingerprinting, and how to manage fingerprint isolation for multi-account scenarios.
What is browser fingerprinting?
Websites collect dozens of browser attributes to create a unique "fingerprint" that identifies your browser across sessions โ even without cookies. Key attributes include:
| Attribute | What it reveals | Uniqueness |
|---|---|---|
| User-Agent | OS, browser, version | Low |
| Screen resolution | Display size, pixel ratio | Medium |
| Canvas | GPU rendering differences | High |
| WebGL | Graphics card info, rendering | High |
| AudioContext | Audio processing fingerprint | High |
| Fonts | Installed system fonts | High |
| Timezone | Geographic region | Low |
| Language | Browser/OS language settings | Low |
| WebRTC | Real IP address (even behind VPN) | Critical |
| Hardware concurrency | CPU core count | Medium |
| Device memory | RAM amount | Medium |
| Platform | OS architecture | Low |
Check your fingerprint
# Open BrowserScan to see your fingerprint profile
# Works with Selenium or Playwright
driver.get("https://www.browserscan.net/")
# or
page.goto("https://www.browserscan.net/")
Other fingerprint checking sites:
- https://www.browserscan.net/
- https://browserleaks.com/
- https://amiunique.org/
- https://coveryourtracks.eff.org/
Canvas fingerprinting
Canvas fingerprinting draws invisible shapes on an HTML5 canvas and hashes the pixel data. Different GPUs and rendering engines produce different results.
// How sites detect canvas fingerprint (conceptual)
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.fillText('fingerprint test', 2, 2);
const hash = canvas.toDataURL().hashCode();
To spoof: Antidetect browsers like AdsPower inject noise into canvas rendering so each profile produces a different hash.
WebGL fingerprinting
WebGL exposes GPU vendor, renderer, and shader precision โ very hard to spoof manually.
const gl = document.createElement('canvas').getContext('webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
const vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
WebRTC IP leak
WebRTC can reveal your real IP address even when using a proxy or VPN.
// WebRTC leak test
const pc = new RTCPeerConnection({ iceServers: [] });
pc.createDataChannel('');
pc.createOffer().then(offer => pc.setLocalDescription(offer));
pc.onicecandidate = event => {
if (event.candidate) {
console.log('IP:', event.candidate.candidate);
}
};
To prevent: Disable WebRTC or use an antidetect browser that masks the real IP in WebRTC.
Fingerprint isolation for multi-account
When managing multiple accounts, each account needs a unique, consistent fingerprint. Using the same fingerprint across accounts is a common reason for account linking and bans.
Required isolation per account:
- Unique canvas noise seed
- Unique WebGL parameters
- Unique User-Agent
- Separate proxy IP
- Isolated cookies and localStorage
- Different timezone matching the proxy location
- Different language settings
- Disabled or masked WebRTC
Tools for fingerprint management:
- AdsPower โ antidetect browser with per-profile fingerprint management and Local API for automation
- Browser profiles in Playwright/Selenium only isolate cookies, NOT fingerprints
Fingerprint consistency
A fingerprint must be internally consistent. Common mistakes:
| Mistake | Detection signal |
|---|---|
| US proxy + China timezone | Timezone doesn't match IP geolocation |
| Windows User-Agent + Mac fonts | OS fonts don't match claimed OS |
| High-end GPU in WebGL + mobile User-Agent | Hardware doesn't match device type |
| Same canvas hash across 50 accounts | All accounts have identical fingerprint |
Important notes
- Cookie clearing does NOT reset your fingerprint
- Incognito mode does NOT change your fingerprint
- VPN changes your IP but NOT your fingerprint
- Each browser profile needs a unique fingerprint AND a unique proxy for proper isolation
- Antidetect browsers automate fingerprint randomization; doing it manually in Selenium/Playwright is fragile and incomplete