Live Streaming
Last updated
Last updated
Our REST APIs use standard HTTP response codes, authentication, and verbs, and return JSON-encoded responses. Using these APIs, you will be able to start a live event and stream the content to our network, which will deliver that content to your audiences. Once a live entity is created, Uiza allocates dedicated resources and return an RTMP server to ingest and deliver your stream. The overall framework is articulated in the diagram below.
To start streaming, you need a live_entity
to be created with resources allocated, ready to broadcast the live signal. You could create a live entity by using Create A Live Entity API.
POST
https://api.uiza.sh/v1/live_entities
Defining correct region helps Uiza allocates the resource that is closest to the streamer location. This will minimize the risks of network issues and reduce the impact on your business. While we are adding more and more regions to Uiza Network, please check the current available regions below:
in-bangalore-1
(Bangalore - India)
in-mumbai-1
(Mumbai - India)
sg-singapore-1
(Singapore)
You will need the ingest.key
and ingest.url
to configure your broadcasting software. These 2 attributes could be retrieved by using the id
you get in the response in Step 1 for the Retrieve an entity API.
It is important that the value of the status
you get from the response is ready
, meaning that resources have been allocated and ready to ingest and broadcast your live feed. If the status
of your entity is init
, meaning that Uiza is still allocating resources for your entity and your live signal will not be able to be ingested and broadcasted during this process. Please, be patient and keep requesting for the entity's information until you get the ready
status. This process may take up to 1 minute.
GET
https://api.uiza.sh/v1/live_entities/:id
You could also set up a webhook to be notified automatically when your live_entity
is ready.
Most available broadcasting software uses RTMP protocol which requires a server's URL and a Stream Key to direct the live signal to the ingest servers. Use the ingest.url
and ingest.key
obtained at Step 2 to configure your broadcasting software in their Settings. The following are the 2 most popular broadcasting software that we strongly recommend.
OBS Studio (Available for Mac, Windows, and Linux) - Get it here.
Streamlabs (The best live streaming app for iPhone & Android) - Get it here.
Once you have configured the ingest.url
and ingest.key
, you could start streaming right away.
The playback links (hls
for HLS streaming and mpd
for MPEG-dash streaming) of your live entity is the value of playback
returned in Step 2. With the HLS link obtained, you could play your live stream by these methods:
Configure the HLS link to Player SDK.
Paste the HLS link to Safari and play directly with Apple's native player.
Install the HLS extension and play it on Google Chrome browser.
The mpd
video format could be played natively by Microsoft Edge.
Name | Type | Description |
---|---|---|
Name | Type | Description |
---|---|---|
By following these 4 steps, you will be able to live stream your event using Uiza. We understand that this beta version of ours requires quite some amount of manual involvement, but we are working hard to deliver a more delightful experience with more APIs and automation. If you are ready to live-stream your first event, let's move on to the API Reference.
name
string
The name of your live entity.
region
string
Choose the region closest to the location of your streamer.
description
string
The description of your live entity (maximum is 1000 characters)
dvr
boolean
Indicates whether Digital Video Record (DVR) is enabled for the live_entity
. Set as true
to enable and as false
to disable. The default value is false.
encode
boolean
Indicates whether encoding mode is enabled for the live_entity
. Set as true
to enable and as false
to disable. The default value is false, when the encode is true, it required a preset_id
.
preset_id
string
The identifier of the video_preset
to be applied when encoding your signal.
relay
array
A list of ingest servers to be relayed. Contains url
and key
and name
(optional) in each ingest server.
id
string
The unique identifier of a live entity to be retrieved information