B-HLS Content Encryption

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>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddBhlsCert</action> <!-- required-->
    <x509>[X509Certificate]</x509> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "AddBhlsCert", // required
        "x509": "[X509Certificate]", // required
    }
}
ParameterDescriptionAllowed ValuesDefault Value
x509Certificate datax509 Certificate datanone

List Added Certificates Key Identifiers

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>ListBhlsCert</action> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "ListBhlsCert" // required
    }
}

Delete Certificate

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>DeleteBhlsCert</action> <!-- required-->
    <subject_key_identifier>[KeyID]</subject_key_identifier> <!-- required-->
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "DeleteBhlsCert", // required
        "subject_key_identifier": "[KeyID]" // required
    }
}
ParameterDescriptionAllowed ValuesDefault Value
subject_key_identifierCertificate identifier that might be fetched with ListBhlsCert requestStringnone

Format Parameters

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</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": "[UserID]", // required
        "userkey": "[UserKey]", // 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
        }
    }
}
ParameterDescriptionAllowed ValuesDefault Value
bhls_drmApply B-HLS Content Encryptionyes, nono
Format Parameters---
Stream Manifest Parameters---
bhls_drmApply B-HLS Content Encryption for manifestyes, nono
bhls_drm_certificatesB-HLS Content Encryption Certificates--
subject_key_identifierCertificate IdentifierStringnone