Para equipos de ingeniería

Bajo el capó

Reproductores basados en Docker, SaaS API-first, MCP para integración con IA — todo lo que tu equipo de ingeniería necesita para la evaluación.

Plataforma SaaS

media-player.app es un servicio en la nube totalmente gestionado. Sin servidor que administrar, sin instalación, sin mantenimiento. Tú te centras en tu contenido — nosotros nos encargamos de la infraestructura.

Alojado y gestionado

Sin necesidad de servidor local — SaaS desde la nube
Actualizaciones y mantenimiento automáticos de la plataforma
Multi-tenant: tus datos están estrictamente aislados
Alojamiento en la UE, conforme al RGPD
99,9 % de disponibilidad de API y panel
Sin base de datos ni servidor web que administrar

Docker como entorno de ejecución

El software del reproductor se ejecuta como contenedores Docker
Funciona en cualquier Linux con Docker (arm64 + amd64)
Raspberry Pi, Intel NUC, Mini-PC, VM en la nube, Thin Client
No se necesita un sistema operativo especial — basta con una instalación estándar de Docker
Imágenes de contenedor distribuidas a través de un registro privado
Arquitectura de 3 contenedores: Agent, Playback, Heartbeat

Arquitectura

Cada pantalla funciona con tres contenedores Docker aislados. Se ejecuta en cualquier sistema Linux con Docker — desde Raspberry Pi hasta servidores x86. Responsabilidades claras, escalables de forma independiente y actualizables individualmente.

Agent

Plano de control

Registro de dispositivos, gestión de tokens, descarga de contenido y programación de listas de reproducción. Proporciona una API local en el puerto 7071 para controlar el contenedor de reproducción.

GoREST APISHA256Plan Sync

Playback

Plano de reproducción

API local unificada en el puerto 7070. Utiliza mpv para vídeo con aceleración por hardware (DRM/KMS) y Chromium en modo quiosco para contenido web. Gestiona las transiciones entre elementos.

mpvChromiumDRM/KMSVAAPI

Heartbeat

Monitorización

Envía informes de estado periódicos al backend: temperatura de CPU, carga, memoria, disco. Implementa lógica watchdog para reinicios automáticos de contenedores.

Health ReportsWatchdogAuto-Recovery

Arquitectura de almacenamiento

Todas las operaciones de escritura intensiva en volúmenes Docker (protege la tarjeta SD)
/var/lib/signage/config/ — Configuración del dispositivo y tokens
/var/lib/signage/content/ — Activos multimedia, indexados por SHA256
/var/lib/signage/state/ — JSON de estado y salud
/var/lib/signage/cache/ — Descargas temporales
/var/lib/signage/db/ — Cola SQLite opcional

Mecanismo de actualización

Actualización de imágenes de contenedor vía Docker Registry
Verificación de estado tras la actualización, reversión automática en caso de fallo
Mecanismo de rescate basado en lockfile
Sin necesidad de reinicio — reemplazo progresivo de contenedores
Cola offline para actualizaciones pendientes durante cortes de red

Hardware compatible

El software del reproductor está basado en Docker y se ejecuta en cualquier sistema Linux con Docker. Optimizado para ARM64 (Raspberry Pi) y AMD64 (servidores x86, mini PCs). La compatibilidad con pantallas comerciales con SoC está planificada.

Raspberry Pi 5

Recomendado
BCM2712, Quad-Core Cortex-A76 @ 2,4 GHz
4 GB o 8 GB LPDDR4X-4267
GPU VideoCore VII — decodificación H.265 4K60 por hardware
2x Micro-HDMI 2.1 (hasta 4Kp60)
MicroSD (A2) o NVMe vía HAT
Fuente de alimentación 5V/5A USB-C
Recomendado: disipador pasivo o carcasa con ventilador

Raspberry Pi 4

Compatible
BCM2711, Quad-Core Cortex-A72 @ 1,8 GHz
2 GB, 4 GB o 8 GB LPDDR4-3200
GPU VideoCore VI — decodificación H.265 4K30 por hardware
2x Micro-HDMI 2.0 (4Kp30 o 1080p60)
MicroSD (se recomienda A2)
Fuente de alimentación 5V/3A USB-C
Disipador pasivo suficiente

Linux x86 / Mini-PC

Compatible
Cualquier Linux x86_64 con Docker (Ubuntu, Debian, Alpine, ...)
Intel NUC, Lenovo ThinkCentre, Dell OptiPlex Micro, etc.
Aceleración GPU vía VAAPI (Intel/AMD)
Salida HDMI, DisplayPort o VGA
Mín. 2 GB RAM, 8 GB almacenamiento
Ethernet o WiFi
Ideal para ubicaciones con hardware x86 existente

