Viewer experience and accessing the replay
When a viewer opens a broadcast's public link (`/live/b/<slug>`) or hits a Live Stream block embedded on a Builder site, they see the broadcast play in their browser with no signup, no account, no Turtini login. This article walks through what the viewer experiences before, during, and after the broadcast.
Before the broadcast goes live:
- Page shows the broadcast's title, the org's name, and a "Hasn't started yet" panel.
- If a scheduled start time was set on the broadcast, a countdown shows.
- Optional: viewers can enter their email to get a "we're live" notification (org has to enable this in the broadcast's settings; an email notification fires via Resend the moment the broadcast flips to "live").
During the broadcast:
- Turtini's built-in player auto-starts (muted, per browser autoplay rules) as soon as the broadcast is live. Tap once to unmute.
- **Mobile** — responsive layout fills the screen; tap the fullscreen button.
- **Desktop** — embedded player at the page's content width; fullscreen and picture-in-picture buttons in the control bar.
- **Picture-in-picture** — pop the video out into a floating window so a viewer can keep watching while they scroll or work in another tab.
- **Latency** — typical glass-to-glass latency is 8-15 seconds. Comparable to YouTube Live; faster than Facebook Live; slower than dedicated low-latency platforms (which cost 10× more).
- **Adaptive bitrate** — viewers on a 4G phone get a lower-resolution feed automatically; viewers on a fast home connection get up to 1080p.
- **DVR / rewind + catch up to live** — viewers can rewind within the recorded portion of the current broadcast without leaving the page. The scrubber spans the rewindable window; **hovering it shows a thumbnail preview** of that moment so you can find your spot ("I missed what the speaker just said"), and the **● LIVE / Go live** button jumps straight back to the live edge.
After the broadcast ends:
- The org's broadcast page transitions from live mode to recording mode.
- If "Publish recording" is enabled on the broadcast (default on), the recording auto-publishes to the same URL within 30-60 seconds of "End broadcast." Viewers who arrive after the end see the recording.
- If "Publish recording" is off, the page shows "Broadcast ended" instead. The recording is still stored — admins can publish later via the broadcast's admin view.
Replay analytics:
- Each replay view is logged with viewer IP, geo-location (city level), device type, watch duration, and drop-off timestamp.
- Aggregated analytics show on the broadcast's Performance tab (in the org admin's /live).
- No personally identifying viewer data is captured (no account, no email by default).
Embedding the recording on a different page:
After a broadcast ends with a published recording, the same Builder Live Stream block continues to serve the recording. Or you can move the recording to a different page (e.g. an "On Demand" archive page) using the same block with a fresh slug pointing at the recording.
Captions and accessibility:
- Auto-captions are off by default; can be enabled per-broadcast (uses Cloudflare's automatic transcription on the recording — not live captions yet).
- Once enabled, the recording's captions are searchable and download as VTT.
- Closed-caption (CC) button appears on the player when captions are available.
Permissions:
- **Public** (default) — anyone with the link can watch.
- **Members-only** — if your org has the Members module (memberships, paid subscribers, ticketed access), broadcasts can be gated to active members. Viewers see a "Sign in to watch" panel and authenticate via the platform's standard login.
- **Pay-per-view** (coming soon) — gate replay access behind a one-time purchase via Stripe.
Cost breakdown:
Viewer-side delivery is part of the broadcast's overall chargeback (`streamedMinutes × $0.005 × 1.15` lands on the org's monthly usage). Higher viewer count and longer broadcasts cost more; the platform's pricing is transparent in the org's Accounting → Usage tab.