Skip to content

How Vabu Streams works ​

Vabu Streams puts live video and replays in your own app. You keep your login, your payments and your player page. Vabu takes the video side: it receives the broadcast, prepares it for weak phones, hands out protected playback links, counts viewer sessions and tells you what happens.

It suits a nightlife app that streams a DJ set, a church that streams its services, a league that sells match passes and an events company that adds a stream to a ticket.

What you do and what Vabu does ​

YouVabu
Keep your app, your login and your checkoutGives each venue a stable stream to send video to (RTMP and SRT, WHIP where the network offers it)
Make one call when a fan has paidChecks that call every time someone presses play
Show the video on your own pagePrepares video in several qualities so it plays on weak phones
Listen for events and update your own recordsIssues playback links that stop working when access ends
Decide the price and who gets inLimits devices, keeps replays and cuts clips, and sends an event for every change

One API, with the video network behind it ​

You call one API. It does not matter which network carries the video: every live stream and every asset has a read-only provider field that tells you, and your code never needs to read it. Test mode uses a simulated network that cannot bill.

Right now each account runs on one network that Vabu picks for it. A live stream can also have a second network on standby: see Staying on air. Choosing a network for your audience's region, with Nairobi first, is listed on What's coming. Read delivery networks and capabilities to see how to write code that keeps working when more networks arrive.

A night, step by step ​

  1. A venue points its encoder at the live stream's ingest URL. The URL and the key stay the same for every broadcast.
  2. A fan pays in your own checkout.
  3. Your server tells Vabu the fan may watch: POST /v1/access/entitlements. See paid access.
  4. The fan opens your page. Your server signs a short customer token for them. See customer tokens.
  5. The browser asks Vabu to open a viewing session, using a publishable key and the customer token. Vabu checks the access and the device limit, and returns a protected playback link. See playback and sessions.
  6. The player plays the link. A heartbeat every 30 seconds keeps the session alive and returns a fresh link.
  7. Your server gets events as the stream goes live, drops and ends. See stream events.

Why use Vabu Streams ​

Here is what you get next to building the pipes yourself, and next to wiring one video provider straight into your app.

Staying on air ​

Built by yourself, the video travels one path that you watch through the show. With one provider you have a stronger pipe, and you still handle reconnects and alerts. With Vabu Streams each stream has a reconnect window, a backup ingest address and an event the moment the encoder drops, so your app can react.

Viewers on weak data ​

A pipeline you build is often one quality, and a viewer on a weak phone sees a spinner. A provider gives you a quality ladder. Vabu Streams gives you the ladder too, and audio-only streams for audiences who need the smallest data use.

With your own pipeline the video is often a file link that anyone can pass on. A provider gives you signed links, and you write the access rules around them. With Vabu Streams the rules come with it: entitlements, device limits and links that expire, so a shared link stops working within minutes.

Data ​

Your own pipeline leaves you server logs. A provider gives you video numbers that know nothing about your sales. Vabu Streams sends every grant, session and stream change to your server as an event, tied to your own customer ids.

Your team's time ​

Building it yourself means running video at night. Wiring a provider means an integration, plus everything around the video. With Vabu Streams it is one API and a short list of calls.

What you still build ​

Vabu does not replace your product. You build your login, your checkout and the page that holds the video. You choose your player: any player that plays HLS works, and the quickstart uses hls.js.

Where to go next ​

Vabu OS documentation