Pantallas comerciales con SoC

Planificado
Philips/PPDS (Android SoC), Samsung (Tizen/SSSP), LG (webOS), Sony BRAVIA
SoC integrado en la pantalla — sin hardware externo necesario
Reproductor nativo a pantalla completa en modo quiosco / lock-task
Gestión centralizada desde el mismo panel
Ideal para despliegues a gran escala con pantallas comerciales
Informes de prueba de reproducción como en todas las plataformas
Entorno de ejecución separado por ecosistema de fabricante

Motor de reproducción

Reproducción híbrida: mpv para vídeo e imágenes con aceleración por hardware vía DRM/KMS/VAAPI, Chromium para contenido web en modo quiosco. El contenedor agent controla la reproducción a través de una API REST local.

mpv — Vídeo e imágenes

Decodificación con aceleración por hardware vía V4L2 M2M (Raspberry Pi) o VAAPI (x86). Salida de framebuffer vía DRM/KMS para mínima latencia, sin X11 ni Wayland.

Salida directa DRM/KMS (sin necesidad de servidor de pantalla)
Decodificación por hardware V4L2 M2M en Pi 4/5
Soporta rotación: 0°, 90°, 180°, 270°
Transiciones: Fundido, Deslizar-Izquierda, Deslizar-Derecha, Corte
Duración de visualización configurable por elemento
Modo bucle para vídeos individuales y listas de reproducción

Chromium — Contenido web

Chromium headless en modo quiosco para páginas HTML, dashboards y contenido interactivo. Controlado mediante Chrome DevTools Protocol (CDP).

Modo quiosco: sin bordes, sin interfaz del navegador
Control CDP para navegación y capturas de pantalla
Compatibilidad completa con JavaScript y CSS
Archivos HTML locales y URLs externas
Fallback automático en caso de fallo de conexión CDP
Backoff exponencial en problemas de conexión
FormatoCódec / DecodificadorAceleración HW
H.264 / AVCh264_v4l2m2m✓ Hardware
H.265 / HEVChevc_v4l2m2m✓ Hardware
VP9vp9_v4l2m2m✓ Hardware
AV1av1 (SW)— CPU
JPEG / PNGGPU decode✓ Hardware
HTML / CSS / JSChromium— CPU

Pipeline de contenido

De la subida a la reproducción: cada archivo se verifica, versiona y sincroniza de forma atómica a los reproductores. El reproductor siempre ejecuta un estado consistente — nunca una descarga parcial.

Subida y versionado

Subida con arrastrar y soltar desde el panel SaaS
Detección automática de tipo MIME
Versionado: cada subida crea una nueva versión
Las versiones anteriores se conservan (reversión posible)
Hash SHA256 calculado durante la subida

Verificación y almacenamiento

Almacenamiento direccionado por contenido: archivos indexados por SHA256
Deduplicación: archivos idénticos se almacenan solo una vez
Verificación de integridad antes de la activación en el reproductor
Las descargas corruptas se reintentan automáticamente

Sincronización y activación de planes

Plan = instantánea versionada: listas + medios + horarios
Activación atómica: todo o nada, sin estado intermedio
Descarga diferencial: solo los archivos modificados
Capacidad offline: el último plan válido permanece activo
Versionado basado en marcas de tiempo ISO

Seguridad

Aislamiento multi-tenant, comunicación cifrada y autenticación basada en tokens. Ningún dispositivo tiene acceso a los datos de otro inquilino.

Autenticación

Autenticación API basada en tokens (Bearer Tokens)
Ámbitos de token separados para panel, reproductor y automatización
Rotación de tokens para tokens de dispositivo
Limitación de frecuencia en todos los endpoints de la API

Aislamiento de inquilinos

Separación estricta a nivel de base de datos (tenant_id en cada tabla)
Aplicación de ámbito basada en middleware
Sin acceso cruzado entre inquilinos posible a nivel de API
Biblioteca multimedia y configuración separadas por inquilino

Seguridad del dispositivo

Código de emparejamiento de 8 dígitos con TTL (expira después de 15 min)
Token de dispositivo emitido tras emparejamiento exitoso
Vinculación de Device-ID: token ligado a un dispositivo específico
Bloqueo automático tras intentos fallidos repetidos

Seguridad del transporte

HTTPS/TLS para toda la comunicación API
Suma de verificación SHA256 para cada descarga de contenido
Sin conexiones no cifradas en producción
Configuración CORS restringida a orígenes permitidos

REST API

