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. | 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. | 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 | none |
aps | APS option | • no_aps – No APS | 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 |
| 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
Code | Character | Description |
---|---|---|
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 |
0x30 | 0 | Zero |
0x31 | 1 | One |
0x32 | 2 | Two |
0x33 | 3 | Three |
0x34 | 4 | Four |
0x35 | 5 | Five |
0x36 | 6 | Six |
0x37 | 7 | Seven |
0x38 | 8 | Eight |
0x39 | 9 | Nine |
0x3a | : | Colon |
0x3b | ; | Semi-colon |
0x3c | < | Less than sign |
0x3d | = | Equal sign |
0x3e | > | Greater than sign |
0x3f | ? | Question mark |
0x40 | @ | At sign |
0x41 | A | Upper-case A |
0x42 | B | Upper-case B |
0x43 | C | Upper-case C |
0x44 | D | Upper-case D |
0x45 | E | Upper-case E |
0x46 | F | Upper-case F |
0x47 | G | Upper-case G |
0x48 | H | Upper-case H |
0x49 | I | Upper-case I |
0x4a | J | Upper-case J |
0x4b | K | Upper-case K |
0x4c | L | Upper-case L |
0x4d | M | Upper-case M |
0x4e | N | Upper-case N |
0x4f | O | Upper-case O |
0x50 | P | Upper-case P |
0x51 | Q | Upper-case Q |
0x52 | R | Upper-case R |
0x53 | S | Upper-case S |
0x54 | T | Upper-case T |
0x55 | U | Upper-case U |
0x56 | V | Upper-case V |
0x57 | W | Upper-case W |
0x58 | X | Upper-case X |
0x59 | Y | Upper-case Y |
0x5a | Z | Upper-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 |
0x61 | a | Lower-case a |
0x62 | b | Lower-case b |
0x63 | c | Lower-case c |
0x64 | d | Lower-case d |
0x65 | e | Lower-case e |
0x66 | f | Lower-case f |
0x67 | g | Lower-case g |
0x68 | h | Lower-case h |
0x69 | i | Lower-case i |
0x6a | j | Lower-case j |
0x6b | k | Lower-case k |
0x6c | l | Lower-case l |
0x6d | m | Lower-case m |
0x6e | n | Lower-case n |
0x6f | o | Lower-case o |
0x70 | p | Lower-case p |
0x71 | q | Lower-case q |
0x72 | r | Lower-case r |
0x73 | s | Lower-case s |
0x74 | t | Lower-case t |
0x75 | u | Lower-case u |
0x76 | v | Lower-case v |
0x77 | w | Lower-case w |
0x78 | x | Lower-case x |
0x79 | y | Lower-case y |
0x7a | z | Lower-case z |
0x7b | ç | Lower-case c with cedilla |
0x7c | ÷ | Division sign |
0x7d | Ñ | Upper-case N with tilde |
0x7e | ñ | Lower-case n with tilde |
0x7f | ■ | Solid 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: | none |
bhls_signature | B-HLS Content Encryption Signature | Base64 encoded JSON data URI | none |