Private Webcam Support #51

Open
opened 2025-05-16 04:23:57 +00:00 by kirsle · 0 comments
Owner

No estimates on a timeline for when this would be implemented, but here are my ideas how a "private" webcam feature on BareRTC would work.

Server Side Config

Private webcam support should be controllable in settings.toml: not every deployment will want to enable this feature, and some deployments may want it to be a "premium / paid membership" feature (due to the added moderator burden: if users can connect privately to each other's webcams, they may be more likely to broadcast mischief).

There could be two controls for this:

  • The settings.toml would have a PrivateWebcam=true boolean to enable the feature at all.
  • The JWT token could have a Chat Moderation Rule such as 'no private webcam' so when your main website signs users into chat, you can disable their access if you want unless e.g. they have a paid account with your site.

Implementation: Enabling your private camera

There would be a Video Flag added for a user to label their camera as private (similar to the flags that mark it as explicit, or to require mutual cameras from your viewers, etc.)

In the chat UI: when going on camera the pre-broadcast setting modal would look like this:

  • A "Visibility" setting would be added (and some of the existing options reworked into it). Visibility options would be:
    • Anybody on chat can view my camera (default)
    • Only people who are also on camera can see mine (the current "mutual required" flag would be controlled by this setting)
    • Private: only people I invite (and chat moderators) can see my camera.

It would be a radio button: the "mutual camera required" option and "private camera" option are mutually exclusive, as they don't make sense anyway - for anybody to view your private camera, you must 'invite' them, and, inviting somebody to watch already overrides your mutual camera requirement.

(We already have an 'invite to watch my camera' feature, so if your camera is set to mutual required and you want a friend (who is not on camera themself) to watch, inviting them will override your mutual required and they can see your camera anyway). The private webcam option would use the same invite feature, so it would be a radio button, in exclusion of the 'mutual required' checkbox we have today.

Other peoples' experience

When a camera has the private flag enabled:

  • The chat server, on Who List updates, will tell everybody on chat that your webcam is simply offline / not broadcasting. The only people who will know that your camera is active would be:
    • You yourself.
    • People who you had invited to watch.
    • Chat moderators.

Video button appearance

Private webcams would need to have a distinct appearance on the Who List.

The border color of the button could be drawn in purple, while the icon inside is still blue or red as normal.

On camera invites: today, if you invite somebody to watch your camera, your video button has a green outline for them (with a blue or red icon inside). If that camera is private: it will show with a purple outline instead of green.

Note: if somebody is on a private camera and hasn't invited you, their camera will be greyed out/appear not active. So when they invite you: their camera will be on, with a purple border and blue/red icon, and be clickable to watch.

Chat moderator features

Private cameras run a high risk of needing to be monitored by chat moderators, as users can get up to mischief when they have that kind of privacy.

The front-end chat page would need to make it abundantly clear to users: chat moderators can and probably will watch your private camera.

Currently: chat moderators are able to watch any camera on chat, but people who use the "mutual required" cam option, the moderator at least needs to be on camera themselves before they can watch those. This encourages your moderators to go on camera themselves, and is in line with user expectations.

Currently: if a user boots a moderator off from watching their webcam, the moderator is still able to re-open the camera and watch anyway.

For private webcams, due to the extra risk they bring, may need some custom nuance e.g.:

  • If your camera is private, you are not allowed to boot off a watching chat moderator.
  • Chat moderators are always able to watch a private camera, even if the moderator's camera is not also active. (Note: the "mutual required" option is mutually exclusive to the private option anyway).

When the who list is sorted by red/blue cameras, private cameras should always sort at the very top of the list.

No estimates on a timeline for when this would be implemented, but here are my ideas how a "private" webcam feature on BareRTC would work. ### Server Side Config Private webcam support should be controllable in settings.toml: not every deployment will want to enable this feature, and some deployments may want it to be a "premium / paid membership" feature (due to the added moderator burden: if users can connect privately to each other's webcams, they may be more likely to broadcast mischief). There could be two controls for this: * The settings.toml would have a PrivateWebcam=true boolean to enable the feature at all. * The JWT token could have a Chat Moderation Rule such as 'no private webcam' so when your main website signs users into chat, you can disable their access if you want unless e.g. they have a paid account with your site. ### Implementation: Enabling your private camera There would be a Video Flag added for a user to label their camera as private (similar to the flags that mark it as explicit, or to require mutual cameras from your viewers, etc.) In the chat UI: when going on camera the pre-broadcast setting modal would look like this: * A "Visibility" setting would be added (and some of the existing options reworked into it). Visibility options would be: * Anybody on chat can view my camera (default) * Only people who are also on camera can see mine (the current "mutual required" flag would be controlled by this setting) * Private: only people I invite (and chat moderators) can see my camera. It would be a radio button: the "mutual camera required" option and "private camera" option are mutually exclusive, as they don't make sense anyway - for anybody to view your private camera, you must 'invite' them, and, inviting somebody to watch already overrides your mutual camera requirement. (We already have an 'invite to watch my camera' feature, so if your camera is set to mutual required and you want a friend (who is not on camera themself) to watch, inviting them will override your mutual required and they can see your camera anyway). The private webcam option would use the same invite feature, so it would be a radio button, in exclusion of the 'mutual required' checkbox we have today. ### Other peoples' experience When a camera has the private flag enabled: * The chat server, on Who List updates, will tell everybody on chat that your webcam is simply offline / not broadcasting. The only people who will know that your camera is active would be: * You yourself. * People who you had invited to watch. * Chat moderators. ### Video button appearance Private webcams would need to have a distinct appearance on the Who List. The border color of the button could be drawn in purple, while the icon inside is still blue or red as normal. On camera invites: today, if you invite somebody to watch your camera, your video button has a green outline for them (with a blue or red icon inside). If that camera is private: it will show with a purple outline instead of green. Note: if somebody is on a private camera and hasn't invited you, their camera will be greyed out/appear not active. So when they invite you: their camera will be on, with a purple border and blue/red icon, and be clickable to watch. ### Chat moderator features Private cameras run a high risk of needing to be monitored by chat moderators, as users can get up to mischief when they have that kind of privacy. The front-end chat page would need to make it abundantly clear to users: **chat moderators can and probably will watch your private camera.** Currently: chat moderators are able to watch any camera on chat, but people who use the "mutual required" cam option, the moderator at least needs to be on camera themselves before they can watch those. This encourages your moderators to go on camera themselves, and is in line with user expectations. Currently: if a user boots a moderator off from watching their webcam, the moderator is still able to re-open the camera and watch anyway. For private webcams, due to the extra risk they bring, may need some custom nuance e.g.: * If your camera is private, you _are not allowed_ to boot off a watching chat moderator. * Chat moderators are _always_ able to watch a private camera, even if the moderator's camera is not also active. (Note: the "mutual required" option is mutually exclusive to the private option anyway). When the who list is sorted by red/blue cameras, private cameras should always sort at the very top of the list.
kirsle added the
enhancement
label 2025-05-16 04:23:57 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: apps/BareRTC#51
No description provided.