How to selectively allow access
Choose between room caps, approval prompts, queue mode, transfer rooms, SSO, app.invite.cam, passwords, and source connection limits.
VDO.Ninja has several access-control tools. They are not interchangeable, so start by choosing the layer you want to control:
Hold guests until the director activates them
Guest invite workflow
Move approved guests from a lobby to a private room
Director workflow
Check identity before users reach the VDO.Ninja room flow
External/auth gateway path
Limit room size
Use &roomcap on the director link:
https://vdo.ninja/?director=MyRoom&roomcap=10On the official vdo.ninja service, the default cap is 80 and the hard maximum is 80. A lower cap can be set per claimed room. Higher values are clamped.
Room caps are handshake-server admission controls attached to the live director claim. If the director is not present, that director's live cap is not present either.
Approve guests before they enter
Use &requireapproval on the director link:
Guests attempting to join are put into a pending state until the director approves or denies them.
To also show a modal confirmation popup to the director, add &approvepopup:
The guest invite can stay normal:
&approvepopup does not enable audio alerts or system notifications. Add ¬ify or &beep for sound.
Allow trusted bypasses
Use &roomkey when selected guests should bypass approval or a custom room cap:
Trusted guest:
The room key cannot bypass the server hard cap. Treat it like a password and rotate it if it leaks.
Confirm viewers for a single source
&prompt, also available as &approve or &validate, is sender-side confirmation. It asks the publisher before sending audio/video to a newly connected viewer:
Use this for one-source push/view workflows. It is not a room admission system, and it does not stop a denied viewer from trying again.
Queue, hold, and screening workflows
Use &queue and the queue variants when you want a room workflow where guests wait until the director activates them.
Common modes:
&queueon both director and guest links creates a screening-room workflow.&queueonly on the guest invite creates a simple "Activate Guest" workflow.&screen/&queue2lets the guest see and hear the director before activation.&hold/&queue3keeps the guest on a waiting message until activation.&holdwithvideo/&queue4lets the director preview the guest while the guest waits.
Queue mode is a guest workflow. &requireapproval and &roomcap are handshake-server room admission controls. They can be combined, but they solve different problems.
Transfer rooms
Use transfer rooms when you want a public lobby room and one or more private destination rooms.
A common setup:
Guests join a public lobby room.
The director screens them there.
The director transfers approved guests into a private room.
Use &rooms to add preset transfer buttons to the director UI. Use &queuetransfer / &qt when transferred guests should remain queued in the destination room.
If the destination room has &requireapproval, transferred guests enter that destination room pending approval. If the destination room has &roomcap and is full, the transfer is rejected.
SSO and larger lobbies
SSO and signed-in access is its own access path. Use it when identity needs to be checked before a person reaches the VDO.Ninja room flow.
app.invite.cam is a larger lobby/invite path with authenticated room ownership, waiting lists, and owner-controlled grant/revoke access.
Do not treat SSO or app.invite.cam as the same thing as &requireapproval, &roomcap, &approvepopup, or &prompt. They sit in front of or alongside the VDO.Ninja room workflow.
Other access tools
&password can protect a room or source link. Change the password when rotating between groups.
&maxconnections limits the total push/view peer connections for a source. It can be useful for one-source workflows, but it is not a room-cap replacement.
Cloudflare Zero Trust or another identity gateway can protect a self-hosted VDO.Ninja deployment before users reach the VDO.Ninja page.
Related
&requireapproval&roomcap&roomkey&approvepopup&prompt&queueLast updated
Was this helpful?