Livote

OBS and streaming setup guide

How to put the poll results on your stream. There is nothing to install for Livote — you paste one URL into an OBS Browser source.

This guide also covers Zoom, Teams and Meet, and how to run a members-only stream.

Two settings to fix first

Open the properties of the OBS Browser source and clear these two checkboxes.

Do not skip this. If they stay on, the overlay disconnects every time you switch scenes, and the numbers take a moment to come back.

  • Shutdown source when not visible — off. When it is on, switching scenes drops the connection, and coming back starts over from connecting.
  • Refresh browser when scene becomes active — off. When it is on, every return reloads from scratch.

With both off, the connection stays alive while you are on another scene, so the counts keep flowing and the latest numbers are there the moment you switch back.

To see it for yourself, turn one on, switch scenes twice, and watch the overlay go blank for a moment when you return.

Add a Browser source

There is nothing to install for OBS. Just paste the URL shown under “Place this in OBS” in the console into a Browser source.

  • In Sources, press “+” and choose Browser
  • Give it a name (for example, Livote poll)
  • Paste the URL from “Place this in OBS” in the console into the URL field
  • Set Width to 1920 and Height to 1080
  • Clear the two checkboxes from “Two settings to fix first”
  • Leave Custom CSS empty or at its default

Transparency works with no extra steps. The page has no background colour, so OBS alpha-composites it. Do not add a chroma key — it only soils the edges.

If the background turns black, another source (a black colour source or a background image) is usually sitting underneath.

After loading at 1920×1080, drag and resize it in OBS however you like. It is built for a full screen but does not break when scaled down.

On the Free plan, a small “livote.app” sits below the chart block. Paid plans do not show it. After you upgrade, reload the Browser source and it is gone.

Chart shape and placement

You choose the chart shape (bar, line or pie) and how it appears (band or full screen) per question. Select a question in the event editor and change it under “Look”.

Set the chart’s position and size by dragging it in the event editor’s demo. Keep it clear of your face on camera and of the game’s on-screen displays.

There is only one URL to place in OBS. Save a new shape or position and the overlay in OBS updates right away, with no reload.

The overlay language follows the event setting. To pin it for your viewers, add ?lang=ja / ?lang=en / ?lang=zh-TW / ?lang=ko to the end of the URL.

How viewers join

The join QR and URL show under the graph on the overlay (while standing by and while voting). Viewers on a TV or PC scan the QR; viewers watching on their phone type the URL or tap the link in chat.

  • Press “Copy for chat” in the console and post the join URL in chat. Pin it so late arrivals can join too
  • Read out the 8-digit join code. Opening the join URL up to /j shows a screen to type the code
  • If you place your own QR image, set “Join QR and URL” to Hide under “Shared settings” in the event editor

If you leave the Browser source in your usual scene, set the standby screen to “Show nothing” under “Shared settings”. Nothing appears on stream until you open voting.

Stream delay and closing votes

Viewers see your stream a few seconds to about 20 seconds after you do (15 seconds or more with YouTube’s “Normal latency”). Votes from phones arrive without that delay, so voting can already be closed on a phone while the stream still shows time left.

  • Give each question 60 seconds or more, so people who hear about it late still make it
  • In YouTube Studio’s stream settings, set the latency to “Low latency” or “Ultra-low latency”
  • Call out “10 seconds left” before you close

Opening a vote reaches viewers late too. Rather than closing right after you open, watch the chat react first; fewer votes get lost that way.

Handling the URL

This URL is read-only. You cannot close voting or change results from it.

Anyone who knows the URL can see the same screen, though, and it is stored in plain text on the streamer’s PC.

Do not show the OBS settings window (the one with the URL) on a screen share, a desktop capture or a screenshot.

If you think it leaked, duplicate the event and stream from the new one. Duplicating issues a fresh join code and a fresh OBS URL.

Show it in Zoom, Teams or Meet

Use the OBS virtual camera.

  • In OBS, build a scene that contains the Browser source above
  • Press “Start Virtual Camera” at the bottom right of OBS
  • In Zoom / Teams / Meet, set the camera to “OBS Virtual Camera”

The virtual camera is video, so transparency does not carry over. Zoom shows the OBS scene as-is, so build a scene with your own camera underneath.

The first time, the OS asks for permission to use the virtual camera. Clear it once beforehand, not on the day of the stream.

If Zoom’s mirror (flip horizontally) is on, text may appear reversed. Turn off “Mirror my video”.

Running a members-only stream

Livote cannot check whether someone is a YouTube member. Instead, you make the stream itself members-only.

  • Set the stream to YouTube members-only (or subscriber-only on Twitch)
  • Show the join QR and URL only on the stream. Do not post them on social media or in the description
  • Keep each question short from “open” to “close” (a few tens of seconds). Votes are only accepted during that window, so a leaked QR does little

One vote per person is decided per device. A private window or a second device lets someone vote a second time, so it is not suited to cases that need strictness, such as deciding prizes or rankings.

When it does not work

There is no error screen by design. If the connection drops, the last frame stays and a quiet “Reconnecting” appears in the corner.

  • Nothing shows — check that the URL matches, and that the event has not ended in the console
  • It appeared once and then froze — the screen holds the last state. If “Reconnecting” is showing, it recovers on its own; leave it alone
  • The overlay is blank every time you return — the two checkboxes under “Two settings to fix first” are still on. Turn them off
  • The background is black — another source is underneath. Do not add a chroma key
  • Text is hard to read — under “Shared settings” in the event editor, pick a colour for “Graph background” to put a panel behind the graph (new events start with a navy panel). If you keep it transparent, the bold Pop or the glowing Neon reads best
  • The numbers do not update — check that people are voting, and that the console state is “open”
  • Characters show as boxes (tofu) — OBS may be old. Use OBS 28.0 or later

OBS 28.0 or later is required. The bundled browser must be Chrome 103 or newer; on OBS 27.x the layout breaks or nothing shows.

Before you go live

  • Cleared the two checkboxes on the Browser source
  • Loaded it at 1920×1080
  • It composites transparently over the stream (no chroma key)
  • Switched scenes away and back twice, and the numbers are still there
  • Used “Rehearse” in the console to cast one test vote and saw the numbers move (ending the rehearsal clears the votes)
  • If you use the virtual camera, cleared the OS permission beforehand
  • Kept the OBS settings window (the one with the URL) off the stream and any screen share