// Producto · Open TV

La televisión abierta, sin cuentas ni nube.

Un solo binario sirve la API y el cliente web. Escribes open-tv y ya estás viendo. No trae canales: tú agregas tus listas M3U. Nada sale de tu equipo y el reproductor apunta directo al emisor.

  • Código abierto · MIT
  • Sin cuentas ni telemetría
  • Un binario, cero dependencias
  • macOS · Linux · Windows
// RECEPTOR KORVEN · SERIE KV-88SEÑAL ESTABLE
ELIGE UN CANAL
KORVENKV-88
DEL NÚCLEO A LA OBRA

● EN VIVO Zapeando el catálogo real: 54 canales de 32 emisoras.Señal de verdad, en directo desde cada emisora. No pasa por este sitio.

// Por qué existe

No quería pagar por ver unos partidos del mundial.

Buscando por dónde verlos me topé con algo que no esperaba: miles de canales transmitiendo en abierto, gratis y a la vista de todos. Entre ellos, los que pasaban esos partidos. Televisión abierta de siempre, nada más que ahora viaja por internet.

El problema no era encontrarlos. Era verlos sin instalar un reproductor lleno de anuncios ni entregarle mis datos a nadie a cambio. Así que me hice uno: un binario, tus listas y ya.

Lo abrí porque no le veo el caso a guardármelo.

// La diferencia

No es un servicio. Es un programa tuyo.

Las apps de IPTV te dan un catálogo y se quedan con tus datos. Esta te da el reproductor y se hace a un lado. Toca cada punto para ver cómo:

d1Arranca vacía, y eso es la funcionalidad.bring your own

Una instalación limpia no trae un solo canal. La primera pantalla te pide una fuente: tu propia URL M3U, un archivo que subas, o alguna de las seis listas públicas de iptv-org con un clic.

✓ Nadie decide por ti qué se puede ver · ✓ no hay catálogo que caducar ni servidor que dependa de mí · ✓ tus fuentes viven en tu SQLite, no en una cuenta

d2La señal dice la verdad, incluso cuando es mala.señal honesta

El gateway comprueba cada stream por su cuenta: si está vivo, cuánto tarda, y, lo que casi nadie mide, si tu navegador puede reproducirlo de verdad. Ese tercer veredicto tiene su propio color.

✓ «sin comprobar» es un estado distinto de «caído», y se dibuja distinto · ✓ un canal que no entra lo dice y explica por qué, en vez de girar un spinner para siempre

d3El vídeo no pasa por mí. Por nadie.sin relay

El reproductor apunta directo al emisor de cada canal. El gateway local solo hace de proxy cuando el navegador no puede con el stream él solo, y ese proxy nunca escucha fuera de localhost.

✕ Lo que NO existe: servidor de Korven en medio, telemetría, cuentas, historial. Nada tuyo sale de tu equipo, y no hay nada que yo pueda ver aunque quisiera.

La demo de este sitio no es una maqueta: son 54 canales reales de 32 emisoras que publican su señal en abierto, reproduciéndose directo desde el servidor de cada una. Sin instalar nada y sin dar un correo.

Abrir la demo →

// Instalación

Un comando, y ya está corriendo.

Sin Docker, sin runtime que instalar, sin cuenta que crear. Es un binario: dentro va el gateway y el cliente web enteros.

01

Un comando

Homebrew en macOS, el instalador por curl en macOS y Linux (verifica el checksum antes de instalar), o go install si ya tienes Go. En Windows, o si prefieres, bajas el archivo de Releases y lo comparas con checksums.txt.

$ brew install --cask gdberysan/tap/open-tv

02

Escribes open-tv

Crea su directorio de datos, escucha en el primer puerto libre y te abre el navegador. Como no trae canales, la primera pantalla te pide una fuente. En segundos estás viendo.

$ open-tv

macOS arm64 · amd64Linux amd64 · arm64Windows amd64Homebrew y el instalador por curl no pasan por la cuarentena de Gatekeeper; el binario suelto sí, y la guía dice cómo quitarla.

// Código abierto

El código es libre. La identidad, no.

Todo el programa va con licencia MIT: úsalo, léelo, cámbialo, véndelo si quieres. Lo único reservado es la marca. El nombre «Korven», el wordmark y el emblema tienen su propia licencia, así que si publicas un fork, ponle tu nombre.

