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é | Clearcote | playwright-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.
| Outil | Headed | Headless |
|---|---|---|
| Clearcote0.63.2 · r52 | 78%39/50 | 80%40/50 |
| Camoufox0.5.8 · v156.0.1-beta.36 | 72%36/50 | 80%40/50 |
| Invisible Playwright0.43.0 · Firefox | 76%38/50 | 78%39/50 |
| CloakBrowser0.6.4 | 74%37/50 | 64%32/50 |
| SeleniumBase (CDP mode)4.49.0 · Chrome | 74%37/50 | — |
| nodriver0.50.6 · Chrome | 74%37/50 | 40%20/50 |
| Zendriver0.17.1 · Chrome | 64%32/50 | 60%30/50 |
| tf-playwright-stealth (Firefox)1.2.0 | 58%29/50 | 62%31/50 |
| tf-playwright-stealth (Chromium)1.2.0 | 56%28/50 | 50%25/50 |
| Playwright (Chromium)1.62.0 | 56%28/50 | 30%15/50 |
| Playwright (Firefox)1.62.0 | 54%27/50 | 54%27/50 |
| Patchright1.64.3 · Chrome | 24%12/50 | 26%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.
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
Drivers patchés
p. ex. undetected-chromedriver, nodriver
Autres forks de Chromium
builds gratuits et payants
Clearcote Pro
r57, Chromium 156
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.
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 testLes 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 GitHub57 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
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é.