3253828fef
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>
80 lines
2.5 KiB
Markdown
80 lines
2.5 KiB
Markdown
# ⚠️ 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
|