Files
navegator/examples/README_youtube_comments.md
T
Developer 3253828fef
Tests / Lint (push) Has been cancelled
Tests / Unit Tests (push) Has been cancelled
Tests / E2E Tests (push) Has been cancelled
Tests / Integration Tests (push) Has been cancelled
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>
2026-03-24 23:33:07 +01:00

151 lines
4.8 KiB
Markdown

# YouTube Comments Scraper
Ejemplo de uso de **navegator** para extraer comentarios de videos de YouTube de manera sigilosa.
## Características
- ✅ Extracción de comentarios con autor, texto y likes
- ✅ Modo headless para producción
- ✅ Ventana pequeña para desarrollo/testing
- ✅ Manejo automático de banner de cookies
- ✅ Scroll automático para activar lazy loading
- ✅ Stealth flags para evitar detección
- ✅ Perfiles persistentes (cookies y sesiones se mantienen)
## Uso
### Modo básico (headless por defecto)
```bash
go run examples/youtube_comments.go
```
### Modo visible (para debugging)
```bash
go run examples/youtube_comments.go -visible
```
### Especificar video y número de comentarios
```bash
go run examples/youtube_comments.go -url "https://www.youtube.com/watch?v=VIDEO_ID" -n 20
```
### Todas las opciones
```bash
go run examples/youtube_comments.go -visible -url "URL_DEL_VIDEO" -n 15
```
## Parámetros
| Flag | Descripción | Default |
|------|-------------|---------|
| `-visible` | Ejecutar con interfaz gráfica (para debugging) | `false` (headless) |
| `-url` | URL del video de YouTube | Video de ejemplo |
| `-n` | Número máximo de comentarios a extraer | `10` |
## Compilar binario
Para crear un binario standalone:
```bash
go build -o youtube-comments examples/youtube_comments.go
```
Luego usar:
```bash
# Modo headless (default)
./youtube-comments -n 20
# Modo visible para debugging
./youtube-comments -visible -n 20
```
## Ejemplo de salida
```
🚀 Lanzando navegador...
✅ Navegador iniciado. Perfil: /home/user/.navegator/profiles/youtube-scraper
📺 Navegando a YouTube: https://www.youtube.com/watch?v=S1J8rx2Jw98
📊 Extrayendo hasta 5 comentarios
⏳ Esperando a que cargue la página...
🍪 Cookie banner clicked
📜 Haciendo scroll para cargar comentarios...
⏳ Esperando a que aparezcan los comentarios...
📝 Extrayendo comentarios...
================================================================================
📋 COMENTARIOS EXTRAÍDOS:
================================================================================
1. @herrpez (1K likes)
Insane move. Guy is clearly flying that route in August...
2. @roland_does_things (336 likes)
This is the moment you treat all your friends to a great trip to Sicily...
3. @Starcraft2Krauts (440 likes)
Getting money from Wizz air took me months and threatening a lawsuit...
================================================================================
📌 Información del Video:
================================================================================
Título: I Tried to Profit From Flight Delays Using Data
Vistas: 43,845 views
✅ Extracción completada exitosamente!
```
## Cómo funciona
1. **Lanzamiento del navegador**: Inicia Chrome/Chromium con flags stealth
2. **Navegación**: Carga el video de YouTube especificado
3. **Cookies**: Detecta y acepta automáticamente el banner de cookies
4. **Scroll**: Hace scroll progresivo para activar el lazy loading de comentarios
5. **Extracción**: Usa JavaScript para extraer los datos de cada comentario
6. **Formato**: Muestra los comentarios de manera legible en la terminal
## Selectores utilizados
El script utiliza los siguientes selectores CSS de YouTube:
- `ytd-comment-thread-renderer`: Contenedor de cada comentario
- `#author-text`: Nombre del autor
- `#content-text`: Texto del comentario
- `.published-time-text a`: Fecha de publicación
- `#vote-count-middle`: Contador de likes
## Notas
- **Perfiles persistentes**: El navegador guarda cookies y sesiones en `~/.navegator/profiles/youtube-scraper/`
- **Timeouts**: Si la página tarda mucho en cargar, aparecerá una advertencia pero continuará la ejecución
- **Stealth**: El navegador se configura con flags anti-detección para evitar ser bloqueado
- **Ventana pequeña**: Se usa ventana de 600x400 para menor consumo de recursos
- **Headless por defecto**: El navegador corre en segundo plano sin interfaz gráfica (usa `-visible` para debugging)
## Troubleshooting
### No se encuentran comentarios
- Verifica que el video tenga comentarios habilitados
- Aumenta el tiempo de espera modificando los `time.Sleep()`
- Ejecuta con `-visible` para ver qué está pasando en el navegador
### Timeout al navegar
- Es normal, el script continúa de todos modos
- YouTube carga muchos recursos en segundo plano
- La advertencia no afecta la extracción de comentarios
### Selectores no funcionan
- YouTube puede cambiar su estructura HTML
- Ejecuta con `-visible` e inspecciona la página
- Actualiza los selectores en el script según sea necesario
## Próximas mejoras
- [ ] Exportar comentarios a JSON
- [ ] Extraer respuestas a comentarios
- [ ] Ordenar por fecha, likes, etc.
- [ ] Extraer información adicional (avatares, badges, etc.)
- [ ] Scroll infinito para extraer todos los comentarios