Aller au contenu

L'alternative à puppeteer-extra-plugin-stealth open source

Le plugin stealth reste le moyen le plus installé pour greffer des évasions sur Puppeteer, avec environ 840000 téléchargements par semaine, mais il n’a pas connu de nouvelle version depuis mars 2023. Chaque évasion est un patch JavaScript sur un Chrome d’origine, et les patchs JavaScript se trahissent. Clearcote définit ces valeurs nativement dans le moteur.

Qu'est-ce que puppeteer-extra-plugin-stealth ?

puppeteer-extra-plugin-stealth (par berstend) est un ensemble de modules d’évasion JavaScript injectés avec page.evaluateOnNewDocument avant l’exécution des scripts de la page. Chacun corrige un seul indice : navigator.webdriver, les plugins, chrome.runtime, le vendor WebGL, les iframes, les codecs, etc. Il est sous licence MIT et extrêmement populaire, avec environ 840000 téléchargements npm par semaine, et son approche a été portée dans playwright-stealth et selenium-stealth.

Il n’est d’ailleurs plus maintenu dans les faits : la dernière version npm (2.11.2) date de mars 2023, et le dépôt n’a pas bougé depuis mi-2024. La limite structurelle est antérieure à cela. Il s’agit de surcharges JavaScript sur un moteur d’origine, et ces surcharges se trahissent via Function.prototype.toString, des descripteurs de propriété modifiés et des relectures depuis des Web Workers ou des iframes cross-origin où le patch est absent. Il ne modifie pas les valeurs natives, ne touche ni au TLS ni au HTTP/2, et ne traite pas la fuite CDP Runtime.enable. Son propre README admet qu’empêcher toutes les façons de détecter Chromium en headless est probablement impossible.

Clearcote vs puppeteer-extra-plugin-stealth

FonctionnalitéClearcotepuppeteer-extra-plugin-stealth
Approche Patchs C++ au niveau du moteur : valeurs natives Évasions JavaScript injectées dans chaque document
Raccord détectable Aucun : natif dans chaque realm (page, workers, iframes) Visible via toString, les descripteurs, les relectures depuis un worker ou une iframe
Cohérence TLS / réseau Suit le Chrome annoncé (JA3/JA4 + HTTP/2) Non traitée
Framework Playwright et Puppeteer (Python, Node, .NET) Puppeteer (Node) ; playwright-extra pour Playwright
Maintenance Actif Dernière version en mars 2023
Licence Build ouvert sous BSD-3 MIT
Coût Build ouvert gratuit ; dernier build gratuit avec GitHub Gratuit et open source

Comparatif établi en septembre 2026. Licence de puppeteer-extra-plugin-stealth : Open source (MIT) ; les détails évoluent — consultez le projet pour les informations les plus récentes.

Pourquoi les équipes choisissent Clearcote

Natif, pas surchargé

Chaque évasion du plugin stealth est une surcharge JavaScript qu’un détecteur peut repérer. Clearcote définit les valeurs dans le moteur : elles apparaissent comme natives, et il n’y a aucune surcharge à trouver.

Cohérent dans tous les realms

Les patchs JavaScript appliqués à la page divergent dans les Web Workers et les iframes cross-origin. Les valeurs définies au niveau du moteur concordent partout, ce qui élimine cette catégorie d’indices.

La couche réseau

Le plugin n’a aucun accès au TLS ni au HTTP/2. Le handshake de Clearcote suit la version de Chrome annoncée : ce qui passe sur le réseau concorde avec le JavaScript.

Maintenu et vérifié

Clearcote est vérifié avec des tests ouverts à chaque version. Les évasions du plugin datent de début 2023, et Chrome a avancé de dizaines de versions depuis.

Quand puppeteer-extra-plugin-stealth peut être le meilleur choix

  • Vous utilisez déjà Puppeteer et voulez un ensemble d’évasions en une ligne pour des cibles peu exigeantes.
  • Il vous faut un outil sous licence MIT à glisser dans un scraper Node existant.
  • Pour les pages de test publiques et les détections plus anciennes, c’est rapide et parfois suffisant.

FAQ

puppeteer-extra-plugin-stealth est-il encore maintenu ?

Pas activement. La dernière version npm, 2.11.2, a été publiée en mars 2023, et le dépôt n’a pas été mis à jour depuis juillet 2024. Il s’installe toujours et reste très utilisé, mais ses évasions n’ont pas suivi le rythme de Chrome.

Pourquoi les patchs de furtivité JavaScript sont-ils détectés ?

Parce que ce sont des surcharges d’une vraie fonction. Un détecteur peut la convertir en chaîne (une fonction native affiche [native code] ; une surcharge révèle son propre code source), inspecter le descripteur de propriété, ou relire la valeur depuis une iframe neuve ou un Web Worker où le patch n’est pas appliqué. Les modifications au niveau du moteur évitent ce problème en rendant la valeur native partout.

En quoi Clearcote diffère-t-il du plugin stealth ?

Le plugin injecte des évasions JavaScript dans un Chrome d’origine ; Clearcote est un Chromium modifié où les valeurs sont natives dans le moteur, cohérentes entre workers et iframes, avec un persona TLS/HTTP-2 auquel le plugin n’a pas accès.

Existe-t-il une version pour Playwright ?

Oui : playwright-extra peut charger le même plugin sous Node, et playwright-stealth le porte en Python. Les deux reposent sur la même conception à base de surcharges JavaScript.

À lire aussi

Q&RWhy does Function.toString() reveal a hooked function?Calling toString() on a native function returns “[native code]”; an override returns its own source instead — so detectors stringify APIs to catch JavaScript spoofs.ComparatifClearcote vs playwright-stealthplaywright-stealth est le moyen le plus rapide d’ajouter de la furtivité à Playwright en Python : un wrapper, et chaque page reçoit un ensemble d’évasions JavaScript. Mais ces évasions sont des surcharges posées sur un navigateur d’origine, et son propre mainteneur le qualifie de preuve de concept. Clearcote, lui, définit ces valeurs nativement dans le moteur : il n’y a aucune surcharge qu’une page pourrait trouver.RechercheCoherence over camouflage: why a plausible identity beats a hidden oneMost stealth tooling tries to hide. The signals that survive scrutiny don't hide — they agree with each other.ComparatifClearcote vs CamoufoxCamoufox est un navigateur anti-détection open source bien conçu, basé sur Firefox. Clearcote applique la même approche au niveau du moteur, mais à Chromium : votre automatisation présente ainsi le navigateur qu’utilisent réellement environ 69 % du web, et non un navigateur utilisé par environ 3 %.ComparatifClearcote vs CloakBrowserCloakBrowser est un Chromium furtif solide, modifié au niveau du moteur et très suivi, mais son binaire patché est fermé. Clearcote agit lui aussi au niveau du moteur, tourne sur un Chromium plus récent et publie un build ouvert dont vous pouvez lire et recompiler chaque patch.ComparatifClearcote vs undetected-chromedriverundetected-chromedriver est encore téléchargé environ 2 millions de fois par mois, mais sa dernière version date de février 2024. Il cache le raccord Selenium/ChromeDriver sur un Chrome d’origine et ne touche jamais ni à l’empreinte ni à la couche réseau. Clearcote modifie les deux dans le moteur.

Essayez l'alternative Chromium open source

Gratuit et open source, s'utilise tel quel avec Playwright et Puppeteer, cohérent jusqu'au handshake TLS.

Gratuit pour un navigateur avec GitHub. Sans carte.