09 June 2022

Extended Data Services

Added support of Extended Data Services data.

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>addMedia</action> <!-- required-->
    <source>[SourceFile]</source> <!-- required-->
    <format> <!-- required -->
        <output>[OutputFormat]</output> <!-- required -->
        <xds>
            <network_name>
                <name>[Name]</name>
                <rate>[InsertionRate]</rate>
            </network_name>
            <program_name>
                <name>[Name]</name>
                <rate>[InsertionRate]</rate>
            </program_name>
            <copy_and_redistribution_control>
                <cgms_a>[CGMSAOption]</cgms_a>
                <aps>[APSOption]</aps>
                <asb>[on|off]</asb>
                <rcd>[on|off]</rcd>
                <rate>[InsertionRate]</rate>
            </copy_and_redistribution_control>
            <content_advisory>
                <system>[MPA|USTVPG|CELR|CFLR]</system>
                <rating>[RatingOption]</rating>
                <content_flag>[ContentFlag1]</content_flag>
                <content_flag>[ContentFlag2]</content_flag>
                <!-- ... -->
                <content_flag>[ContentFlagN]</content_flag>
                <rate>[InsertionRate]</rate>
            </content_advisory>
        </xds>
    </format>
</query>
{
    "query": {
        "userid": "<<id>>", // required
        "userkey": "<<key>>", // required
        "action": "[Action]", // required
        "source": "[SourceFile]", // required
        "format": {
            "output": "[OutputFormat]", // required
            "xds": {
                "network_name": {
                    "name": "[Name]",
                    "rate": "[InsertionRate]"
                },
                "program_name": {
                    "name": "[Name]",
                    "rate": "[InsertionRate]"
                },
                "copy_and_redistribution_control": {
                    "cgms_a": "[CGMSAOption]",
                    "aps": "[APSOption]",
                    "asb": "[on|off]",
                    "rcd": "[on|off]",
                    "rate": "[InsertionRate]"
                },
                "content_advisory": {
                    "system": "[MPA|USTVPG|CELR|CFLR]",
                    "rating": "[RatingOption]",
                    "content_flag": [
                        "[ContentFlag1]",
                        "[ContentFlag2]",
                        // ...
                        "[ContentFlagN]"
                    ],
                    "rate": "[InsertionRate]"
                }
            }
        }
    }
}

Parameter

Description

Allowed Values

Default Value

Network name parameters

name

Network name

String which contain any characters from CEA-608-E character set. Value length should be between 2 and 32 characters included.
Special characters should be presented in CEA encoding.

none

rate

Insertion rate in seconds

Positive float number

none

Program name parameters

name

Program name

String which contain any characters from CEA-608-E character set. Value length should be between 2 and 32 characters included.
Special characters should be presented in CEA encoding.

none

rate

Insertion rate in seconds

Positive float number

none

Copy and redistribution control parameters

cgms_a

CGMS-A option

• copying_permitted – Copying is permitted
• no_more_copies – No more copies
• one_generation_may_be_made – One generation may be made
• no_copying_permitted – No copying is permitted

none

aps

APS option

• no_aps – No APS
• psp_on_split_burst_off – PSP On; Split Burst Off
• psp_on_2_line_split_burst – PSP On; 2 line Split Burst
• psp_on_4_line_split_burst –  PSP On; 4 line Split Burst

none

asb

ASB bit

on, off

none

rcd

RCD bit

on, off

none

rate

Insertion rate in seconds

Positive float number

none

Content advisory parameters

system

Rating system

MPA, USTVPG, CELR, CFLR

none

rating

Rating value

  • *MPA**:
    N/A, G, PG, PG-13, R, NC-17, X, Not Rated
  • *USTVPG**:
    None, TV-Y, TV-Y7, TV-G, TV-PG, TV-14, TV-MA
  • *CELR**:
    E, C, C8+, G, PG, 14+, 18+
  • *CFLR**:
    E, G, 8+, 13+, 16+, 18+

none

content_flag

List of USTVPG content flags

FV, V, S, L, D

Empty list

rate

Insertion rate in seconds

Positive float number

none

🚧

For content_flag

The <content_flag /> parameter is only applicable to USTVPG system.

CEA characters encoding table

