Specific B-HLS content encryption for harmonic XOS devices for satellite or IP based delivery
Key Exchange
To use B-HLS content encryption you need to add specific encryption certificates that will be stored on our side and later you will be able to use these certificates in the output DRM settings.
Add Certificate
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required-->
<userkey><<key>></userkey> <!-- required-->
<action>AddBhlsCert</action> <!-- required-->
<x509>[X509Certificate]</x509> <!-- required-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "AddBhlsCert", // required
"x509": "[X509Certificate]", // required
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
x509 | Certificate data | x509 Certificate data | none |
List Added Certificates Key Identifiers
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required-->
<userkey><<key>></userkey> <!-- required-->
<action>ListBhlsCert</action> <!-- required-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "ListBhlsCert" // required
}
}
Delete Certificate
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required-->
<userkey><<key>></userkey> <!-- required-->
<action>DeleteBhlsCert</action> <!-- required-->
<subject_key_identifier>[KeyID]</subject_key_identifier> <!-- required-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "DeleteBhlsCert", // required
"subject_key_identifier": "[KeyID]" // required
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
subject_key_identifier | Certificate identifier that might be fetched with ListBhlsCert request | String | none |
Format Parameters
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required-->
<userkey><<key>></userkey> <!-- required-->
<action>[Action]</action> <!-- required-->
<source>[SourceFile]</source> <!-- required-->
<format>
<output>[advanced_hls|fmp4_hls]</output> <!-- required-->
<destination>[DestinationURL]</destination> <!-- required-->
<stream>
<!-- Manifests fields -->
<manifest>
<basename>[BaseName]</basename> <!-- required-->
<bhls_drm>[yes|no]</bhls_drm>
<!-- manifest params -->
</manifest>
<!-- Multiple manifests may be included -->
<manifest>
<!-- manifest params -->
</manifest>
<!-- stream params -->
</stream>
<!-- Multiple stream params may be included in advanced_hls output format -->
<!-- Maximum number of available streams is 15 -->
<stream>
<!-- stream params -->
</stream>
<bhls_drm>[yes|no]</bhls_drm>
<bhls_drm_certificates>
<subject_key_identifier>[KeyID_1]</subject_key_identifier>
<subject_key_identifier>[KeyID_2]</subject_key_identifier>
<!-- ... -->
<subject_key_identifier>[KeyID_N]</subject_key_identifier>
</bhls_drm_certificates>
<!-- format params -->
</format>
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "[Action]", // required
"source": "[SourceFile]", // required
"format": {
"output": "[advanced_hls|fmp4_hls]", // required
"destination": "[DestinationURL]", // required
"stream": [
{
"manifest": [
{
"basename": "[BaseName]",
"bhls_drm": "[yes|no]"
},
{
// manifest params
}
]
// stream params
},
{
// stream params
}
],
"bhls_drm": "[yes|no]",
"bhls_drm_certificates": {
"subject_key_identifier": [
"[KeyID_1]",
"[KeyID_2]",
// ...
"[KeyID_N]"
]
}
// format params
}
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
Format Parameters | |||
bhls_drm | Apply B-HLS Content Encryption | yes, no | no |
bhls_drm_certificates | B-HLS Content Encryption Certificates | ||
subject_key_identifier | Certificate Identifier | String | none |
Stream Manifest Parameters | |||
bhls_drm | Apply B-HLS Content Encryption for manifest | yes, no | no |