Skip to main content

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. Theidfield 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_modefield to eitherBROADCAST_MODE_TRADITIONAL_LIVE,BROADCAST_MODE_PLAYBACK, orBROADCAST_MODE_DVR.

Resolution

To specify the resolution, you can set theresolutionfield 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 8601format 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 Protocol
  • LIVE_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.