{"adoption": {"forks": 79, "observed_at": "2026-08-28T04:04:41.415561+00:00", "stars": 1424}, "canonical_url": "https://ross.abutalabs.com/products/rebrowser-patches", "card": {"archived": false, "artifact_type": "library", "description": "Collection of patches for puppeteer and playwright to avoid automation detection and leaks. Helps to avoid Cloudflare and DataDome CAPTCHA pages. Easy to patch/unpatch, can be enabled/disabled on demand.", "domain": ["web-development", "crawlers", "security"], "enriched": true, "function": ["web-scraping", "security", "developer-tools"], "health_score": 44, "homepage": "https://rebrowser.net", "language": "JavaScript", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["rebrowser/rebrowser-patches"], "name": "rebrowser/rebrowser-patches", "platform": ["python", "cli"], "pushed_at": "2025-05-09T05:24:53+00:00", "repo": "rebrowser/rebrowser-patches", "stars": 1424, "tags": ["puppeteer", "playwright", "stealth", "anti-bot-detection", "captcha-bypass", "headless-browser", "cloudflare", "datadome", "browser-automation", "automation", "nodejs"], "topics": ["automation", "bot", "bot-detection", "chrome", "chromedriver", "cloudflare", "crawler", "crawling", "datadome", "headless", "headless-chrome", "playwright", "puppeteer", "puppeteer-extra", "scraping", "selenium", "stealth", "web-scraping", "webdriver", "rebrowser"], "urls": [], "use_cases": ["avoid bot detection when scraping with puppeteer", "bypass cloudflare captcha pages in playwright", "fix automation leaks in headless chrome", "scrape websites protected by datadome", "make puppeteer undetectable", "patch playwright to pass bot detector tests"], "what_it_is": "A collection of source-code patches for Puppeteer and Playwright that fix automation leaks and help avoid bot detection systems like Cloudflare and DataDome. Patches can be applied, removed, and toggled on demand, with drop-in replacement packages (rebrowser-puppeteer, rebrowser-playwright) also available.", "when_to_avoid": ["you need a stable, officially supported library - patches are fragile against upstream changes", "your scraping targets have no bot detection", "you need a license-guaranteed dependency - the repo has no explicit license file", "you want a managed scraping service instead of self-hosted tooling"], "when_to_choose": ["you use puppeteer or playwright for scraping and get blocked by anti-bot systems", "you need a drop-in stealth replacement via npm aliases without changing code", "you want toggleable patches rather than a full stealth plugin stack"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rebrowser-patches", "repo": "rebrowser/rebrowser-patches", "role": "main", "score": 34}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:37:36.633671+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a0d1b0bafd77e7eb36f44dd166961bd4d0bd3637a4937528951e60889663286", "fetched_at": "2026-08-28T04:04:41.415561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rebrowser/rebrowser-patches"}, {"content_hash": "e11f01ee717faf8810bc0cb8f163349ae67b03b6f9faeef62b551ec376a3b9eb", "fetched_at": "2026-08-29T11:49:57.047662+00:00", "kind": "homepage", "missing": false, "url": "https://rebrowser.net"}, {"content_hash": "ac261af39ef3df6c7471d43d2d5a92badc25a26157595070a6f0f3d478b42aef", "fetched_at": "2026-08-29T11:49:57.058971+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/docs"}, {"content_hash": "41b113fd8350f32c581eb7efccde86061c7a89762bcad6c30582ce619a321fbe", "fetched_at": "2026-08-29T11:49:57.060901+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rebrowser-patches"}, {"content_hash": "e513d687ecbae3e64fad827a6c2e05c43c547ff5090b7020301b986db771e8b9", "fetched_at": "2026-08-29T11:49:57.057076+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/pricing"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:37:36.633671+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a0d1b0bafd77e7eb36f44dd166961bd4d0bd3637a4937528951e60889663286", "fetched_at": "2026-08-28T04:04:41.415561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rebrowser/rebrowser-patches"}, {"content_hash": "e11f01ee717faf8810bc0cb8f163349ae67b03b6f9faeef62b551ec376a3b9eb", "fetched_at": "2026-08-29T11:49:57.047662+00:00", "kind": "homepage", "missing": false, "url": "https://rebrowser.net"}, {"content_hash": "ac261af39ef3df6c7471d43d2d5a92badc25a26157595070a6f0f3d478b42aef", "fetched_at": "2026-08-29T11:49:57.058971+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/docs"}, {"content_hash": "41b113fd8350f32c581eb7efccde86061c7a89762bcad6c30582ce619a321fbe", "fetched_at": "2026-08-29T11:49:57.060901+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rebrowser-patches"}, {"content_hash": "e513d687ecbae3e64fad827a6c2e05c43c547ff5090b7020301b986db771e8b9", "fetched_at": "2026-08-29T11:49:57.057076+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/pricing"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:37:36.633671+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a0d1b0bafd77e7eb36f44dd166961bd4d0bd3637a4937528951e60889663286", "fetched_at": "2026-08-28T04:04:41.415561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rebrowser/rebrowser-patches"}, {"content_hash": "e11f01ee717faf8810bc0cb8f163349ae67b03b6f9faeef62b551ec376a3b9eb", "fetched_at": "2026-08-29T11:49:57.047662+00:00", "kind": "homepage", "missing": false, "url": "https://rebrowser.net"}, {"content_hash": "ac261af39ef3df6c7471d43d2d5a92badc25a26157595070a6f0f3d478b42aef", "fetched_at": "2026-08-29T11:49:57.058971+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/docs"}, {"content_hash": "41b113fd8350f32c581eb7efccde86061c7a89762bcad6c30582ce619a321fbe", "fetched_at": "2026-08-29T11:49:57.060901+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rebrowser-patches"}, {"content_hash": "e513d687ecbae3e64fad827a6c2e05c43c547ff5090b7020301b986db771e8b9", "fetched_at": "2026-08-29T11:49:57.057076+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/pricing"}], "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:04:41.415561+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:37:36.633671+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a0d1b0bafd77e7eb36f44dd166961bd4d0bd3637a4937528951e60889663286", "fetched_at": "2026-08-28T04:04:41.415561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rebrowser/rebrowser-patches"}, {"content_hash": "e11f01ee717faf8810bc0cb8f163349ae67b03b6f9faeef62b551ec376a3b9eb", "fetched_at": "2026-08-29T11:49:57.047662+00:00", "kind": "homepage", "missing": false, "url": "https://rebrowser.net"}, {"content_hash": "ac261af39ef3df6c7471d43d2d5a92badc25a26157595070a6f0f3d478b42aef", "fetched_at": "2026-08-29T11:49:57.058971+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/docs"}, {"content_hash": "41b113fd8350f32c581eb7efccde86061c7a89762bcad6c30582ce619a321fbe", "fetched_at": "2026-08-29T11:49:57.060901+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rebrowser-patches"}, {"content_hash": "e513d687ecbae3e64fad827a6c2e05c43c547ff5090b7020301b986db771e8b9", "fetched_at": "2026-08-29T11:49:57.057076+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/pricing"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:37:36.633671+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a0d1b0bafd77e7eb36f44dd166961bd4d0bd3637a4937528951e60889663286", "fetched_at": "2026-08-28T04:04:41.415561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rebrowser/rebrowser-patches"}, {"content_hash": "e11f01ee717faf8810bc0cb8f163349ae67b03b6f9faeef62b551ec376a3b9eb", "fetched_at": "2026-08-29T11:49:57.047662+00:00", "kind": "homepage", "missing": false, "url": "https://rebrowser.net"}, {"content_hash": "ac261af39ef3df6c7471d43d2d5a92badc25a26157595070a6f0f3d478b42aef", "fetched_at": "2026-08-29T11:49:57.058971+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/docs"}, {"content_hash": "41b113fd8350f32c581eb7efccde86061c7a89762bcad6c30582ce619a321fbe", "fetched_at": "2026-08-29T11:49:57.060901+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rebrowser-patches"}, {"content_hash": "e513d687ecbae3e64fad827a6c2e05c43c547ff5090b7020301b986db771e8b9", "fetched_at": "2026-08-29T11:49:57.057076+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/pricing"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:37:36.633671+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a0d1b0bafd77e7eb36f44dd166961bd4d0bd3637a4937528951e60889663286", "fetched_at": "2026-08-28T04:04:41.415561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rebrowser/rebrowser-patches"}, {"content_hash": "e11f01ee717faf8810bc0cb8f163349ae67b03b6f9faeef62b551ec376a3b9eb", "fetched_at": "2026-08-29T11:49:57.047662+00:00", "kind": "homepage", "missing": false, "url": "https://rebrowser.net"}, {"content_hash": "ac261af39ef3df6c7471d43d2d5a92badc25a26157595070a6f0f3d478b42aef", "fetched_at": "2026-08-29T11:49:57.058971+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/docs"}, {"content_hash": "41b113fd8350f32c581eb7efccde86061c7a89762bcad6c30582ce619a321fbe", "fetched_at": "2026-08-29T11:49:57.060901+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rebrowser-patches"}, {"content_hash": "e513d687ecbae3e64fad827a6c2e05c43c547ff5090b7020301b986db771e8b9", "fetched_at": "2026-08-29T11:49:57.057076+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/pricing"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:41.415561+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:37:36.633671+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a0d1b0bafd77e7eb36f44dd166961bd4d0bd3637a4937528951e60889663286", "fetched_at": "2026-08-28T04:04:41.415561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rebrowser/rebrowser-patches"}, {"content_hash": "e11f01ee717faf8810bc0cb8f163349ae67b03b6f9faeef62b551ec376a3b9eb", "fetched_at": "2026-08-29T11:49:57.047662+00:00", "kind": "homepage", "missing": false, "url": "https://rebrowser.net"}, {"content_hash": "ac261af39ef3df6c7471d43d2d5a92badc25a26157595070a6f0f3d478b42aef", "fetched_at": "2026-08-29T11:49:57.058971+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/docs"}, {"content_hash": "41b113fd8350f32c581eb7efccde86061c7a89762bcad6c30582ce619a321fbe", "fetched_at": "2026-08-29T11:49:57.060901+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rebrowser-patches"}, {"content_hash": "e513d687ecbae3e64fad827a6c2e05c43c547ff5090b7020301b986db771e8b9", "fetched_at": "2026-08-29T11:49:57.057076+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/pricing"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:37:36.633671+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a0d1b0bafd77e7eb36f44dd166961bd4d0bd3637a4937528951e60889663286", "fetched_at": "2026-08-28T04:04:41.415561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rebrowser/rebrowser-patches"}, {"content_hash": "e11f01ee717faf8810bc0cb8f163349ae67b03b6f9faeef62b551ec376a3b9eb", "fetched_at": "2026-08-29T11:49:57.047662+00:00", "kind": "homepage", "missing": false, "url": "https://rebrowser.net"}, {"content_hash": "ac261af39ef3df6c7471d43d2d5a92badc25a26157595070a6f0f3d478b42aef", "fetched_at": "2026-08-29T11:49:57.058971+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/docs"}, {"content_hash": "41b113fd8350f32c581eb7efccde86061c7a89762bcad6c30582ce619a321fbe", "fetched_at": "2026-08-29T11:49:57.060901+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rebrowser-patches"}, {"content_hash": "e513d687ecbae3e64fad827a6c2e05c43c547ff5090b7020301b986db771e8b9", "fetched_at": "2026-08-29T11:49:57.057076+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/pricing"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:37:36.633671+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a0d1b0bafd77e7eb36f44dd166961bd4d0bd3637a4937528951e60889663286", "fetched_at": "2026-08-28T04:04:41.415561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rebrowser/rebrowser-patches"}, {"content_hash": "e11f01ee717faf8810bc0cb8f163349ae67b03b6f9faeef62b551ec376a3b9eb", "fetched_at": "2026-08-29T11:49:57.047662+00:00", "kind": "homepage", "missing": false, "url": "https://rebrowser.net"}, {"content_hash": "ac261af39ef3df6c7471d43d2d5a92badc25a26157595070a6f0f3d478b42aef", "fetched_at": "2026-08-29T11:49:57.058971+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/docs"}, {"content_hash": "41b113fd8350f32c581eb7efccde86061c7a89762bcad6c30582ce619a321fbe", "fetched_at": "2026-08-29T11:49:57.060901+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rebrowser-patches"}, {"content_hash": "e513d687ecbae3e64fad827a6c2e05c43c547ff5090b7020301b986db771e8b9", "fetched_at": "2026-08-29T11:49:57.057076+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/pricing"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:37:36.633671+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3a0d1b0bafd77e7eb36f44dd166961bd4d0bd3637a4937528951e60889663286", "fetched_at": "2026-08-28T04:04:41.415561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rebrowser/rebrowser-patches"}, {"content_hash": "e11f01ee717faf8810bc0cb8f163349ae67b03b6f9faeef62b551ec376a3b9eb", "fetched_at": "2026-08-29T11:49:57.047662+00:00", "kind": "homepage", "missing": false, "url": "https://rebrowser.net"}, {"content_hash": "ac261af39ef3df6c7471d43d2d5a92badc25a26157595070a6f0f3d478b42aef", "fetched_at": "2026-08-29T11:49:57.058971+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/docs"}, {"content_hash": "41b113fd8350f32c581eb7efccde86061c7a89762bcad6c30582ce619a321fbe", "fetched_at": "2026-08-29T11:49:57.060901+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rebrowser-patches"}, {"content_hash": "e513d687ecbae3e64fad827a6c2e05c43c547ff5090b7020301b986db771e8b9", "fetched_at": "2026-08-29T11:49:57.057076+00:00", "kind": "site_page", "missing": false, "url": "https://rebrowser.net/pricing"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 20, "longevity": 54, "rhythm": 40}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 757, "days_push": 481, "days_rel": 481, "gap_med": 6, "n_releases_24m": 6}, "score": 34, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}