RCWeb YouTube Controls

The RCWeb YouTube Controls app (app/youtube-control) is the phone and tablet controller for the RCWeb YouTube Display (app/youtube).

Icon

icon

Overview

This app gives users a YouTube-style remote control surface for every active youtube display in the same RCWeb room. It can add videos, manage the playlist, control playback, adjust audio, toggle display overlays, and save or restore playlists without server-side playlist storage.

Multiple phones can use the control app at the same time. Each controller receives display state updates and can contribute to the shared queue.

How to use

  1. Open /youtube/ on the main display.
  2. Scan the QR code shown by the display.
  3. Paste a YouTube video URL into the YouTube URL box.
  4. Press Add to queue. If the queue was empty, playback starts from the first item.
  5. Use the playback buttons to play, pause, skip, rewind, fast-forward, or seek.
  6. Drag queue items by their handle to reorder the playlist.
  7. Use the lower controls to change loop mode, mute, volume, display title, QR code, and stats visibility.

Playback controls

  • Play and pause the current video.
  • Move to the previous or next queue item.
  • Rewind or fast-forward by 15 seconds.
  • Seek with the progress slider.
  • Select any queued item to start playback.
  • Remove individual queue items or clear the queue.
  • Reorder the queue by dragging items on desktop or mobile.

Playlist controls

  • Paste a YouTube URL and add it to the shared queue.
  • Download the current playlist and playback state as a JSON file.
  • Import a previously saved JSON playlist.
  • Restore imported playlists entirely in the browser using client-side file APIs.
  • Continue controlling the playlist even when more than one control app is open.

Display controls

  • Show or hide the title overlay on the main display.
  • Show or hide the QR code on the main display.
  • Show or hide the main display's Stats for nerds panel.
  • Control mute and volume for the viewers.
  • Choose loop off, loop playlist, or loop current item.

Multiple viewers and controllers

The control app sends commands to all youtube display apps in the room while excluding control apps. This means one phone can control many screens, and several phones can add to or operate the same shared playlist.

When the control app starts, it requests the current state from displays in the room. It also keeps the latest playlist snapshot it receives, so if a viewer is refreshed while a controller is still open, the controller can provide the queue back to the returning viewer.

How RCWeb makes it possible

RCWeb assigns each browser tab an app name, room ID, and client ID, then connects clients in the same room through WebSocket messaging. youtube-control uses the RCWeb communication helper to call functions on matching viewer apps.

The key target for display commands is youtube!*-control. In RCWeb targeting terms, this means "send to youtube apps, but exclude youtube-control apps." That lets controls update all viewers in the room without accidentally sending player commands to other control screens.

State also flows back the other way. Viewers publish snapshots containing the queue, current index, playback position, player state, overlay settings, loop mode, mute state, volume, and viewer metadata. Controls render those snapshots and use them to build canonical queue updates.

Because the playlist import/export happens in the browser with normal file APIs, no server-side playlist database or upload step is required.

Related app

Use this app with RCWeb YouTube Display (app/youtube).

DocumentationServer TelemetryServer StatsServer HTTP LogServer WebSocket Log