Toda la plataforma es API-first. Todo lo que el panel puede hacer, puedes automatizarlo a través de la REST API. Documentación OpenAPI incluida.

Endpoints de la API (extracto)
# Obtener reproductores
GET /api/v1/players
GET /api/v1/players/{id}
GET /api/v1/players/{id}/health

# Crear contenido
POST /api/v1/media-items
POST /api/v1/playlists
POST /api/v1/channels

# Asignaciones
PUT /api/v1/playlists/{id}/items
PUT /api/v1/channels/{id}/playlists

# Autenticación
Authorization: Bearer {token}
X-Tenant-ID: {tenant_id}
Content-Type: application/json

API JSON RESTful

Estructura de recursos consistente, verbos HTTP, códigos de estado estándar. Petición/respuesta en JSON.

Documentación OpenAPI 3.1

Documentación interactiva de la API generada automáticamente. Prueba los endpoints directamente en el navegador.

Paginación por cursor

Paginación eficiente para grandes conjuntos de datos. Filtrado, ordenación y búsqueda en todos los endpoints de listado.

MCP — Integración con IA

media-player.app implementa el Model Context Protocol (MCP) como superficie de integración de primera clase. Más allá de la REST API, agentes de IA, flujos de trabajo n8n y pipelines de LangChain pueden controlar la plataforma directamente.

¿Qué es MCP?

El Model Context Protocol es un estándar abierto para la comunicación entre agentes de IA y sistemas externos. En lugar de una API propietaria, cualquier cliente compatible con IA (Claude, GPT, LLMs personalizados) puede controlar la plataforma mediante herramientas, recursos y prompts.

Herramientas MCP

Solo lectura: estado de reproductores, vista de flota, planes activos, heartbeats, registros de errores
Diagnóstico: solicitar capturas de pantalla, crear paquetes de logs, informes de reproducción
Operacional: asignar canales, publicar planes, cambiar configuraciones (según ámbito)
Informes: consultas agregadas de prueba de reproducción

Casos de uso

Bot de soporte con IA: diagnóstico y resolución de problemas por chat
n8n / Make.com: flujos de trabajo automatizados (p. ej., nuevo contenido → actualizar lista)
LangChain / CrewAI: agentes de IA que gestionan tu flota de señalización
Dashboards personalizados: MCP como interfaz universal de datos

Seguridad

Tokens de automatización con ámbito — permisos granulares por integración
Modo de aprobación para operaciones críticas (reinicio, actualización)
Registro de auditoría inalterable para cada llamada a herramientas MCP
Validación estricta de esquema JSON, sin ejecución arbitraria
Límites de frecuencia por token e inquilino

Monitorización y telemetría

Cada pantalla envía datos de estado al backend a intervalos configurables. El contenedor heartbeat recopila métricas del sistema y eventos de reproducción.

MétricaFuente
CPU Temperature/sys/class/thermal
CPU Load/proc/loadavg
Memory Usage/proc/meminfo
Disk Usagestatvfs()
Network LatencyAPI ping
Playout EventsPlayback Engine
Container StatusDocker API
Display StateHDMI / CEC

Requisitos de red

Los reproductores necesitan una conexión a internet saliente. No es necesario abrir puertos de entrada — el reproductor se conecta al backend, no al revés.

Conexiones salientes

HTTPS (443) → api.media-player.app (API, heartbeat)
HTTPS (443) → registry.media-player.app (imágenes de contenedor)
HTTPS (443) → cdn.media-player.app (descargas de contenido)
DNS (53) → Cualquier resolutor DNS
NTP (123) → Sincronización horaria (recomendado)

Ancho de banda y modo offline

Sincronización inicial: depende del tamaño del contenido (una sola vez)
En curso: < 1 MB/día para heartbeats y llamadas API
El contenido se almacena en caché localmente, se reproduce sin conexión
Sincronización diferencial: solo archivos modificados
Recomendación: 10 Mbps para una descarga inicial fluida

De un vistazo

Plataforma SaaS

Cloud-hostedMulti-TenantREST APIOpenAPI 3.1MCP

Entorno del reproductor

DockerGompvChromiumAlpine Linux

Plataformas

Raspberry Pi 4/5Linux x86_64ARM64AMD64

Integración

REST APIMCPWebhooksn8nLangChain

Monitorización

Heartbeat AgentHealth APIPlayout EventsWatchdog

Seguridad

HTTPS/TLSToken AuthTenant IsolationAudit LogGDPR

¿Convencido?

Prueba media-player.app gratis o consulta la documentación de la API.

Solo usamos tu correo para avisarte del lanzamiento. Sin spam.

Documentación de la API