{"adoption": {"forks": 275, "observed_at": "2026-08-28T04:09:10.948204+00:00", "stars": 5125}, "canonical_url": "https://ross.abutalabs.com/products/browser-fingerprinting", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Analysis of Bot Protection systems with available countermeasures 🚿. How to defeat anti-bot system 👻 and get around browser fingerprinting scripts 🕵️‍♂️ when scraping the web?", "domain": ["crawlers", "security", "web-development"], "enriched": true, "function": ["web-scraping", "security", "developer-tools"], "health_score": 77, "homepage": "https://niespodd.github.io/browser-fingerprinting/", "language": "JavaScript", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["niespodd/browser-fingerprinting"], "name": "niespodd/browser-fingerprinting", "platform": ["browser"], "pushed_at": "2026-07-27T20:32:07+00:00", "repo": "niespodd/browser-fingerprinting", "stars": 5125, "tags": ["bot-detection", "browser-fingerprinting", "anti-bot", "stealth-scraping", "captcha", "web-automation", "guide", "automation", "nodejs", "javascript"], "topics": ["bot", "detection", "stealth", "scraper", "webscraping", "automation", "chromium-browser", "bot-detection", "fingerprinting", "crawler", "recaptcha", "browser-fingerprinting", "x-kpsdk-ct", "abck", "reese84", "arkose", "perimeterx", "aws-waf-token"], "urls": [], "use_cases": ["bypass bot detection when scraping websites", "avoid browser fingerprinting in a web scraper", "understand how anti-bot systems like PerimeterX or Kasada work", "scrape sites behind Cloudflare or AWS WAF", "make Puppeteer or Playwright undetectable", "solve captcha challenges like reCAPTCHA or Arkose during crawling", "automate social media accounts without getting blocked"], "what_it_is": "An educational guide and analysis repository explaining how bot protection systems (PerimeterX, Akamai, Kasada, Arkose, reCAPTCHA, etc.) detect automated browsers, with countermeasures for evading browser fingerprinting during web scraping. It includes curated tooling recommendations for different scraping scenarios.", "when_to_avoid": ["you need a ready-made production scraping library rather than a guide", "you want guaranteed, maintained code - this is primarily documentation and analysis with no license", "your use case is unrelated to web scraping or bot evasion"], "when_to_choose": ["you are building a web scraper and getting blocked by anti-bot systems", "you want to learn how browser fingerprinting and bot detection work", "you need guidance on choosing proxies, antidetect browsers, or stealth tooling for a scraping scenario"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/browser-fingerprinting", "repo": "niespodd/browser-fingerprinting", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:02:04.431380+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20c82b1c194f18869bcd1542cef7afd285c160c0988404dede3f281c60318dc3", "fetched_at": "2026-08-28T04:09:10.948204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/niespodd/browser-fingerprinting"}, {"content_hash": "79cc274e321820b5dcbbc013e8f08deec47e75395b791823ee2ab1d16a6a5056", "fetched_at": "2026-08-29T08:56:55.500648+00:00", "kind": "homepage", "missing": false, "url": "https://niespodd.github.io/browser-fingerprinting/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:02:04.431380+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20c82b1c194f18869bcd1542cef7afd285c160c0988404dede3f281c60318dc3", "fetched_at": "2026-08-28T04:09:10.948204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/niespodd/browser-fingerprinting"}, {"content_hash": "79cc274e321820b5dcbbc013e8f08deec47e75395b791823ee2ab1d16a6a5056", "fetched_at": "2026-08-29T08:56:55.500648+00:00", "kind": "homepage", "missing": false, "url": "https://niespodd.github.io/browser-fingerprinting/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:02:04.431380+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20c82b1c194f18869bcd1542cef7afd285c160c0988404dede3f281c60318dc3", "fetched_at": "2026-08-28T04:09:10.948204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/niespodd/browser-fingerprinting"}, {"content_hash": "79cc274e321820b5dcbbc013e8f08deec47e75395b791823ee2ab1d16a6a5056", "fetched_at": "2026-08-29T08:56:55.500648+00:00", "kind": "homepage", "missing": false, "url": "https://niespodd.github.io/browser-fingerprinting/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:02:04.431380+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20c82b1c194f18869bcd1542cef7afd285c160c0988404dede3f281c60318dc3", "fetched_at": "2026-08-28T04:09:10.948204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/niespodd/browser-fingerprinting"}, {"content_hash": "79cc274e321820b5dcbbc013e8f08deec47e75395b791823ee2ab1d16a6a5056", "fetched_at": "2026-08-29T08:56:55.500648+00:00", "kind": "homepage", "missing": false, "url": "https://niespodd.github.io/browser-fingerprinting/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:02:04.431380+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20c82b1c194f18869bcd1542cef7afd285c160c0988404dede3f281c60318dc3", "fetched_at": "2026-08-28T04:09:10.948204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/niespodd/browser-fingerprinting"}, {"content_hash": "79cc274e321820b5dcbbc013e8f08deec47e75395b791823ee2ab1d16a6a5056", "fetched_at": "2026-08-29T08:56:55.500648+00:00", "kind": "homepage", "missing": false, "url": "https://niespodd.github.io/browser-fingerprinting/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:02:04.431380+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20c82b1c194f18869bcd1542cef7afd285c160c0988404dede3f281c60318dc3", "fetched_at": "2026-08-28T04:09:10.948204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/niespodd/browser-fingerprinting"}, {"content_hash": "79cc274e321820b5dcbbc013e8f08deec47e75395b791823ee2ab1d16a6a5056", "fetched_at": "2026-08-29T08:56:55.500648+00:00", "kind": "homepage", "missing": false, "url": "https://niespodd.github.io/browser-fingerprinting/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:10.948204+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:02:04.431380+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20c82b1c194f18869bcd1542cef7afd285c160c0988404dede3f281c60318dc3", "fetched_at": "2026-08-28T04:09:10.948204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/niespodd/browser-fingerprinting"}, {"content_hash": "79cc274e321820b5dcbbc013e8f08deec47e75395b791823ee2ab1d16a6a5056", "fetched_at": "2026-08-29T08:56:55.500648+00:00", "kind": "homepage", "missing": false, "url": "https://niespodd.github.io/browser-fingerprinting/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:02:04.431380+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20c82b1c194f18869bcd1542cef7afd285c160c0988404dede3f281c60318dc3", "fetched_at": "2026-08-28T04:09:10.948204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/niespodd/browser-fingerprinting"}, {"content_hash": "79cc274e321820b5dcbbc013e8f08deec47e75395b791823ee2ab1d16a6a5056", "fetched_at": "2026-08-29T08:56:55.500648+00:00", "kind": "homepage", "missing": false, "url": "https://niespodd.github.io/browser-fingerprinting/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:02:04.431380+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20c82b1c194f18869bcd1542cef7afd285c160c0988404dede3f281c60318dc3", "fetched_at": "2026-08-28T04:09:10.948204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/niespodd/browser-fingerprinting"}, {"content_hash": "79cc274e321820b5dcbbc013e8f08deec47e75395b791823ee2ab1d16a6a5056", "fetched_at": "2026-08-29T08:56:55.500648+00:00", "kind": "homepage", "missing": false, "url": "https://niespodd.github.io/browser-fingerprinting/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:02:04.431380+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "20c82b1c194f18869bcd1542cef7afd285c160c0988404dede3f281c60318dc3", "fetched_at": "2026-08-28T04:09:10.948204+00:00", "kind": "readme", "missing": false, "url": "https://github.com/niespodd/browser-fingerprinting"}, {"content_hash": "79cc274e321820b5dcbbc013e8f08deec47e75395b791823ee2ab1d16a6a5056", "fetched_at": "2026-08-29T08:56:55.500648+00:00", "kind": "homepage", "missing": false, "url": "https://niespodd.github.io/browser-fingerprinting/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2048, "days_push": 37, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}