Create a Livestream
You can use the following API to create a Livestream with the desired request body.
POST /bv/cms/v1/lives
{
"live":{
"name":"string",
"custom_id":"string",
"type":"LIVE_TYPE_LIVE",
"source":{
"type":"LIVE_SOURCE_TYPE_LIBRARY",
"library":{
"id":"string"
}
},
"broadcast_mode":"BROADCAST_MODE_TRADITIONAL_LIVE",
"scheduled_at":"2019-08-24T14:15:22Z",
"resolution":"LIVE_RESOLUTION_HD",
"live_vod":{
"source":"LIVE_VOD_SOURCE_UNSPECIFIED",
"replace":{
"id":"string"
},
"playback":{
"id":"string"
},
"started_at":"2019-08-24T14:15:22Z",
"ended_at":"2019-08-24T14:15:22Z"
},
"security":{
"privacy":{
"type":"SECURITY_PRIVACY_TYPE_PUBLIC",
"token":{
"device_limit":0
}
},
"watermark":{
"enabled":true,
"type":"WATERMARK_TYPE_IMAGE",
"position":"WATERMARK_POSITION_TOP_RIGHT",
"image":{
"library_id":"string"
}
},
"domain_control":{
"enabled":true,
"domains":[
"string"
]
},
"protection":{
"type":"PROTECTION_TYPE_UNSPECIFIED"
},
"geo_control":[
"string"
]
},
"ull_enabled":false,
"cover_images":{
"ready_to_start":{
"type":"COVER_IMAGE_TYPE_UNSPECIFIED",
"auto":{
},
"customize":{
"library_id":"string"
}
},
"preview":{
"type":"COVER_IMAGE_TYPE_UNSPECIFIED",
"auto":{
},
"customize":{
"library_id":"string"
}
},
"player_pause":{
"type":"COVER_IMAGE_TYPE_UNSPECIFIED",
"auto":{
},
"customize":{
"library_id":"string"
}
},
"signal_interruption":{
"type":"COVER_IMAGE_TYPE_UNSPECIFIED",
"auto":{
},
"customize":{
"library_id":"string"
}
},
"end":{
"type":"COVER_IMAGE_TYPE_UNSPECIFIED",
"auto":{
},
"customize":{
"library_id":"string"
}
},
"close":{
"type":"COVER_IMAGE_TYPE_UNSPECIFIED",
"auto":{
},
"customize":{
"library_id":"string"
}
},
"current":{
"type":"COVER_IMAGE_TYPE_UNSPECIFIED",
"auto":{
},
"customize":{
"library_id":"string"
}
}
},
"metadata":{
"short_description":"string",
"long_description":"string"
},
"showroom":{
"model":{
},
"libraries":[
{
"id":"string"
}
]
},
"interaction":{
"poll_enabled":false,
"chatroom":{
"live":{
"enabled":false,
"theme":"CHATROOM_THEME_UNSPECIFIED"
},
"vod":{
"enabled":false,
"theme":"CHATROOM_THEME_UNSPECIFIED"
}
}
},
"ingestion_types":"LIVE_STREAM_INGEST_TYPE_RTMP"
}
}
The response will contain the details of the newly created event, including its id. Theid
field can be used to control the Livestream.
{
"live":{
"id":"string",
"name":"string"
}
}
The followings introduce each important attribute in more detail:
Type
BlendVision provides two options for Livestream: Live (LIVE_TYPE_LIVE
) and Simulive (LIVE_TYPE_SIMULIVE
). For Simulive, you can select an uploaded video as the streaming source. You can find more details here.
Broadcast mode
BlendVision offers three broadcast modes for Livestream:
1. Traditional Live
Only broadcasts the current live stream, with no progress bar for users to operate.
2. DVR (start-over)
Displays the start and latest stream on the progress bar, allowing users to drag it to watch live from the start.
3. Playback
Displays the start and end on the progress bar, enabling users to see the overall length and drag the progress bar to watch what they want.
These modes are only available on certain Livestream types:
- Live: DVR (start-over) and Traditional Live
- Simulive: DVR (start-over), Traditional Live, and Playback mode.
To specify the broadcast mode, you can set thebroadcast_mode
field to eitherBROADCAST_MODE_TRADITIONAL_LIVE
,BROADCAST_MODE_PLAYBACK
, orBROADCAST_MODE_DVR
.
Resolution
To specify the resolution, you can set theresolution
field to eitherLIVE_RESOLUTION_HD
,LIVE_RESOLUTION_FHD
, orLIVE_RESOLUTION_4K
. Note the higher resolution options come at a higher cost.
Security
- Privacy
Manage the visibility of your content by specifying the regions or audiences authorized to access it, ensuring compliance with licensing agreements and target audience restrictions. For more information about privacy, see The Visibility of Content.
- Watermark
Overlay watermarks on your videos to claim copyright, deter piracy, and identify unauthorized usage, providing additional content protection. You can enable watermarking with a specified type and position. For more information about enabling a watermark, see Watermarks.
- Domain Control
Limit content delivery to authorized domains, ensuring that your content is only accessible on approved websites and platforms, reducing the risk of unauthorized distribution. For more information about enabling domain control, see Domain Control.
- Geo control
Restrict access to your content based on geographical regions, allowing you to target specific markets and comply with content distribution regulations. For more information about enabling geo control, see Geo-Region Control.
- DRM
By implementing DRM technologies such as FairPlay, PlayReady, and Widevine, you can encrypt your content and control its playback, preventing unauthorized copying and piracy. For more information about enabling DRM to protect your content, see Digital Rights Management.
For more information about security, see Security.
scheduled_at
The Livestream will be launched instantly if the scheduled_at
parameter is not set. The scheduled_at
parameter is used to specify a specific date and time at which the Livestream should be launched. To set the scheduled_at
parameter, you can use theISO 8601
format to specify the date and time. Here is an example of scheduling a Livestream to launch on May 1, 2023, at 10:00 AM UTC:
"scheduled_at": "2019-08-24T14:15:22Z"
Ingestion Types
Currently, we offer two methods to ingest live stream data.
LIVE_STREAM_INGEST_TYPE_RTMP
: Real-Time Messaging ProtocolLIVE_STREAM_INGEST_TYPE_WHIP
: WebRTC HTTP Ingest Protocol
By default, the ingestion method is RTMP, but you can specify the method in the ingest_types
field.