Skip to content

Launch and control the Player

Open the Player view for your room, drive it from the Studio transport bar, tweak the running timer on the fly, and run it fullscreen or as an OBS source.

Last updated

Launch and control the Player

The Player is the screen output of Timers Studio. It is what your audience, your speaker, or your stage display reads. This page shows you how to open it, control it from the Studio, and adapt it to the hardware it runs on.

Prerequisites

  • At least one timer in your rundown (see Create your first timer)
  • A browser tab open on timers.studio/id/<your-room> for the Studio
  • A second tab, window, or device for the Player itself

Steps

1. Open the Player view

In a new browser tab, go to timers.studio/player/<your-room>. Use the same room ID that appears in your Studio URL. The Player loads, reads the current room state from Supabase, then subscribes to updates through the Gateway channel.

The Player URL has no authentication. It is meant to be shared with speakers, stage displays, or OBS — anyone with the link sees the live clock. If you need a protected view, use the Moderator URL instead.

2. Start a timer from the Studio

Back in the Studio, look at the ControlPanel (centre column). The main button shows Play when the timer is stopped and Pause when it is running. Click Play or press Space. The TimerState flips to RUNNING and the Player begins counting within 100 ms.

To stop, click the red Stop button. To pause without resetting, press Space again.

3. Tweak the running timer

The ControlPanel also offers four quick-adjust buttons:

  • +1m — add 60 seconds to the current timer
  • +30s — add 30 seconds
  • -30s — subtract 30 seconds
  • -1m — subtract 60 seconds

Each click fires a TWEAK action through onAction('TWEAK', <seconds>). The Player receives the new elapsed value and re-renders immediately. Use this when your speaker needs a minute more, or when you want to close a gap in the rundown.

4. Skip between timers

Two arrow buttons — Previous and Next — jump to the timer before or after the current one. Clicking a row in the rundown list has the same effect. The keyboard shortcuts are (previous) and (next).

The Player always renders the active entry. Switching index means switching what is on screen.

5. Run the Player fullscreen

On the Player tab, press F or move the mouse and click the fullscreen icon that appears in the corner controls overlay. The Player hides the BrandLogo (on Pro plans), the mouse cursor, and every internal chrome — you get the bare clock.

For stage outputs you will usually want to suppress extra UI:

  • ?hideTitle=true — hide the timer title overlay
  • ?hideMessage=true — hide any active speaker message
  • ?theme=light — force a light theme regardless of Studio setting
  • ?theme=transparent — force a dark theme and a transparent background (useful for OBS composition)

Combine them with &, for example timers.studio/player/<your-room>?hideTitle=true&hideMessage=true.

6. Embed the Player in OBS

In OBS, add a Browser Source and paste the Player URL. Set the resolution (1920×1080 or 1280×720 are the safe defaults) and tick Refresh browser when scene becomes active if your show restarts the stream between segments. The Player auto-detects Smart TV and Console user agents and shrinks to a 90% safe area to avoid overscan — that detection does not trigger inside OBS, so the default 100% layout applies.

Local viewport controls

The Player exposes a small controls panel that lives on the Player tab only (no Studio side effect):

  • Flip horizontal (flipH)
  • Flip vertical (flipV)
  • Rotate 0° / 90° / 180° / 270°
  • Safe area — default, 90%, 80%, off

Use these when the physical screen is mounted sideways or upside down, or when you are feeding a TV that crops the edges.

Expected result

One Player tab, one running clock in sync with the Studio. Every transport action (Play, Pause, Stop, Next, Previous, tweak) reflects on the Player within 100 ms. Every Player tab opened on the same room ID shows the same time down to the tenth of a second, regardless of when the tab was opened.

Troubleshooting

Why does the Player freeze at 00:00? The Player stops counting when timerState is not RUNNING. Check that you hit Play in the Studio, not Pause or Stop. The ControlPanel button turns green when the timer is running.

Does the Player need the same login as the Studio? No. The Player URL is public by design — anyone with the link sees the live clock. The room password only protects the Moderator view.

How do I hide the title or the message overlay? Append URL parameters to the Player link: ?hideTitle=true removes the timer title, ?hideMessage=true hides any active speaker message. You can combine both.

Can I rotate or flip the Player on a vertical screen? Yes. The Player exposes local viewport controls (flipH, flipV, rotate, safeArea). Hover the Player to reveal the controls panel, then pick the orientation. These settings stay local to the tab.

Next reads