Moodle Plugins directory: Jitsi | Moodle.org
Jitsi
mod_jitsi integrates Jitsi Meet videoconferencing directly into Moodle courses. Teachers schedule sessions as standard activities; students join in one click — no app to install, no account required.
The plugin works out of the box using the public server at meet.jit.si (5-minute embed limit — enough to evaluate). For production you need your own server: GCP auto-managed is the easiest full-featured option; JaaS (8x8) is the quickest no-infrastructure option.
Key features
- Schedule webconferences as standard Moodle activities
- Activity completion based on time attended
- Unlimited participants (limited by server bandwidth)
- Moodle profile pictures as avatars
- Guest URLs for users outside Moodle (with optional email invitation)
- Private 1-on-1 sessions — call any coursemate directly from their profile
- Real-time participant list with names linked to Moodle profiles
- HD audio and video, tile view, breakout rooms, chat, polls, virtual backgrounds
- YouTube video sharing with synchronised playback
- Full moderation control (token-based mode recommended)
- YouTube live streaming with automatic recording publishing
- GCP/Jibri recording directly to Google Cloud Storage with AI processing
- Dropbox recording with manual or automatic link publishing
- JaaS (8x8) cloud recordings automatically captured
- Detailed attendance report with recording view tracking and heatmap
- Site-wide session usage statistics
mod_jitsi Account
Some features require a free registration at portal.sergiocomeron.com. Registration takes less than a minute and is completely free.
Features that require registration:
- Attendance report — detailed per-activity report with live session data, recording view tracking and course overview
- Recording view tracking — per-student progress bars showing which parts of each video were watched, persisted between sessions
- Viewing heatmap — aggregate bar showing which parts of each recording were watched by what fraction of students, with replay tracking and hover tooltip listing which students watched each segment
- Course overview — aggregated dashboard for all Jitsi activities in a course: sessions, participants, top recordings and student engagement ranking
- Session usage statistics — site-wide stats with daily breakdown
A note on open source transparency: registration is not about locking features for commercial reasons. It exists so the developer can see which Moodle versions, server types and features are actually used — and focus development where it matters most. Anyone can modify the open-source code and bypass it.
Supported server types
- GCP auto-managed (BETA) — the plugin automatically provisions a complete Jitsi + Jibri server in Google Cloud Platform. JWT authentication, SSL certificates, recording to GCS and AI features are all configured automatically. A Google Cloud account with billing is all you need — the simplest way to get a fully-featured setup.
- 8x8 JaaS — Jitsi as a Service, free up to 25 monthly active users. No infrastructure required. Cloud recordings captured automatically (expire after 24 hours). jaas.8x8.vc
- Self-hosted Jitsi — your own Jitsi server with full control and optional JWT token authentication for moderation. Requires the jitsi-token-moderation-plugin for JWT moderation to work correctly.
- Public server (meet.jit.si or other public instances) — no configuration required; limited to 5 minutes in embed mode.
Recordings
The plugin supports multiple recording methods:
- GCP/Jibri to Google Cloud Storage — the recommended method when using a GCP auto-managed server. Recordings are saved directly to GCS and published automatically in the Recordings tab. Unlocks AI features (summary, quiz, transcription).
- YouTube streaming — recordings are automatically published in the Recordings tab using the YouTube Data API v3. Requires OAuth 2.0 setup in Google Cloud Platform. Multiple YouTube accounts supported with round-robin distribution.
- Dropbox — teachers record to their Dropbox account and publish the link manually. The plugin can embed the video directly with an HTML5 player.
- JaaS (8x8) cloud recordings — links captured automatically when the session ends. Links expire after 24 hours and are automatically hidden.
- External links — any recording link can be added manually to the Recordings tab.
AI features for GCS recordings
When recordings are stored in Google Cloud Storage (GCP/Jibri setup), they can be processed by Google Vertex AI (Gemini 2.5 Flash) to generate:
- AI Summary — a structured educational summary of the recording
- AI Quiz — a set of true/false questions automatically created as a Moodle quiz in the course
- AI Transcription — a timestamped transcript with chapter headings and clickable timestamps
AI features are disabled by default. Enabling them sends video recordings to Google Vertex AI — review GDPR implications before enabling. A confirmation modal is shown to teachers before each generation.
Attendance report
A detailed per-activity report accessible from the activity's navigation, organised into three tabs:
- Live sessions — all-time attendance per student: sessions entered, total minutes, average per session and exact connection dates
- Recordings — per-student segment progress bars, aggregate viewing heatmap (unique viewers + replays per 10-second bucket with hover tooltip), and access log for non-embeddable recordings
- Course overview — aggregated stats for all Jitsi activities: sessions, participants, top recordings and student engagement ranking
Requires mod_jitsi Account registration.
Private sessions
When enabled, any user can start a private 1-on-1 video call with a coursemate directly from their Moodle profile page — without needing a scheduled Jitsi activity. Call history is shown in a dedicated hub page. Instant Moodle notification sent to the other participant when a session is started.
Token-based moderation
Configuring JWT token authentication gives full moderation control: only users with the Jitsi Moderation capability are promoted as Jitsi moderators
and can mute, disable cameras or remove participants. For self-hosted servers, the jitsi-token-moderation-plugin is required on the Jitsi server.
Session usage statistics
Administrators can access a site-wide statistics page with date range filtering showing sessions, unique participants, total minutes, recordings and daily breakdown charts. Stats are pre-computed nightly for performance. Requires mod_jitsi Account registration.
Permissions
- mod/jitsi:addinstance — create Jitsi activities
- mod/jitsi:view — access Jitsi activities
- mod/jitsi:moderation — act as moderator in sessions
- mod/jitsi:record — start recordings and manage recording links
- mod/jitsi:deleterecord — mark recordings as deleted
- mod/jitsi:editrecordname — rename recordings
- mod/jitsi:hide — hide recordings from students
- mod/jitsi:createlink — view and share guest invite links
- mod/jitsi:viewrecords — access the Recordings tab
- mod/jitsi:viewexternallink — view externally-linked recordings (Dropbox, 8x8, manual links)
- mod/jitsi:viewusersonsession — access attendees reports
- mod/jitsi:viewattendance — access the detailed attendance report with recording view tracking
- mod/jitsi:generateaisummary — generate AI summaries for GCS recordings
- mod/jitsi:generateaiquiz — generate AI quizzes from GCS recordings
- mod/jitsi:generateaitranscription — generate AI transcriptions for GCS recordings
Disclaimer
This plugin is not related to or partnered with 8x8 Inc. nor with Jitsi as a Service (JaaS).
Get in trouble when backuping-restoring with moosh for courses including Jitsi activity
Considering moosh restore log I found issues seems to be related to 'Session shared with token' param and 'tokeninvitacion' fields who doesn't have a default value (maybe due to DB field writing error).
I do not plan to use the 'Session shared with token' function.
So is there a way to skip this in code and so prevent the restore course error ?
In case of, here are few lines copy from log.
Default exception handler: Error writing to database Debug: Field 'tokeninvitacion' doesn't have a default value
!!! Error writing to database !!!
Potential coding error - existing temptables found when disposing database. Must be dropped!
Moodle version : its 4.5.1
PHP 8.2
Jitsi version : v3.4.11 (2024120100)
Many thanks for you help and dedicated involvement on supporting Jitsi in module Course
Benoit @ DiDaXo
Thank you for reporting this issue and for providing detailed information. I have created an issue on GitHub to track and investigate this problem:
🔗 https://github.com/udima-university/moodle-mod_jitsi/issues/131
We will review this and keep you updated on any progress. Feel free to add any additional details or comments directly in the issue thread.
Thanks again for your support!
Best regards,
Sergio
The problem lies in the definition of the tokeninvitacion field. In install.xml, the field is set to NOT NULL, while in upgrade.php, it allows NULL values. I should have a solution implemented by today or tomorrow, and once it’s fixed, I will release a new version.
En nuestra organización tenemos montados varios servidores propios de jitsi. Accediendo a una video creada desde fuera no tengo este problema, puedo activar la sala de espera así como establecer una contraseña. El problema solo lo tengo dentro de moodle con el plugin de jitsi.
Nota: He actualizado a la última versión del plugin para ver si se soluciona el problema, el error continúa.
Un saludo.
En donde configuras la contraseña? en la parte de administración de moodle? o ya directamente en las opciones de seguridad de dentro de jitsi?
Estoy probando ambas opciones y en un primer momento me funciona. Dime para poder hacer mas pruebas y veo que puede estar fallando.
Gracias!
En la video creada dentro de jitsi en las opciones de seguridad, al pulsar agregar contraseña no hace nada. He descartado los navegadores, he probado tanto con firefox como chrome.
Muchas gracias por contestar, un saludo.
Esta es la url: https://github.com/udima-university/moodle-mod_jitsi/issues/132
Gracias!
I was reviewing the plugin documentation and found the following statement:
Token configuration
If you have your own server, you can enter the values for the token moderation option here. Enter your App_ID and your Secret in the jitsi_app_id and jitsi_secret parameters.
However, in the current plugin settings interface, there is no field to enter jitsi_app_id or jitsi_secret.
I have also enabled Secure Domain on our Jitsi server, but currently, Moodle users with the manager role cannot enter a Jitsi session.
Could you please clarify how to configure these parameters or guide me on how to enable token-based moderation for our own Jitsi server?
Thank you very much for your help.
I’ll send you an email so I can provide you with support more easily there.
Thank you for your response.
I would like to inform you that the email address currently listed in my profile is no longer accessible to me. I have updated my profile with a new email address.
Please send your support email to my new email address as updated in my profile.
Thank you very much for your understanding and assistance.
I am getting an error when I try to view the Jitsi meeting attendance report.
Error: Cache definition mod_jitsi/getminutesdates requires simple keys. Invalid key provided.
Debug info: getminutesdates_4922_2_-17838761144_-17838674744
Stack trace:
line 639 of /cache/classes/helper.php: core\exception\coding_exception thrown
line 1227 of /cache/classes/cache.php: call to core_cache\helper::hash_key()
line 507 of /cache/classes/cache.php: call to core_cache\cache->parse_key()
line 408 of /cache/classes/cache.php: call to core_cache\cache->get_implementation()
line 1817 of /mod/jitsi/lib.php: call to core_cache\cache->get()
line 530 of /mod/jitsi/view.php: call to getminutesdates()
cf. https://github.com/SergioComeron/moodle-mod_jitsi/issues/175