La alternativa a playwright-stealth de código abierto
playwright-stealth es la forma más rápida de agregar stealth a Playwright en Python: un wrapper y cada página recibe un conjunto de evasiones en JavaScript. Pero esas evasiones son sobrescrituras sobre un navegador estándar, y su propio mantenedor lo describe como una prueba de concepto. Clearcote, en cambio, fija esos valores de forma nativa en el motor, así que no hay ninguna sobrescritura que una página pueda encontrar.
¿Qué es playwright-stealth?
playwright-stealth es un port a Python de puppeteer-extra-plugin-stealth para Playwright. El port original de AtuboDad no se actualiza desde 2023; el nombre en PyPI ahora lo lleva un fork con mantenimiento (Mattwmaster58), que publicó la 2.0 con una API más limpia e integró algunos de los pull requests pendientes (última versión 2.0.3, abril de 2026). Tiene licencia MIT y se usa muchísimo: cerca de 3 millones de descargas al mes en PyPI.
Funciona principalmente registrando init scripts en cada contexto, cada uno de los cuales parchea una señal: navigator.webdriver, navigator.languages, los plugins, el vendor de WebGL, chrome.runtime, etc. El mantenedor es franco sobre sus límites. El README dice que no esperes que sortee nada más allá de la detección de bots más simple, y lo describe como un punto de partida. Las razones son estructurales: una sobrescritura de JavaScript se puede detectar con Function.prototype.toString o revisando el descriptor de la propiedad, los init scripts de la página no llegan a los Web Workers y, aunque su wrapper también fija un par de flags de lanzamiento y los encabezados User-Agent y Sec-CH-UA, nada en el paquete toca los efectos secundarios de CDP del propio driver de Playwright ni el handshake TLS.
Clearcote vs playwright-stealth
| Característica | Clearcote | playwright-stealth |
|---|---|---|
| Enfoque | Parches en C++ a nivel del motor: valores nativos | Init scripts de JavaScript sobre un navegador estándar |
| Rastro detectable | Ninguno: nativo en la página, los iframes y los workers | Sobrescrituras visibles con toString, descriptores y relecturas desde workers |
| Identidad de la huella digital | Persona coherente a partir de un solo seed (canvas, WebGL, fuentes, navigator) | Unos pocos valores fijados a mano sobre los reales del host |
| Efectos secundarios del driver / CDP | Contenidos al lanzar (mundos aislados) y en el motor | No se abordan; driver de Playwright estándar |
| TLS / coherencia de red | El ClientHello sigue la versión de Chrome declarada | TLS no se aborda; solo fija los encabezados User-Agent y Sec-CH-UA |
| Framework | Playwright y Puppeteer (Python, Node, .NET) | Playwright (Python) |
| Configuración | Cambias el binario del navegador | Envuelves Playwright en una línea |
| Costo | Build abierto gratis; build más reciente gratis con GitHub; Pro $49/mes | Gratis y abierto (MIT) |
Comparación elaborada en noviembre de 2026. Licencia de playwright-stealth: Código abierto (MIT). Los detalles cambian, así que consulta su proyecto para ver lo más reciente.
Medido: 12 herramientas en los mismos 10 sitios
Ejecutamos el harness de código abierto browsers-benchmark 5 veces; la última terminó el 27 de octubre de 2026. Cada herramienta corrió con su propia IP residencial de EE. UU., en un orden distinto en cada ejecución. Un acierto significa que la propia comprobación del harness para ese sitio encontró la página en sí, no una página de bloqueo o de desafío. Clearcote medido en un escritorio Windows (build más reciente); las demás herramientas, en un servidor Linux.
El harness prueba tf-playwright-stealth, un fork de playwright-stealth; sus filas están marcadas.
| Herramienta | 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 |
Sitios: una página de resultados de búsqueda, un foro de comunidad, el sitio de una empresa de software, una tienda de lujo, la página de producto de un marketplace, un sitio de venta de boletos, una tienda de moda, un sitio de reservas de viaje, una aerolínea, una red social. Esto es una instantánea de una red y una semana: los resultados cambian con cada release, cada proxy y los propios sitios, y ninguna herramienta cargó todos los sitios todas las veces. Resultados sin procesar (JSON).
Por qué los equipos eligen Clearcote
Nativo, no sobrescrito
Cada evasión de playwright-stealth reemplaza una función real del navegador por una de JavaScript, y ese reemplazo se puede observar. Clearcote cambia el valor dentro de Chromium, así que la función que inspecciona una página es la nativa real.
La misma respuesta en cada realm
Los init scripts parchean la página. Si vuelves a leer el mismo valor desde un Web Worker o un iframe nuevo, obtienes el original sin parchear. Los valores a nivel del motor coinciden en todas partes.
Una identidad completa, no un puñado de campos
Un seed de --fingerprint produce una máquina consistente en canvas, WebGL, audio, fuentes, pantalla y hardware, en lugar de unas pocas sobrescrituras apiladas sobre el host real.
Conserva tu código de Playwright
Clearcote es un binario de Chromium. Apunta executable_path a él, o usa el launch() del SDK, y el resto de tu script de Playwright queda igual.
Cuándo playwright-stealth puede ser mejor opción
- Quieres probar algo en cinco minutos contra un objetivo poco exigente y no quieres gestionar un binario de navegador.
- Tus objetivos solo revisan las señales obvias, como
navigator.webdriver. - Ya usas Clearcote y quieres saber si todavía lo necesitas: no. Sus evasiones duplican valores que el motor ya fija, y agregar sobrescrituras de JavaScript encima vuelve a introducir el rastro que el motor elimina.
Preguntas frecuentes
¿playwright-stealth todavía funciona?
Todavía se instala y funciona, y la última versión del fork mantenido es la 2.0.3 (abril de 2026). Que alcance o no depende del objetivo. Su propio README advierte que solo resuelve la detección más simple, porque las sobrescrituras de JavaScript se pueden detectar y no toca el driver ni la capa TLS.
¿Qué diferencia hay entre playwright-stealth y Clearcote?
playwright-stealth inyecta JavaScript en un Chromium estándar para sobrescribir un conjunto de valores. Clearcote es un Chromium modificado en el que esos valores son nativos y consistentes entre frames y workers, con una huella digital TLS acorde por debajo. Los dos se controlan con Playwright normal.
¿Debería usar playwright-stealth junto con Clearcote?
No. El motor ya reporta valores coherentes, y apilar sobrescrituras de JavaScript encima reemplaza funciones nativas por otras detectables. Lanza Clearcote con Playwright a secas.
¿Existe un playwright-stealth para Node.js?
El equivalente en Node es playwright-extra con el plugin stealth de puppeteer-extra, que tiene el mismo diseño basado en sobrescrituras de JavaScript. Clearcote funciona igual desde Python, Node y .NET.
Más del doble de parches que cualquier fork que comparamos.
Parches compilados en Chromium, por enfoque. Las herramientas basadas en scripts no cambian el motor en absoluto.
Plugins de stealth
p. ej. puppeteer-extra-plugin-stealth
Drivers parcheados
p. ej. undetected-chromedriver, nodriver
Otros forks de Chromium
builds gratuitos y de pago
Clearcote Pro
r57, Chromium 156
Cantidad de parches publicada, octubre de 2026. El rango cubre los builds gratuitos y de pago de otros forks; en Clearcote es el build Pro.
365 comprobaciones, gratis, en tu propio navegador
El test de huella digital al que se somete cada build de Clearcote. Ejecútalo en lo que usas hoy y compara.
Ejecutar el testLos parches del build abierto son públicos
El build abierto gratuito es BSD-3, reproducible desde el código fuente y no necesita cuenta. El build Pro agrega parches privados encima.
Abrir en GitHub57 versiones del motor, 7 versiones mayores de Chromium
Cada parche se lleva a cada nueva versión de Chromium. El build más reciente recibe las nuevas versiones mayores el día que salen.
Ver las versionesLecturas relacionadas
Prueba la alternativa de código abierto basada en Chromium
Gratis y de código abierto, un reemplazo directo para Playwright y Puppeteer, coherente hasta el handshake TLS.
Gratis para un navegador: GitHub, una verificación de tarjeta o una cuenta de Google de empresa. Nunca se cobra.