Estas guías asignan los conceptos de un sector a los objetos que la plataforma tiene hoy (bouquets, líneas, paquetes, cuentas de socio, nodos, la API). Son correspondencias conceptuales, no funciones específicas de un sector, y una cuenta de socio es una cuenta delegada, no un inquilino aislado.
Correspondencia conceptual
Nada en el panel se llama curso o estudiante. La tabla indica qué objeto desempeña qué papel; los capítulos siguientes los configuran en ese orden.
| En tu sector | En la plataforma | Dónde en el panel |
|---|---|---|
| Centro de formación o socio | Cuenta de revendedor (reseller): un panel delegado con créditos, permisos y sus propias líneas | Users → añadir un revendedor; Groups para sus permisos |
| Colección de cursos | Bouquet: un conjunto con nombre de canales, películas o series que concede un paquete | Bouquets, a partir de Streams y Movies / Series |
| Clases grabadas | Catálogo VOD: películas y series con temporadas y episodios, categorías y metadatos | Movies y Series, o la tarea de ingesta VOD |
| Clase en directo | Canal en directo: un stream con sus fuentes, EPG y formatos de salida | Streams → añadir un stream en directo (URL de origen o envío RTMP) |
| Acceso del estudiante | Línea: un acceso con su paquete, bouquets, caducidad, límite de conexiones y salidas | Lines → añadir, o códigos de activación, o la Reseller API |
| Periodo de acceso al curso | Fecha de caducidad de la línea, renovada mediante un paquete, un crédito o la API | La fecha de caducidad de la línea y la duración del paquete |
| Límite de sesiones simultáneas | Conexiones máximas de la línea: cuántos dispositivos pueden ver a la vez | Las conexiones máximas de la línea |
| Integración con LMS o comercio | Reseller API y webhooks: las operaciones del panel desde tu propio sistema | Claves de la Reseller API y webhooks en el panel del revendedor |
Requisitos previos
Qué tener antes de instalar.
- Un servidor Linux (Ubuntu 22.04 o 24.04) en la red del campus con Postgres, Redis y ffmpeg instalados por el instalador, y un dominio o una dirección interna para el panel y el reproductor.
- Las grabaciones que vas a publicar (archivos o un sistema de captura que pueda enviar RTMP) y, para las clases en directo, un codificador en cada aula que vaya a emitir.
- Una clave de licencia: el plan Free no necesita ninguna; las instituciones que cumplan los requisitos solicitan la clave Professional gratuita por correo desde su dominio académico.
Despliegue de la infraestructura
Instala el servidor de gestión y después un nodo por edificio.
- Ejecuta el instalador en el servidor de gestión; instala el panel, la API, el worker y el origen como unidades de systemd y crea el primer administrador.
- Define la URL pública de la API (API_PUBLIC_URL) y la base de reproducción para que los enlaces del reproductor apunten a la dirección del campus.
- Registra un nodo desde Servers → añadir un nodo para cada edificio cuyas aulas vayan a ver; el panel lo instala por SSH a partir del paquete de nodo.
- Comprueba la página Servers: el nodo informa de su latido y su tráfico, y los espectadores de ese edificio se dirigen a él.
Organización del contenido
Cursos como series, programas como bouquets y paquetes.
- Crea una categoría por facultad o asignatura en Movies / Series.
- Añade cada curso como una serie: una temporada por módulo, un episodio por clase, con la grabación como fuente (subida o la tarea de ingesta VOD).
- Crea un bouquet por colección de cursos (por ejemplo, los cursos de un programa durante un trimestre) a partir de las series que añadiste.
- Crea un paquete por programa: los bouquets que concede, el periodo de acceso como duración y el límite de sesiones simultáneas.
Configuración de socios (revendedores)
Un centro de formación o una facultad como cuenta delegada.
- Crea en Groups un grupo con los permisos que necesita el centro (líneas propias, sin cambios en el catálogo).
- Añade el centro como revendedor en Users con ese grupo, un saldo de créditos y los paquetes que puede entregar.
- Dale la dirección del panel; desde allí gestiona a sus propios estudiantes, y el panel conserva el registro de auditoría.
Configuración del acceso de los estudiantes
Una línea por estudiante, creada en la matrícula.
- Para grupos pequeños, añade líneas desde Lines → añadir con el paquete del programa; la caducidad sigue a la duración del paquete.
- Para el día de la matrícula, genera códigos de activación para el paquete; el estudiante canjea un código en el reproductor y obtiene una línea.
- Para un sistema de estudiantes o un LMS, crea una clave de la Reseller API y deja que el sistema cree líneas con action=create_line y un identificador de solicitud por estudiante.
- Define las conexiones máximas con el número de dispositivos que un estudiante puede usar a la vez; el reproductor rechaza la siguiente conexión que lo supere.
Configuración de VOD
Clases grabadas bajo demanda.
- Sube cada grabación como fuente de un episodio, o apunta la tarea de ingesta VOD al archivo y deja que el worker lo descargue y lo codifique en la raíz de medios.
- Rellena los metadatos (título, descripción, póster) a mano o desde TMDB para el material público; las clases suelen necesitar solo un título y una descripción.
- Comprueba la reproducción en el reproductor web con una línea de prueba; el enlace está firmado y caduca pasado el tiempo configurado.
Streaming de aulas en directo
Una clase magistral como canal en directo.
- Añade un stream en directo en Streams con el codificador del aula como fuente (una dirección de envío RTMP o una URL de descarga).
- Pon el stream en el bouquet del curso para que solo lo vean los estudiantes matriculados; añádelo a la EPG si llevas un horario.
- Activa catch-up o timeshift en el stream cuando los estudiantes puedan ver una clase más tarde; la grabación también puede subirse como episodio.
Suscripción y caducidad del acceso
Un acceso que termina con el curso.
- Da al paquete el periodo de acceso como duración; una línea creada a partir de él caduca al final de ese periodo.
- Renueva una línea para un nuevo trimestre desde el panel, con un crédito del centro, o mediante la API con action=renew_line.
- Suscribe tu sistema a los webhooks: se le avisa cuando una línea está a punto de caducar, ha caducado o se ha desactivado.
Integración con un LMS externo
El LMS gestiona el acceso; el reproductor reproduce.
- Crea una clave de la Reseller API para el LMS; guárdala en los secretos del LMS, nunca en una página.
- En la matrícula el LMS llama a action=create_line con el paquete del programa y un identificador de solicitud; en la baja, a action=disable_line.
- Enlaza desde la página del curso del LMS al reproductor web o da al estudiante las credenciales del reproductor; no hay inicio de sesión único entre ambos.
Consideraciones de seguridad
Mantén el servicio dentro de la institución.
- Activa el inicio de sesión en dos pasos en todas las cuentas del panel y da al personal el grupo de permisos más pequeño que funcione.
- Guarda los datos personales de los estudiantes en el sistema de estudiantes; la línea solo necesita un nombre y una caducidad.
- Mantén bajas las conexiones máximas y considera vincular la reproducción a la dirección del espectador para evitar que se comparta.
- Activa la copia de seguridad cifrada de la base de datos y, si tienes almacenamiento compatible con S3, la copia externa.
Resolución de problemas
Las primeras comprobaciones habituales.
- Un estudiante no puede iniciar sesión: comprueba la caducidad de la línea y que esté activada, y después el paquete y el bouquet del curso.
- Una grabación no se reproduce: comprueba el resultado de la tarea de ingesta en la página Jobs, después el archivo en la raíz de medios y la caducidad del enlace firmado.
- Los espectadores de un edificio llegan al origen: comprueba el latido del nodo y que la dirección del espectador entre en el enrutamiento del nodo.
- La API rechaza una llamada: comprueba la clave, el método de la acción (las escrituras son POST) y el identificador de solicitud de una llamada reintentada.