Visión general

La integración de Stream con Moodle permite:

  • Sincronización automática de grabaciones de reuniones (Zoom, Teams, Unicko, etc.) al servidor Stream.
  • Incrustación automática de grabaciones en el curso de Moodle correspondiente (mediante el complemento local_stream).
  • Actividad Stream en un curso — lista de reproducción y reproductor de vídeo dentro de Moodle (mediante el complemento mod_stream).

Los dos complementos trabajan juntos: local_stream gestiona el flujo de grabaciones desde la nube; mod_stream muestra los vídeos de Stream a los estudiantes.

Complementos necesarios

  • local_stream — integración central (complemento local) Sincroniza reuniones y grabaciones, las sube al servidor Stream y las incrusta en el curso.
    GitHub – moodle-local_stream · Moodle.org
  • mod_stream — actividad Stream (módulo de actividad) Añade una actividad «STREAM» al curso: lista de reproducción, reproductor incrustado y recopilación automática de grabaciones por curso.
    GitHub – moodle-mod_stream · Moodle.org
Opcional: el complemento filter_stream para incrustar enlaces de Stream dentro del contenido de Moodle (páginas, etiquetas). Consulte filter_stream en Moodle.org.

Requisitos previos

  • Un sitio Moodle actualizado con permisos de administrador del sitio.
  • Un servidor Stream activo (p. ej. https://stream.example.ac.il) con una clave API (Account ID).
  • Acceso SSH/FTP o de despliegue al directorio de Moodle, o instalación mediante la interfaz «Instalar complementos».
  • Para sincronización con Zoom: una cuenta Zoom con Cloud Recording y credenciales API (OAuth / Server-to-Server, según la configuración de su organización).

Versiones de Moodle y ramas Git

En moodle-mod_stream se definen las siguientes ramas:

Versión de MoodleRama Git recomendada
Moodle 3.4 – 4.1MOODLE_401
Moodle 4.2MOODLE_402

Para local_stream, use la rama master o una rama que coincida con su versión de Moodle (consulte el README del repositorio).

Instalación

Instale primero local_stream y después mod_stream.

Paso 1 — Descargar los archivos

  1. Descargue un ZIP desde GitHub (Code → Download ZIP) o clone:
    git clone https://github.com/mattan-d/moodle-local_stream.git
          git clone https://github.com/mattan-d/moodle-mod_stream.git
  2. Para mod_stream, cambie a la rama que corresponda a su versión de Moodle (p. ej. MOODLE_402).

Paso 2 — Copiar a los directorios de Moodle

ComplementoRuta en el servidor Moodle
local_streammoodle/local/stream/
mod_streammoodle/mod/stream/

Asegúrese de que el nombre de la carpeta sea stream (minúsculas) y de que todos los archivos del complemento estén directamente dentro (incluido version.php).

Paso 3 — Completar la instalación en Moodle

  1. Inicie sesión como administrador del sitio.
  2. Vaya a Administración del sitio → Notificaciones.
  3. Moodle detectará los nuevos complementos — haga clic en Continuar y complete la actualización de la base de datos.
  4. Repita el proceso para cada complemento si los instaló uno a uno.
Importante: tras la actualización, purgue la caché de Moodle: Administración del sitio → Desarrollo → Purgar todas las cachés.

Configuración del servidor Stream (VideoTube)

Antes de configurar los complementos de Moodle, asegúrese de que el sistema Stream tenga una clave API que utilizarán los complementos:

  1. Acceda a Configuración del sistema (/admin/settings) en el servidor Stream.
  2. Localice el campo Account ID / API Key (el valor en $CONFIG->apikey).
  3. Copie la clave — se introducirá en ambos complementos de Moodle como Account ID.
  4. Verifique que la URL del servidor Stream sea accesible desde Moodle (HTTPS, sin bloqueo de firewall).

Configuración de local_stream

Ruta: Administración del sitio → Complementos → Complementos locales → Stream

Configuración principal

  • Platform (plataforma) — elija la fuente de grabaciones:
    • Zoom — sincronizar grabaciones en la nube desde Zoom.
    • Microsoft Teams — grabaciones de Teams.
    • Unicko — mediante LTI (según la configuración de su organización).
  • Stream server / API — URL del servidor Stream y Account ID (clave API).
  • Zoom API (cuando la plataforma es Zoom):
    • Client ID / Client Secret o credenciales JWT / Server-to-Server — según el tipo de aplicación en Zoom Marketplace.
    • Cloud Recording debe estar activado en la cuenta Zoom.
  • Embed order — si colocar la actividad de grabación debajo de la actividad de reunión original (p. ej. debajo de Zoom).
  • Based grouping / duplicate handling — evitar incrustar la misma grabación dos veces (por UUID de Zoom).
  • Notifications (opcional) — notificar a los participantes del curso cuando se incruste una nueva grabación.

Prueba de conexión

Tras guardar la configuración, use la comprobación de estado de conexión (si está disponible en la pantalla) para verificar que Moodle puede comunicarse con Stream y Zoom.

Flujo de Zoom (resumen)

  1. Un docente crea una actividad Zoom en un curso de Moodle.
  2. La reunión se celebra con grabación en la nube activada.
  3. Una tarea programada de local_stream obtiene la lista de grabaciones.
  4. La grabación se sube a Stream (mediante webservice/api.php) y/o se crea una actividad en el curso con un enlace para verla.

Configuración de mod_stream

Ruta: Administración del sitio → Complementos → Módulos de actividad → Stream

Configuración a nivel de sitio

  • Stream API endpoint — URL base del servidor Stream (p. ej. https://stream.smkb.ac.il).
  • Account ID — la misma clave API que en local_stream y en la configuración de Stream.
  • Connection status — verificar que Moodle puede acceder a api2.php y obtener la lista de vídeos.
  • Valores predeterminados (según versión):
    • Si incluir audio / reproductor de audio para ciertos cursos.
    • Modo de recopilación automática de grabaciones para la actividad.

Qué hace mod_stream en un curso

  • Añade una actividad STREAM al curso.
  • Muestra una lista de reproducción de vídeos del servidor Stream (selección manual o recopilación automática).
  • Envía datos limitados del usuario (nombre, correo electrónico, ID) a Stream para seguridad, estadísticas y restricciones de visualización — según la configuración de Stream.

Tareas programadas (Cron)

local_stream requiere que se ejecute el Cron de Moodle:

  1. Vaya a Administración del sitio → Servidor → Tareas programadas.
  2. Localice la tarea Embedded recordings (local_stream) — clase local_stream\task\embed.
  3. Asegúrese de que esté activada y se ejecute con la frecuencia adecuada (p. ej. cada 5–15 minutos, o cada hora).
  4. Asegúrese de que el Cron de Moodle se ejecute en el servidor (crontab):
    * * * * * php /path/to/moodle/admin/cli/cron.php

Puede ejecutarla manualmente para pruebas:

php /path/to/moodle/admin/cli/scheduled_task.php --execute='\local_stream\task\embed'

Revise el registro de Moodle si hay errores de API (Zoom / Stream).

Cómo funciona

Descarga de vídeos desde la nube de Zoom

Una vez configurado local_stream, el sistema se conecta a la nube de Zoom, identifica grabaciones de reuniones vinculadas a cursos de Moodle y las sube al servidor Stream. Las grabaciones se centralizan en un solo sistema para gestión, edición y transcripción.

Incrustación automática en el curso

Los vídeos sincronizados se incrustan automáticamente en el curso correspondiente — aquel desde el que se creó la reunión de Zoom. El docente no necesita subir archivos manualmente.

Actividad Stream para estudiantes

Con mod_stream puede añadir una actividad Stream con todos los vídeos del curso (incluidos los recopilados automáticamente), organizar una lista de reproducción y controlar la disponibilidad.

Ventaja: ahorra tiempo a los docentes y garantiza que el contenido esté centralizado, gestionado y accesible para los estudiantes dentro de Moodle.

Para docentes (resumen)

Tras la configuración de los complementos por el administrador:

  1. Zoom + grabación automática — cree una actividad Zoom en el curso, grabe en la nube; tras el procesamiento de Zoom, la grabación aparecerá en el curso (mediante local_stream).
  2. Actividad STREAM — en el curso: «Añadir una actividad o recurso» → STREAM:
    • Defina un título y una descripción.
    • Active «Recopilación de grabaciones» o elija vídeos manualmente del servidor Stream.
    • Reordene la lista de reproducción arrastrando y soltando.
    • Establezca fechas de apertura/cierre si es necesario.

Guía detallada para docentes: Guía rápida para docentes – STREAM en Moodle.

Creación de preguntas desde un vídeo: Creación de preguntas desde un vídeo Stream en Moodle.

Solución de problemas

ProblemaQué comprobar
La grabación no aparece en el curso Cloud Recording en Zoom; tarea local_stream\task\embed activada; Cron en ejecución; credenciales de Zoom y Stream.
«Account ID is missing» / error de API Account ID en Moodle coincide con apikey en el servidor Stream; HTTPS accesible.
Títulos / hebreo mostrados como ???? UTF-8 en Moodle y MySQL; última actualización del servidor Stream (corrección de charset en la API).
Grabación en el curso incorrecto Mapeo de courseid / nombre del curso en la configuración; tema de la reunión en Zoom.
Grabaciones duplicadas Active «based grouping» / deduplicación en local_stream.
Actividad mod_stream vacía Conexión a api2.php; el usuario/docente tiene vídeos en Stream; privacidad de los vídeos (público/autenticado).

Para diagnóstico avanzado: active la depuración en Moodle, ejecute la tarea programada manualmente y revise el registro.