cmd/open-tv el entrypoint

internal/domain · ports · adapters arquitectura limpia, SQLite puro Go

internal/api chi v5, guarda de mismo origen, CSP estricta

internal/proxy HLS solo en loopback, con guarda SSRF

web/ Svelte 5, embebido con go:embed

.github/workflows tests con -race, vet, gofmt, svelte-check y escaneo de secretos en cada push

MIT el códigomarca Korven el nombre y el emblema

Ver el código en GitHub →

Issues abiertas para errores, un canal que no se ve, o una idea.

// Privacidad

No hay nada que yo pueda ver.

No es una promesa de política de privacidad: es que no existe el canal. Open TV no tiene cuentas, no tiene servidor propio y no manda una sola petición hacia Korven. Tus fuentes viven en tu SQLite local, tus favoritos en el localStorage de tu navegador, y las estadísticas de reproducción solo en memoria, así que al reiniciar se pierden, porque nunca se escribieron.

// Lo que no hace

Deliberadamente, solo un reproductor.

Canales premium

No los trae ni sabe conseguirlos. Reproduce enlaces que tú das de alta.

DRM

Ni lo incluye ni lo rompe. Un stream protegido sigue protegido.

Geo-bypass

Sin VPN y sin trucos: si tu región bloquea un canal, aquí sigue bloqueado.

Credenciales de terceros

No las pide, no las guarda, no las gestiona.

Alojar ni retransmitir

No guarda vídeo ni lo reemite. La responsabilidad de tus fuentes es tuya.

// Preguntas

¿Trae canales de fábrica?

No. Una instalación limpia arranca vacía: agregas tu propia lista M3U, subes un archivo, o eliges con un clic alguna de las seis fuentes públicas de iptv-org que trae sugeridas. Es una decisión de diseño, no una carencia: nadie decide por ti qué se puede ver.

¿Es legal?

Open TV no aloja ni distribuye nada: es un reproductor para listas que tú eliges añadir. La legalidad de esas listas depende de ti y de tu jurisdicción. La demo de este sitio se limita, a propósito, a emisoras que publican su señal en abierto y gratis en su propia página.

¿Recoge algún dato mío?

Ninguno. Sin cuentas, sin registro, sin telemetría. Los favoritos viven en el localStorage de tu navegador y las estadísticas de reproducción solo en la memoria del proceso: se pierden al reiniciar, no se escriben a disco ni se mandan a ningún lado.

¿Por qué algunos canales no se ven en el navegador?

Algunos streams usan códecs o cabeceras que el navegador rechaza aunque el canal esté vivo. El binario instalado lo detecta y reintenta por un proxy local (solo loopback); si aun así falla, lo dice con claridad en vez de fingir que funciona. La demo de este sitio no tiene esa segunda vía: un sitio web no puede proxear vídeo ajeno sin retransmitirlo, así que solo lleva canales que el navegador reproduce por su cuenta.

¿En qué se diferencia la demo de la app?

La demo trae un catálogo congelado y curado de 54 canales de 32 emisoras que publican en abierto, y no deja añadir fuentes ni guarda nada. La app instalada arranca vacía y es tuya: las fuentes que quieras, favoritos, guía EPG por fuente y el proxy local para los canales difíciles.

¿Dónde está el código?

Completo en GitHub, con licencia MIT: gateway en Go, cliente en Svelte, tests y CI. Lo que no va bajo esa licencia es la identidad: el nombre «Korven», el wordmark y el emblema tienen la suya, así que un fork usa su propio nombre.

¿Y la app nativa de macOS?

Existe (Flutter, libmpv, AirPlay) y sigue compilando, pero está congelada: no forma parte de la versión 1 y no recibe desarrollo activo. El camino vivo es el binario con su cliente web.

¿Dudas? Escríbeme por WhatsApp → · ¿Quieres leer cómo está hecha la demo? Cómo está hecha → · ¿Y el otro producto? CVForge →

Pruébalo aquí. Instálalo si te sirve.

La demo no pide correo y reproduce 54 canales reales. El programa es gratis y el código va a estar entero en GitHub. No hay forma de que esto te salga mal.

catálogo de la demo · · 54 canales de 32 emisoras