The RCWeb YouTube Display (app/youtube) is the big-screen half of the RCWeb YouTube player. It is designed for a TV, projector, monitor, kiosk browser, or any shared display in an RCWeb room.

This app turns the browser into a room-controlled YouTube screen. The display shows an embedded YouTube player full screen, presents a QR code for phones to join as controllers, and receives playback commands from one or more youtube-control apps in the same virtual room.
The viewer is intentionally simple on the main screen: video first, with optional title, QR code, and diagnostics overlays controlled remotely.
/youtube/ on the display browser./youtube-control/?r=<room> on another browser.If the browser blocks automatic YouTube playback, the display shows an Enable playback button. Pressing it gives the page the local user gesture browsers require before video playback can start.
youtube-control app in the same room.Several youtube display browsers can run in the same RCWeb room. The control app targets all youtube viewers while excluding youtube-control clients, so every viewer receives the same commands.
When a new viewer opens, it asks existing viewers and active controllers for the current queue and playback state. This lets a refreshed or newly opened display rejoin the room without forcing users to rebuild the playlist.
The viewers also coordinate playback state so displays in the same room stay aligned without competing for control.
The display keeps the active queue, current item, position, loop mode, audio state, and overlay state as room state. Controllers can also download the playlist as JSON and later import it again.
The display stores room state locally as a fallback, but it starts on the QR/control-ready screen instead of trying to immediately autoplay restored video. This avoids the common browser restriction where media playback is blocked until a local interaction occurs.
RCWeb gives every browser tab a room, app name, and client ID, then connects clients in the same room over WebSocket. The display and controller are just separate RCWeb apps that exchange JavaScript function calls through comms.js.
The display app exposes functions such as queue updates, playback controls, display toggles, audio controls, and state requests. The control app sends commands to the target youtube!*-control, which reaches all youtube viewers in the room while excluding controller apps.
The same mechanism also works in reverse: displays publish state snapshots to youtube-control, and controls can answer a restarted viewer with the last queue state they saw. This room-based messaging is what lets multiple phones and multiple displays cooperate without a backend playlist database.
Use this app with RCWeb YouTube Controls (app/youtube-control).