Initial commit: navegator - Chrome CDP automation for LLMs
Add complete navegator system for stealthy browser automation: - CDP client with WebSocket communication - Browser API with navigation, storage, network, runtime - Stealth flags and anti-detection scripts - Persistent profile support - Examples and comprehensive documentation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# ⚠️ NOTA IMPORTANTE - YouTube y Modo Headless
|
||||
|
||||
## Problema Detectado
|
||||
|
||||
YouTube detecta el modo headless y **no carga los comentarios** cuando el navegador está en ese modo, incluso con todas las flags stealth activadas.
|
||||
|
||||
## Resultados de Testing
|
||||
|
||||
### ✅ Modo Visible (funciona)
|
||||
```bash
|
||||
go run examples/youtube_comments.go -visible -n 5
|
||||
```
|
||||
**Resultado:** Extrae comentarios exitosamente
|
||||
|
||||
### ❌ Modo Headless (no funciona)
|
||||
```bash
|
||||
go run examples/youtube_comments.go -n 5
|
||||
```
|
||||
**Resultado:** No encuentra comentarios (YouTube los bloquea)
|
||||
|
||||
## Soluciones
|
||||
|
||||
### Opción 1: Usar Modo Visible (Recomendado para YouTube)
|
||||
```go
|
||||
config.StealthFlags.Headless = false
|
||||
config.StealthFlags.WindowSize = [2]int{600, 400} // Ventana pequeña
|
||||
```
|
||||
|
||||
### Opción 2: Usar Xvfb (Linux) para simular display
|
||||
```bash
|
||||
# Instalar Xvfb
|
||||
sudo apt-get install xvfb
|
||||
|
||||
# Ejecutar con display virtual
|
||||
xvfb-run -a go run examples/youtube_comments.go
|
||||
```
|
||||
|
||||
### Opción 3: Ajustar el Script para Usar Selector de Comments Button
|
||||
En lugar de scrollear directamente a los comentarios, podemos hacer click en el botón de comentarios primero:
|
||||
|
||||
```javascript
|
||||
// Click en el botón/section de comentarios
|
||||
document.querySelector('#comments')?.scrollIntoView();
|
||||
```
|
||||
|
||||
### Opción 4: Usar API de YouTube (Alternativa)
|
||||
Si necesitas headless absoluto, considera usar la YouTube Data API v3 en lugar de scraping.
|
||||
|
||||
## Por Qué Sucede
|
||||
|
||||
YouTube usa múltiples técnicas de detección:
|
||||
1. Verifica `navigator.webdriver` (ya lo manejamos con stealth)
|
||||
2. Detecta características ausentes en headless Chrome
|
||||
3. Analiza patrones de comportamiento del usuario
|
||||
4. Puede usar WebGL fingerprinting
|
||||
5. Detecta ausencia de interacción humana
|
||||
|
||||
## Recomendación Final
|
||||
|
||||
Para este caso de uso específico (extracción de comentarios de YouTube):
|
||||
- **Desarrollo/Testing:** Usar `-visible` con ventana pequeña
|
||||
- **Producción:** Usar Xvfb o un servidor con display virtual
|
||||
- **Alternativa:** Considerar YouTube Data API para uso a escala
|
||||
|
||||
## Estado Actual del Código
|
||||
|
||||
El código está configurado para:
|
||||
- ✅ Headless por defecto
|
||||
- ✅ Ventana pequeña (600x400)
|
||||
- ✅ Cierre explícito del navegador
|
||||
- ✅ Flags stealth optimizadas
|
||||
- ⚠️ **Pero YouTube bloquea comentarios en headless**
|
||||
|
||||
## Próximos Pasos Sugeridos
|
||||
|
||||
1. Agregar flag `--force-display` que use Xvfb automáticamente
|
||||
2. Implementar detector de "comentarios bloqueados" y reintento en modo visible
|
||||
3. Agregar opción de usar YouTube Data API como fallback
|
||||
4. Investigar si headless=new de Chrome evita la detección
|
||||
Reference in New Issue
Block a user