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><<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