How to connect in hidden mode?

I saw a property named isHidden in lib-jitsi-meets API document:

  1. isHidden - checks if local user has joined as a “hidden” user. This is a specialized role used for integrations.

But couldn’t find any info about it, is it possible to connect a conference in hidden mode (no camera, no audio). I’m planning to use this to capture the conference.

This is how jibri is connecting to the conference and jibri is doing that connecting to make a recording or livestream it.

I see, so no chance to use that mode in user level I think?
Thank you!

So this is a webpage and everything is user level :stuck_out_tongue:

So on your deployment you need to create authenticated virtualhost and connect with credentials using jid from that virtualhost and in the options you pass to lib-jitsi-meet you need to pass hiddenDomain with value the virtualhost.
What I see in the code this isHidden is used only to be added to the participant so .isHidden() will return correct value and participant count in the conference will skip hidden participants.
But basically this hidden stuff is implemented in the UI part, so if participant is hidden to not show it in the UI…

1 Like

Hello. We have created another subdomain as “” and we define “hiddenDomain” as “” in config.js. Still connecting as a visible user. We would glad to if you can explain what should we do step by step. Here is my options.

  let options = {
    roomName: room,
    width: iframeWidth,
    height: window.innerHeight - 10,
    parentNode: document.querySelector('#video-sidebar'),
    hiddenDomain: "",
    configOverwrite: {
        desktopSharingChromeDisabled: true,
        desktopSharingFirefoxDisabled: true,
        enableWelcomePage: false,
        resolution: 480
    }, ...

First, you need to make sure you pass hiddenDomain as configOverwrite, as this is a config.js property. And second, you must be sure you are using that domain to authenticate the user joining.

I have corrected the options:

configOverwrite: {
desktopSharingChromeDisabled: true,
desktopSharingFirefoxDisabled: true,
enableWelcomePage: false,
resolution: 480,
hiddenDomain: “
}, …

And while connecting via External API. I’m using this:

const api = new JitsiMeetExternalAPI("", options);

Is this correct? Because I’m still connecting as normal user.

Nope, this the domain… So first you want to make this domain authenticated, authenticated virtual host in prosody and you must use the created username and password to connect to it … the only place we do it from web is jibri, where jibri sets the username and password to be used in the local storage.
The keys are xmpp_username_override and xmpp_password_override.