Aller au contenu

L'alternative à playwright-stealth open source

playwright-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.

Qu'est-ce que playwright-stealth ?

playwright-stealth est un portage Python de puppeteer-extra-plugin-stealth pour Playwright. Le portage d’origine, par AtuboDad, n’a pas été mis à jour depuis 2023 ; le nom PyPI est désormais repris par un fork maintenu (Mattwmaster58), qui a publié une version 2.0 avec une API plus propre et intégré une partie des pull requests en attente (dernière version 2.0.3, avril 2026). Il est sous licence MIT et très largement utilisé : environ 3 millions de téléchargements PyPI par mois.

Il fonctionne principalement en enregistrant des scripts d’init sur chaque contexte, chacun corrigeant un indice : navigator.webdriver, navigator.languages, les plugins, le vendor WebGL, chrome.runtime, etc. Le mainteneur est franc sur ses limites. Le README dit de ne pas compter sur lui pour contourner autre chose que la détection de bots la plus simple, et le présente comme un point de départ. Les raisons sont structurelles : une surcharge JavaScript se repère avec Function.prototype.toString ou en vérifiant le descripteur de propriété, les scripts d’init de la page n’atteignent pas les Web Workers, et, si son wrapper définit aussi quelques flags de lancement ainsi que les en-têtes User-Agent et Sec-CH-UA, rien dans le package ne touche aux effets de bord CDP propres au driver Playwright ni au handshake TLS.

Clearcote vs playwright-stealth

FonctionnalitéClearcoteplaywright-stealth
Approche Patchs C++ au niveau du moteur : valeurs natives Scripts d’init JavaScript sur un navigateur d’origine
Raccord détectable Aucun : natif dans la page, les iframes et les workers Surcharges visibles via toString, les descripteurs et les relectures depuis un worker
Identité de l’empreinte Persona cohérent dérivé d’une seule seed (canvas, WebGL, polices, navigator) Quelques valeurs définies à la main par-dessus les valeurs réelles de l’hôte
Effets de bord du driver / CDP Contenus au lancement (mondes isolés) et dans le moteur Non traités ; driver Playwright d’origine
Cohérence TLS / réseau Le ClientHello suit la version de Chrome annoncée TLS non traité ; définit uniquement les en-têtes User-Agent et Sec-CH-UA
Framework Playwright et Puppeteer (Python, Node, .NET) Playwright (Python)
Mise en place Remplacer le binaire du navigateur Envelopper Playwright en une ligne
Coût Build ouvert gratuit ; dernier build gratuit avec GitHub ; Pro $49/mois Gratuit et open source (MIT)

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

Mesuré : 12 outils sur les mêmes 10 sites

Nous avons exécuté 5 fois le harness open source browsers-benchmark, la dernière fois le 27 octobre 2026. Chaque outil tournait avec sa propre IP résidentielle américaine, dans un ordre différent à chaque exécution. Un succès signifie que la vérification propre au harness pour ce site a trouvé la page elle-même, et non une page de blocage ou de challenge. Clearcote mesuré sur un ordinateur de bureau Windows (dernière build) ; les autres outils sur un serveur Linux.

Le harness teste tf-playwright-stealth, un fork de playwright-stealth ; ses lignes sont signalées.

Part des chargements de page ayant atteint la vraie page, par outil, en mode headed et headless
OutilHeadedHeadless
Clearcote0.63.2 · r5278%39/5080%40/50
Camoufox0.5.8 · v156.0.1-beta.3672%36/5080%40/50
Invisible Playwright0.43.0 · Firefox76%38/5078%39/50
CloakBrowser0.6.474%37/5064%32/50
SeleniumBase (CDP mode)4.49.0 · Chrome74%37/50—
nodriver0.50.6 · Chrome74%37/5040%20/50
Zendriver0.17.1 · Chrome64%32/5060%30/50
tf-playwright-stealth (Firefox)1.2.058%29/5062%31/50
tf-playwright-stealth (Chromium)1.2.056%28/5050%25/50
Playwright (Chromium)1.62.056%28/5030%15/50
Playwright (Firefox)1.62.054%27/5054%27/50
Patchright1.64.3 · Chrome24%12/5026%13/50

Sites : une page de résultats de recherche, un forum communautaire, le site d’un éditeur de logiciels, un distributeur de luxe, une fiche produit sur une marketplace, un site de billetterie, un distributeur de mode, un site de réservation de voyages, une compagnie aérienne, un réseau social. Il s’agit d’un instantané pris sur un seul réseau et une seule semaine : les résultats évoluent à chaque release, avec chaque proxy et avec les sites eux-mêmes, et aucun outil n’a chargé chaque site à chaque fois. Résultats bruts (JSON).

Pourquoi les équipes choisissent Clearcote

Natif, pas surchargé

