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]"
                }
            }
        }
    }
}
ParameterDescriptionAllowed ValuesDefault Value
Network name parameters
nameNetwork nameString 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
rateInsertion rate in secondsPositive float numbernone
Program name parameters
nameProgram nameString 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
rateInsertion rate in secondsPositive float numbernone
Copy and redistribution control parameters
cgms_aCGMS-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
apsAPS 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
asbASB biton, offnone
rcdRCD biton, offnone
rateInsertion rate in secondsPositive float numbernone
Content advisory parameters
systemRating systemMPA, USTVPG, CELR, CFLRnone
ratingRating valueMPA:
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_flagList of USTVPG content flagsFV, V, S, L, DEmpty list
rateInsertion rate in secondsPositive float numbernone

🚧

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
    }
}
ParameterDescriptionAllowed ValuesDefault Value
x509Certificate datax509 Certificate datanone

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
    }
}
ParameterDescriptionAllowed ValuesDefault Value
subject_key_identifierCertificate identifier that might be fetched with ListBhlsCert requestStringnone

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
        }
    }
}
ParameterDescriptionAllowed ValuesDefault Value
Format Parameters
bhls_drmApply B-HLS Content Encryptionyes, nono
bhls_drm_certificatesB-HLS Content Encryption Certificates
subject_key_identifierCertificate IdentifierStringnone
Stream Manifest Parameters
bhls_drmApply B-HLS Content Encryption for manifestyes, nono

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
        }
    }
}
ParameterDescriptionAllowed ValuesDefault Value
valueDRM Service nameComma 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_signatureB-HLS Content Encryption SignatureBase64 encoded JSON data URInone