CodeCharacterDescription
0x20 Space
0x21!Exclamation mark
0x22"Quotation mark
0x23#Pounds (number) sign
0x24$Dollar sign
0x25%Percentage sign
0x26&Ampersand
0x27'Apostrophe
0x28(Open parentheses
0x29)Close parentheses
0x2aáLower-case a with acute accent
0x2b+Plus sign
0x2c,Comma
0x2d-Minus (hyphen) sign
0x2e.Period
0x2f/Slash
0x300Zero
0x311One
0x322Two
0x333Three
0x344Four
0x355Five
0x366Six
0x377Seven
0x388Eight
0x399Nine
0x3a:Colon
0x3b;Semi-colon
0x3c<Less than sign
0x3d=Equal sign
0x3e>Greater than sign
0x3f?Question mark
0x40@At sign
0x41AUpper-case A
0x42BUpper-case B
0x43CUpper-case C
0x44DUpper-case D
0x45EUpper-case E
0x46FUpper-case F
0x47GUpper-case G
0x48HUpper-case H
0x49IUpper-case I
0x4aJUpper-case J
0x4bKUpper-case K
0x4cLUpper-case L
0x4dMUpper-case M
0x4eNUpper-case N
0x4fOUpper-case O
0x50PUpper-case P
0x51QUpper-case Q
0x52RUpper-case R
0x53SUpper-case S
0x54TUpper-case T
0x55UUpper-case U
0x56VUpper-case V
0x57WUpper-case W
0x58XUpper-case X
0x59YUpper-case Y
0x5aZUpper-case Z
0x5b[Open bracket
0x5céLower-case e with acute accent
0x5d]Close bracket
0x5eíLower-case i with acute accent
0x5fóLower-case o with acute accent
0x60úLower-case u with acute accent
0x61aLower-case a
0x62bLower-case b
0x63cLower-case c
0x64dLower-case d
0x65eLower-case e
0x66fLower-case f
0x67gLower-case g
0x68hLower-case h
0x69iLower-case i
0x6ajLower-case j
0x6bkLower-case k
0x6clLower-case l
0x6dmLower-case m
0x6enLower-case n
0x6foLower-case o
0x70pLower-case p
0x71qLower-case q
0x72rLower-case r
0x73sLower-case s
0x74tLower-case t
0x75uLower-case u
0x76vLower-case v
0x77wLower-case w
0x78xLower-case x
0x79yLower-case y
0x7azLower-case z
0x7bçLower-case c with cedilla
0x7c÷Division sign
0x7dÑUpper-case N with tilde
0x7eñLower-case n with tilde
0x7fSolid block

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

QC Validation of B-HLS Content Encryption Signature

Added support of B-HLS Content Encryption validation in QC DRM URI test.

<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>AddMedia</action> <!-- required-->
    <source>[SourceFile|SourcePlaylist]</source> <!-- required -->
    <format>
        <output>[qc_check|advanced_hls|advanced_dash|advanced_fmp4|fmp4_hls]</output> <!-- required -->
        <qc> 
            <qc_drm_uri>
                <value>[DRMType]</value>
                <severity>[fatal|warning]</severity>
                <bhls_signature>[BHLSSignature]</bhls_signature>
            </qc_drm_uri>
        </qc>
        <!-- format params -->
    </format>
</query>
{
    "query": {
        "userid": "<<id>>", // required
        "userkey": "<<key>>", // required
        "action": "AddMedia", // required
        "source": "[SourceFile|SourcePlaylist]", // required
        "format": {
            "output": "[qc_check|advanced_hls|advanced_dash|advanced_fmp4|fmp4_hls]", // required
            "qc": {
                "qc_drm_uri": {
                    "value": "[DRMType]",
                    "severity": "[fatal|warning]",
                    "bhls_signature": "[BHLSSignature]"
                }
            }
            // format params
        }
    }
}
<?xml version="1.0"?>
<query>
    <userid><<id>></userid> <!-- required-->
    <userkey><<key>></userkey> <!-- required-->
    <action>AddMedia</action> <!-- required-->
    <source>[SourceFile|SourcePlaylist]</source> <!-- required -->
    <format>
        <output>[qc_check|advanced_hls|advanced_dash|advanced_fmp4|fmp4_hls]</output> <!-- required -->
        <stream>
            <qc> 
                <qc_drm_uri>
                    <value>[DRMType]</value>
                    <severity>[fatal|warning]</severity>
                    <bhls_signature>[BHLSSignature]</bhls_signature>
                </qc_drm_uri>
            </qc>
            <!-- stream params -->
        </stream>
        <!-- format params -->
    </format>
</query>
{
    "query": {
        "userid": "<<id>>", // required
        "userkey": "<<key>>", // required
        "action": "AddMedia", // required
        "source": "[SourceFile|SourcePlaylist]", // required
        "format": {
            "output": "[qc_check|advanced_hls|advanced_dash|advanced_fmp4|fmp4_hls]", // required
            "stream": [{
                "qc": {
                    "qc_drm_uri": {
                        "value": "[DRMType]",
                        "severity": "[fatal|warning]",
                        "bhls_signature": "[BHLSSignature]"
                    }
                }
                // stream params
            }]
            // format params
        }
    }
}

Parameter

Description

Allowed Values

Default Value

value

DRM Service name

Comma separated list of DRM types where:
• widevine – Widevine DRM Packager
• fairplay* – FairPlay DRM
• access– FlashAccess DRM
• 
clearkey– ClearKey DRM
• **playready
 – PlayReady DRM
• bhls – B-HLS Content Encryption

none

bhls_signature

B-HLS Content Encryption Signature

Base64 encoded JSON data URI

none