river
River es una plataforma de medios autoalojada que escanea, transcodifica y enriquece contenido multimedia (películas, series, música, audiobooks) para su reproducción directa en navegadores o aplicaciones de TV.
Ficha actualizada 22 sept 2026, 18:36 · upstream 22 sept 2026, 18:32 · release v0.4.2
Qué es river
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
River es un servicio de medios autoalojado diseñado para organizar, procesar y reproducir contenido multimedia. Su arquitectura se basa en microservicios independientes comunicados mediante RabbitMQ, con una base de datos PostgreSQL centralizada y un API REST que actúa como punto único de acceso. La plataforma ofrece transcodificación automática a formatos web-friendly (H.264/AAC/MP4 para video, AAC/M4A para audio), escaneo incremental basado en hash de tamaño y modificado por tiempo, y enriquecimiento de metadatos desde TMDB, Open Library y MusicBrainz.
La plataforma incluye clientes móviles para navegador y TV (Android/Fire TV) con navegación optimizada para pantallas táctiles, así como una interfaz administrativa completa. Además, integra con Radarr y Sonarr mediante un calendario unificado que agrupa fechas de lanzamiento de películas y series.
- Organizar y reproducir películas, series, música y audiobooks en un solo lugar
- Transcodificar contenido desde cualquier formato (Blu-ray, DVD, archivos locales) a formatos web-compatible
- Enriquecer metadatos de títulos con información de TMDB, Open Library o MusicBrainz
- Reproducir películas y series directamente desde el navegador sin necesidad de un reproductor dedicado
- Organizar audiobooks con capítulos y transcodificarlos a formatos compatibles con lectores de libros electrónicos
- Crear listas de reproducción personalizadas (coleccionables) y gestionar la experiencia de usuario
- Reproducir contenido en tiempo real con soporte para salas de cine virtuales (watch party)
- Integración con sistemas de gestión de medios como Radarr o Sonarr mediante un calendario unificado
- Transcodificación única a formatos web-friendly (H.264/AAC/MP4) que permite reproducción directa sin transcodificación por petición
- Escaneo incremental basado en hash de tamaño y modificado por tiempo, lo que reduce significativamente el tiempo de escaneo para archivos no modificados
- Metadatos enriquecidos desde múltiples fuentes (TMDB, Open Library, MusicBrainz) con posters, backdrops, descripciones y créditos
- Soporte nativo de streaming HTTP Range para permitir saltos instantáneos dentro del archivo multimedia
- Navegación táctil optimizada en el cliente TV con soporte para D-pad y navegación espacial
- Sistema de autenticación JWT con tokens de renovación automática y rol de administrador por primera inscripción
- La transcodificación se realiza una sola vez durante la ingestión, lo que puede generar archivos grandes en el disco local
- El escaneo incremental depende del hash de tamaño y modificado por tiempo; si estos valores cambian (ej. reescritura), se debe reiniciar el escaneo
- La integración con Radarr y Sonarr requiere configuración manual mediante URL o API key, sin autenticación automática
- El cliente TV Android/Fire TV es una WebView que no puede ejecutar aplicaciones nativas de terceros
- No hay soporte para reproducción en dispositivos móviles (iOS/Android) ni para consolas de videojuegos
- La transcodificación por petición (si se implementa) podría generar múltiples copias del contenido, afectando el almacenamiento
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Se recomienda desplegar River con Docker Compose para un despliegue rápido y sin configuración manual. La imagen de la aplicación web se construye en contenedor y se ejecuta junto con los microservicios Go a través de RabbitMQ. Para entornos GPU, se puede añadir una capa NVIDIA mediante docker-compose.gpu.yml que activa el acelerador NVENC. En producción, es importante mantener un monitoreo activo del estado de escaneo, ya que la sincronización entre disco y base de datos depende de la integridad de los metadatos en tiempo real. Se recomienda configurar alertas para el estado de escaneo y el consumo de recursos (CPU/RAM) de cada microservicio.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.