CAPTURADOR DE MEDIOS DE VIDEO PERÚ
IMPLEMENTACIÓN: DETECTOR UNIVERSAL POR PROTOCOLO Y MIME
Fecha: 26/07/2026

ARCHIVOS MODIFICADOS
1. detector_streams.py
2. inspector.py
3. utilidades.py

QUÉ SE IMPLEMENTÓ
- Navegador real con Playwright y ejecución de JavaScript.
- Inspección automática del tráfico Network de la página y todos los iframes.
- Detección por Content-Type, firma del manifiesto, protocolo y tipo de recurso.
- Compatibilidad con HLS, DASH, CMAF/fMP4, MP4, WebM y MPEG-TS.
- Reconocimiento de application/vnd.apple.mpegurl, application/x-mpegURL,
  application/dash+xml, video/* y recursos multimedia observados por el navegador.
- Conservación de Referer, Origin, Cookie, Authorization, User-Agent, Accept,
  Accept-Language y Range cuando existen.
- Priorización de manifiestos HLS/DASH sobre segmentos .ts o .m4s.
- Eliminación de reglas de cabeceras dependientes de Rudo, MDStrm u otros proveedores.
- Entrega de candidatos ordenados por evidencia al Inspector y validación con FFmpeg.

FUNCIONES QUE SE MANTIENEN
- Programación por fecha y semanal.
- Grabación manual.
- Monitoreo en tiempo real.
- Restauración después de apagón.
- Excel de medios.
- Prueba de URL e Inspector.
- Multicaptura y recuperación automática.
- Salida MP4 con H.264 y AAC.

PRIMERA INSTALACIÓN
1. Descomprimir el ZIP completo en una carpeta nueva.
2. Ejecutar instalar_dependencias.bat una sola vez.
3. Esperar que termine la instalación de Playwright/Chromium.
4. Ejecutar ejecutar_app.bat.

PRUEBAS RECOMENDADAS
- Canal 21 Huancayo: https://canal21huancayo.com/en-vivo/
- Sol TV: https://soltvperu.com/en-vivo/
- América TV: https://tvgo.americatv.com.pe/
- Latina: https://www.latina.pe/vivo

IMPORTANTE
No copiar archivos sueltos sobre la versión anterior durante la primera prueba.
Probar esta entrega desde una carpeta nueva para conservar intacto el respaldo anterior.

VERSIÓN V3 - INTEGRACIÓN DIRECTA DEL MANIFIESTO
- Los manifiestos HLS/DASH confirmados por Playwright mediante tráfico Network y MIME se aplican directamente.
- Se evita que una prueba corta de FFmpeg descarte falsamente streams HLS fMP4/CMAF válidos.
- Se identifica por contenido si un HLS es manifiesto maestro (#EXT-X-STREAM-INF) o lista multimedia (#EXTINF/#EXT-X-MAP).
- Se prioriza el manifiesto maestro cuando el navegador observa varias listas.
- El Inspector clásico queda como respaldo solamente cuando el navegador no confirma un manifiesto.
- Los segmentos de video individuales ya no se imprimen como candidatos principales en el registro.

V4 - Compatibilidad de grabación HLS CMAF/fMP4
- Playwright conserva las cabeceras completas de cada petición mediante all_headers().
- FFmpeg permite segmentos HLS con extensiones modernas como .hls.fmp4.
- Inicio desde segmentos recientes para evitar referencias que ya salieron de la ventana en vivo.
- Reintento de segmentos y reconexión ante errores HTTP o de red.
- Conexiones HTTP persistentes y múltiples para listas HLS con audio/video separados.

V5 - PUENTE HLS LOCAL PARA FFmpeg
- Se agregó hls_relay.py.
- FFmpeg ya no solicita directamente los manifiestos y segmentos HLS detectados por navegador.
- El puente local 127.0.0.1 conserva User-Agent, Referer, Origin, Cookie, Authorization y demás cabeceras capturadas.
- Reescribe automáticamente las URL internas de playlists master/media, EXT-X-MEDIA, EXT-X-MAP y segmentos.
- Los segmentos CMAF/fMP4 de audio y video pasan por el mismo puente autenticado.
- El puente se inicia y se cierra automáticamente por cada grabador, sin alterar otros proyectos Python ni variables del sistema.
