Live — live.onoots.com
Live is the ecosystem’s live-event platform: webinars, demos, training, and internal sessions. An event has a stage for speakers, an audience watching over streaming, a Q&A panel with upvotes, simulcast to social platforms, and a recording available once it ends.
Anatomy of an event
| Field | Values | What it means |
|---|---|---|
| Status | draft → live → ended | Draft (not started) · live · finished |
| Visibility | org · registered | Organization only · anyone with the link, after registering |
| Host | user | Who created it; can manage it and go on stage |
| Invite link | code | The event’s public registration link |
Status transitions are one-way and enforced by the system: an event can’t go back from
ended to live, and you can’t delete an organization or user that has a live event —
end it first.
Host flow
Create the event
Title, scheduled date, and visibility. It starts as draft and gets its invite link.
(Optional) Add simulcast destinations
Up to 5 destinations per event — YouTube, Twitch, X, or any RTMP endpoint of your own. You paste the stream key that platform gives you; Onoots stores it encrypted and never shows it again. Onoots doesn’t create or manage the broadcast on the destination: you do that in their own dashboard.
Start the event
On start, the event flips to live, the speakers’ room opens, and the recording/broadcast
launches toward the audience and any configured simulcast destinations.
Broadcast from the stage
The stage (/events/{id}/stage) is the speakers’ low-latency room: camera, microphone, and
screen share. Only event managers get in.
Moderate the Q&A
From the stage you see the real-time question panel sorted by upvotes: mark questions as answered, hide them, or delete them.
End the event
The event flips to ended, the broadcast stops, and the recording closes. From then on the
same recording is available as video on demand.
Audience flow
Register
Through the invite link. If the event’s visibility is org, belonging to the organization
is enough.
Watch
The audience watches over HLS streaming, not the speakers’ room — that’s what lets it scale to large audiences without degrading stage quality. Video access renews continuously while you watch; if you lose access to the event, playback cuts off.
Ask and upvote
Any attendee can submit questions and upvote others’. The most-voted rise to the top. You can edit or delete your own question while it’s still open.
Watch the recording
Once the event ends, anyone who had access can watch the full recording, with free seeking.
Simulcast
A single broadcast process feeds both the audience stream and N RTMP outputs. Worth knowing:
- Presets for YouTube and Twitch (Onoots supplies the ingest URL); for X or your own destinations you must also paste your ingest URL.
- The stream key is write-only: the API returns the destination list without the key. It is only decrypted when the broadcast starts.
- Changing destinations mid-event does not restart the push: changes apply at the next broadcast start.
- If one destination fails, it’s skipped without taking down the rest.
If destination encryption isn’t configured in the environment, adding a destination returns 503 and simulcast is disabled — the rest of the event (stage, audience, Q&A, registration) keeps working normally. That isolated degradation is by design.
API
Under live.onoots.com, session required. {id} is the event id.
Events
| Method | Route | What it does |
|---|---|---|
GET · POST | /api/events | Lists visible events / creates one |
GET · PATCH | /api/events/{id} | Detail / edit (title, date, visibility) |
POST | /api/events/{id}/start | Flips the event to live and starts the broadcast |
POST | /api/events/{id}/end | Ends the event and closes the recording |
POST | /api/events/{id}/egress | Retries the broadcast if it failed to start |
Registration
| Method | Route | What it does |
|---|---|---|
POST · DELETE | /api/events/{id}/register | Register / un-register |
GET | /api/events/{id}/registrations | Registrant list (manager) |
DELETE | /api/events/{id}/registrations/{userId} | Revoke a registration (manager) |
Q&A
| Method | Route | What it does |
|---|---|---|
GET · POST | /api/events/{id}/questions | List (with your votes) / submit a question |
PATCH · DELETE | /api/events/{id}/questions/{qid} | Moderate (open/answered/hidden) / delete |
POST · DELETE | /api/events/{id}/questions/{qid}/vote | Upvote / remove upvote |
Simulcast and playback
| Method | Route | What it does |
|---|---|---|
GET · POST | /api/events/{id}/simulcast | Lists destinations (no key) / adds one |
DELETE | /api/events/{id}/simulcast/{destId} | Removes a destination |
POST | /api/viewer/heartbeat | Renews video access and meters usage |
POST | /api/viewer/vod | Issues recording access (ended events only) |
Usage and quotas
Live draws on its own participant-minute pool (speakers + audience), separate from the AI token pool. You see it in Platform → Limits, under the “Live events” card.
| Plan | Participant-minutes / month |
|---|---|
| Starter | 2,000 |
| Pro | 500,000 |
| Max | 2,000,000 |
| Enterprise | 5,000,000 |
Design: why it scales
- Two separate paths — speakers use a low-latency room; the audience, streaming. A large audience never competes with stage quality.
- Q&A over broadcast, not the database — updates fan out over a private event channel instead of every viewer listening to table changes: with hundreds of attendees upvoting, that’s exactly the event that would fall over.
- Votes are recounted, not incremented — under races or redelivery the count converges on the true value, with no lost or double votes.
- Immutable authorship — a question can’t change event or author, not even by a moderator.
- Isolated degradation — if simulcast fails the event continues; if the recording fails the audience sees “unavailable” instead of an error.
The recording has a retention window configured in storage. Past that window, video on demand gracefully stops being available — for permanent archiving, download the recording first.
Links
- Live: live.onoots.com
- On-demand content: Academy
- Plans and minutes: Platform