Lo nuevo en el plugin de Jitsi v5.0
Con la versión 5.0 de mod_jitsi el plugin da un salto importante en cuatro direcciones: gestión de instalaciones a través de un portal de desarrollador, analítica de grabaciones con heatmap de visualizaciones e informe de asistencia, presencia en tiempo real en la sala y varias mejoras de seguridad y rendimiento. Vamos por partes.
1. Portal de Desarrollador
Hasta ahora no había ningún mecanismo para saber cuántas instalaciones había del plugin ni qué funcionalidades se usaban. La v5.0 añade un sistema opt-in de registro y telemetría que se gestiona desde portal.sergiocomeron.com.
Registro de la instalación
El administrador puede registrar su instalación en el portal directamente desde la configuración del plugin. El registro asigna una license_key única que identifica la instalación de forma estable aunque cambie la URL del sitio o el servidor. No se comparte ningún dato personal: solo el hash SHA-256 del hostname.
Telemetría anónima opt-in
Una vez registrada, la instalación puede activar el envío de un ping semanal anónimo. Los datos que se envían son:
- Hash del hostname (nunca la URL real)
- Versión del plugin y rama de Moodle
- Tipo de servidor Jitsi (meet.jit.si, propio, 8x8, GCP)
- Número de actividades Jitsi en el sitio
- Funciones activadas: IA, Jibri, sesiones privadas, notificaciones push
- Estadísticas de uso de la semana: sesiones, minutos, usuarios únicos, grabaciones
El envío es siempre opt-in: está desactivado por defecto y el administrador lo activa explícitamente. Se puede desactivar en cualquier momento.
Autenticación por instalación
Anteriormente la telemetría usaba un secreto compartido igual para todas las instalaciones. Ahora cada una se autentica con su propia license_key, lo que permite revocar o auditar instalaciones individualmente y elimina el riesgo de que un secreto filtrado afecte a todas.
2. Informe de asistencia completo
El informe de asistencia era básico en versiones anteriores. La v5.0 lo rediseña desde cero con tres pestañas que cubren ángulos muy distintos de la actividad en el curso.
Pestaña: Sesiones en directo
Tabla histórica de asistencia a todas las sesiones de videoconferencia de la actividad. Por cada alumno muestra:
- Número de sesiones a las que ha asistido
- Minutos totales acumulados
- Tiempo medio por sesión
- Fechas de asistencia (con hora exacta una vez que el cron ha procesado los datos)
Pestaña: Grabaciones
Esta pestaña combina tres vistas complementarias para cada grabación:
- Heatmap de visualizaciones (explicado en detalle en el siguiente apartado)
- Barras de progreso por alumno: qué porcentaje de la grabación ha visto cada uno
- Registro de acceso: cuándo accedió cada alumno a la grabación
Hay un filtro de fechas para acotar el período de análisis.
Pestaña: Resumen del curso
Vista agregada de todas las actividades Jitsi del curso:
- Tabla con cada actividad, número de sesiones, minutos totales y alumnos únicos
- Ranking de engagement de alumnos en el curso (sesiones + minutos + grabaciones vistas)
- Top grabaciones por número de espectadores únicos
3. Heatmap de visualizaciones de grabaciones
Es la novedad más visual de la v5.0. Debajo de cada grabación embebida (GCS o Dropbox) aparece una barra de calor que muestra, segmento a segmento, cuánto se ha visto ese fragmento del vídeo.
Cómo funciona
El reproductor registra qué partes del vídeo ve cada usuario en segmentos de 10 segundos. Esos datos se agregan en la base de datos y se muestran en dos barras superpuestas:
- Barra azul: espectadores únicos que han visto ese segmento
- Barra naranja: reproducciones totales (incluyendo repeticiones)
Al pasar el ratón sobre cualquier segmento aparece un tooltip con el conteo exacto y el rango de tiempo correspondiente. Si se hace clic en un segmento de la barra azul, se muestra la lista de alumnos que han visto esa parte concreta.
Quién lo ve
El heatmap solo es visible para usuarios con el permiso mod/jitsi:viewattendance (profesores y administradores). Los alumnos ven el reproductor sin la barra de analítica.
Para qué sirve
Permite identificar de un vistazo qué partes de una clase grabada se replantean o se revisan más, dónde los alumnos abandonan la reproducción y qué contenido genera más interés. Es especialmente útil para decidir qué partes vale la pena reforzar en la siguiente sesión.
4. Presencia en tiempo real
La v5.0 añade un sistema de presencia que muestra qué participantes están actualmente en la sala de videoconferencia. La información se actualiza en segundo plano sin necesidad de recargar la página.
Los profesores pueden ver de un vistazo quién ha entrado ya a la clase antes de unirse ellos mismos, y los alumnos saben si el profesor está presente. El dato de presencia también se usa internamente para mejorar la precisión del recuento de participantes conectados, que en versiones anteriores podía desincronizarse en sesiones largas.
5. Invitaciones por email desde la actividad
Antes, invitar a alguien externo a una sesión de Jitsi requería copiar el enlace de la sala manualmente y enviarlo por fuera de Moodle. La v5.0 añade un botón de invitación por email directamente en la actividad.
El profesor introduce la dirección de email del invitado y el plugin envía un mensaje con el enlace directo a la sala. El destinatario no necesita tener cuenta en Moodle.
6. Seguridad y correcciones
Corrección de SQL injection
Se corrigieron dos vulnerabilidades de inyección SQL en formuniversal.php y recordun.php que permitían tanto a usuarios no autenticados como autenticados manipular consultas a la base de datos. Ambas se reemplazaron por consultas parametrizadas usando la API de Moodle.
Hardening general
Se revisaron múltiples puntos de entrada del plugin para reforzar la validación de parámetros y el control de acceso. Se elimina también la dependencia de un secreto compartido global para la comunicación entre el plugin y el portal, sustituyéndola por la autenticación por license_key descrita más arriba.
7. Rendimiento
La pestaña de grabaciones en view.php ahora se carga de forma lazy mediante AJAX: si el usuario no abre esa pestaña, los datos de grabaciones no se consultan ni se procesan. En actividades con un historial largo de grabaciones esto reduce significativamente el tiempo de carga inicial de la página.
También se mejoró el rendimiento de sessionusagestats.php, que en sitios grandes podía generar consultas lentas al agregar estadísticas de uso.
Resumen de lo nuevo en 5.0
Portal de Desarrollador
- Registro de instalación con license_key estable
- Telemetría anónima semanal opt-in
- Autenticación por instalación (sustituye el secreto compartido)
Analítica de grabaciones
- Heatmap de visualizaciones (barras azul/naranja por segmento de 10s)
- Informe de asistencia con 3 pestañas: sesiones, grabaciones, resumen del curso
- Click en segmento para ver qué alumnos lo han visto
Presencia
- Indicador en tiempo real de quién está en la sala
- Mejora del conteo de participantes conectados
IA y comunicación
- Invitación por email a participantes externos desde la actividad
Seguridad y rendimiento
- Corrección de SQL injection en formuniversal.php y recordun.php
- Hardening general y autenticación por license_key
- Carga lazy de la pestaña de grabaciones
El plugin está disponible en moodle.org y en el repositorio de GitHub. Si tienes alguna duda o encuentras algún problema, abre un issue o escríbeme directamente.