Tu propio servicio de streaming local, sin internet, sin aplicaciones pesadas, directo al navegador de tu TV.
LAN-Caster es una herramienta CLI ultra-ligera para transmitir archivos de video desde tu ordenador hacia cualquier Smart TV, telefono o tablet en la misma red local, usando solo el navegador web.
Automatiza la creacion de un reproductor HTML5, convirtiendo subtitulos .srt a .vtt (formato web) de forma transparente.
Para reproducir contenido en Smart TVs con sistemas limitados (WebOS, Tizen, VIDAA) donde no hay acceso a VLC o Plex, y el unico punto de entrada es el navegador web integrado.
- Direct Stream - Sin transcodificacion, carga instantanea
- Servidor multihilo - Maneja video y subtitulos simultaneamente
- Conversion automatica de subtitulos SRT a VTT
- Modo GUI - Selector de archivos grafico (--gui)
- Subtitulos optimizados para TV (tamanio proporcional a pantalla)
- Atajos de teclado (Espacio, F, Flechas, M)
- Limpieza automatica de archivos temporales
- Zero config - Solo apunta al video y listo
| Requisito | Descripcion |
|---|---|
| Python 3.10+ | Usa sintaxis moderna (type hints) |
| FFmpeg | Solo si usas subtitulos .srt |
| tkinter | Solo para modo --gui (viene con Python en la mayoria de sistemas) |
| Red Local | Wi-Fi o Ethernet (no requiere Internet) |
# Debian/Ubuntu/Mint
sudo apt install ffmpeg python3-tk
# Fedora
sudo dnf install ffmpeg python3-tkinter
# macOS (Homebrew)
brew install ffmpeg python-tk
# Windows
# FFmpeg: choco install ffmpeg
# tkinter viene incluido con Pythoncurl -O https://raw.githubusercontent.com/FxxMorgan/LAN-Caster/main/lancaster.py
chmod +x lancaster.pygit clone https://github.com/FxxMorgan/LAN-Caster.git
cd LAN-Casterpython3 lancaster.py "MiPelicula.mp4"python3 lancaster.py --guiSe abrira un dialogo para seleccionar el video graficamente. Util cuando el nombre del archivo es muy largo.
python3 lancaster.py "MiPelicula.mp4" -p 9000
python3 lancaster.py --gui -p 9000python3 lancaster.py "MiPelicula.mp4" --no-subs[GUI] Abriendo selector de archivos...
[INFO] Video detectado: MiPelicula.mp4
[INFO] Subtitulo detectado: MiPelicula.srt
[PROC] Convirtiendo SRT a VTT...
[OK] Conversion completada
[HTML] Generando reproductor web...
[OK] Reproductor generado
==================================================
LAN-Caster esta listo!
==================================================
Red Local: http://192.168.1.15:8000
Presiona Ctrl+C para detener
==================================================
| Opcion | Descripcion |
|---|---|
video |
Ruta al archivo de video (opcional con --gui) |
-p, --port |
Puerto del servidor (default: 8000) |
--gui |
Abrir selector de archivos grafico |
--no-subs |
Ignorar subtitulos aunque existan |
| Tecla | Accion |
|---|---|
Espacio |
Play / Pause |
F |
Pantalla completa |
<- |
Retroceder 10s |
-> |
Adelantar 10s |
M |
Silenciar/Activar audio |
| Formato | Chrome | Firefox | Safari | Smart TV |
|---|---|---|---|---|
.mp4 (H.264) |
OK | OK | OK | OK |
.mp4 (H.265) |
Parcial | No | OK | Parcial |
.webm (VP8/VP9) |
OK | OK | No | Parcial |
.mkv |
Parcial | Parcial | No | Parcial |
Recomendacion: Usa .mp4 con codec H.264 para maxima compatibilidad.
| Formato | Soporte |
|---|---|
.vtt (WebVTT) |
Nativo HTML5 |
.srt (SubRip) |
Convertido automaticamente |
LAN-Caster/
├── lancaster.py # Script principal
├── readme.md # Documentacion
└── LICENSE # Licencia MIT
- Verifica que el formato sea
.mp4H.264 - H.265/HEVC no funciona en la mayoria de navegadores
- Intenta con un archivo de prueba mas pequenio
- El archivo
.srtdebe tener el mismo nombre que el video - Verifica que FFmpeg este instalado:
ffmpeg -version - El encoding del
.srtdebe ser UTF-8
python3 lancaster.py video.mp4 -p 9000# Linux
sudo apt install python3-tk# Linux
ip addr | grep inet
# macOS
ifconfig | grep "inet "
# Windows
ipconfig- Soporte para playlist (multiples archivos)
- Bandera
--hard-subpara quemar subtitulos - Codigo QR en terminal para acceso rapido
- Deteccion automatica de dispositivos en red (mDNS)
- Fork el repositorio
- Crea una rama (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -am 'Agrega nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
Este proyecto esta bajo la Licencia MIT. Sientete libre de usarlo, modificarlo y compartirlo.
"A veces la mejor solucion no es la mas compleja, sino la que funciona con lo que tienes a mano."