Chaque évasion de playwright-stealth remplace une vraie fonction du navigateur par une fonction JavaScript, et ce remplacement est observable. Clearcote modifie la valeur à l’intérieur de Chromium : la fonction qu’inspecte la page est la vraie fonction native.

La même réponse dans chaque realm

Les scripts d’init patchent la page. Relisez la même valeur depuis un Web Worker ou une iframe neuve, et vous obtenez l’original non patché. Les valeurs définies au niveau du moteur concordent partout.

Une identité complète, pas une poignée de champs

Une seule seed --fingerprint produit une machine cohérente sur le canvas, WebGL, l’audio, les polices, l’écran et le matériel, au lieu de quelques surcharges plaquées sur l’hôte réel.

Gardez votre code Playwright

Clearcote est un binaire Chromium. Faites pointer executable_path dessus, ou utilisez le launch() du SDK, et le reste de votre script Playwright ne change pas.

Quand playwright-stealth peut être le meilleur choix

  • Vous voulez tester quelque chose en cinq minutes sur une cible peu exigeante, sans gérer de binaire de navigateur.
  • Vos cibles ne vérifient que les indices évidents, comme navigator.webdriver.
  • Vous utilisez déjà Clearcote et vous vous demandez s’il vous le faut encore : non. Ses évasions font doublon avec des valeurs que le moteur définit déjà, et ajouter des surcharges JavaScript par-dessus fait réapparaître le raccord que le moteur supprime.

FAQ

playwright-stealth fonctionne-t-il encore ?

Il s’installe et tourne toujours, et la dernière version du fork maintenu est la 2.0.3 (avril 2026). Qu’il suffise ou non dépend de la cible. Son propre README prévient qu’il ne gère que la détection la plus simple, car les surcharges JavaScript sont détectables et il ne touche ni au driver ni à la couche TLS.

Quelle est la différence entre playwright-stealth et Clearcote ?

playwright-stealth injecte du JavaScript dans un Chromium d’origine pour surcharger un ensemble de valeurs. Clearcote est un Chromium modifié où ces valeurs sont natives, cohérentes d’une frame et d’un worker à l’autre, avec en dessous une empreinte TLS assortie. Les deux se pilotent avec un Playwright ordinaire.

Faut-il utiliser playwright-stealth avec Clearcote ?

Non. Le moteur renvoie déjà des valeurs cohérentes, et y superposer des surcharges JavaScript remplace des fonctions natives par des fonctions détectables. Lancez Clearcote avec Playwright, tout simplement.

Existe-t-il un playwright-stealth pour Node.js ?

L’équivalent Node est playwright-extra avec le plugin stealth de puppeteer-extra, qui repose sur la même conception à base de surcharges JavaScript. Clearcote fonctionne de la même façon depuis Python, Node et .NET.

Jusqu'où ça va

Plus de deux fois plus de patchs que n'importe quel fork comparé.

Patchs compilés dans Chromium, par approche. Les outils à base de scripts ne modifient pas du tout le moteur.

Plugins de stealth

p. ex. puppeteer-extra-plugin-stealth

0

Drivers patchés

p. ex. undetected-chromedriver, nodriver

0

Autres forks de Chromium

builds gratuits et payants

35–87

Clearcote Pro

r57, Chromium 156

240

Nombre de patchs publiés, octobre 2026. La fourchette couvre les builds gratuits et payants des autres forks ; pour Clearcote, c'est le build Pro.

Testez

365 vérifications, gratuites, sur votre propre navigateur

Le test d'empreinte imposé à chaque build Clearcote. Lancez-le sur ce que vous utilisez aujourd'hui et comparez.

Lancer le test
Lisez

Les patchs du build ouvert sont publics

Le build ouvert gratuit est sous BSD-3, reproductible depuis les sources et sans compte. Le build Pro y ajoute des patchs privés.

Ouvrir sur GitHub
Suivez les sorties

57 versions du moteur, 7 versions majeures de Chromium

Chaque patch est repris dans chaque nouvelle version de Chromium. Le dernier build reçoit les nouvelles versions majeures le jour de leur sortie.

Voir les versions

À lire aussi

DocumentationMigrating from playwright-stealth or PatchrightReplace one line: clearcote.launch() returns a Playwright browser with the fingerprint set in the engine. What to remove from your script.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.Q&RPlaywright vs Puppeteer for stealth: does it matter?Both drive Chromium over CDP, so both leak the same automation artifacts. Stealth comes from the browser binary and launch defaults, not the framework you pick.ComparatifClearcote vs puppeteer-extra-plugin-stealthLe plugin stealth reste le moyen le plus installé pour greffer des évasions sur Puppeteer, avec plus d’un million de 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.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 66 % 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 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,5 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 : GitHub, une vérification de carte ou un compte Google d'entreprise. Jamais débité.