Si alguna vez cargaste un video en una app con WebView y no reproduce, pero el mismo enlace funciona en VLC en PC o con ExoPlayer en Android, no es un error del servidor… casi siempre es por CORS.
Hoy te explico exactamente qué está pasando.
🌐 ¿Qué es CORS?
CORS (Cross-Origin Resource Sharing) es una política de seguridad del navegador.
Su función es bloquear solicitudes entre dominios diferentes si el servidor no lo permite explícitamente.
Ejemplo:
Tu WebView carga: https://misitio.com
El video está en: https://otrositio.com/video.m3u8
El navegador pregunta al servidor:
“¿Puedo usar este recurso desde otro dominio?”
Si el servidor NO responde con algo como:
Access-Control-Allow-Origin: *
Entonces el navegador bloquea la reproducción.
📱 ¿Qué pasa en WebView?
WebView funciona como un navegador basado en Chromium.
Eso significa que:
✔ Respeta CORS
✔ Bloquea recursos entre dominios si no hay permisos
✔ Puede fallar al reproducir videos externos
Por eso muchas veces el <video> o los .m3u8 no cargan.
🎬 ¿Por qué en ExoPlayer sí funciona?
Porque ExoPlayer no es un navegador.
No aplica reglas CORS.
Simplemente hace la petición HTTP directa al archivo y lo reproduce si el enlace es válido.
Lo mismo pasa con VLC en PC.
💻 ¿Y VLC?
VLC es un reproductor multimedia nativo.
No aplica políticas de navegador.
Si el enlace responde correctamente, VLC lo reproduce sin preguntar por CORS.
📌 Entonces, ¿qué significa esto?
| Plataforma | Aplica CORS | Puede bloquear |
|---|---|---|
| Navegador | Sí | Sí |
| WebView | Sí | Sí |
| ExoPlayer | No | No |
| VLC | No | No |
🔧 ¿Cómo solucionar el problema?
Tienes varias opciones:
1️⃣ Configurar el servidor para permitir CORS
2️⃣ Usar un proxy que agregue los headers
3️⃣ No usar WebView para reproducir video
4️⃣ Usar ExoPlayer directamente en Android
🎯 Conclusión
Si un video no funciona en WebView pero sí en VLC o ExoPlayer, no es magia.
Es simplemente que:
CORS es una restricción del navegador, no del protocolo HTTP.
Si trabajas con apps, IPTV, streaming o WebView, entender esto te evitará muchos dolores de cabeza.