# 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