29 December 2022
almost 2 years ago by Encoding.com Product Team #2
Qualify QC Layout management and identifier change
- Changed Qualify QC templates identifier param from name to id.
- Added <project /> parameter for Qualify QC templates.
- Added package and audio layouts management.
Template name as identifier
Prior to 7.22 release Qualify Template parameter name used as identifier, after 7.22 release template identifier changed to the unique GUID.
Template name still can be used as identifier but it's not recommended because now name parameter isn't unique e.g. it will address the first template with provided name.
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required-->
<userkey><<key>></userkey> <!-- required-->
<action>AddMedia</action>
<source>[SourceFile|SourcePlaylist]</source><!-- required -->
<format>
<output>[qc_check|mp4|cablelabs_mpegts|mainconcept_mxf|mxf_op1a]</output><!-- required -->
<qc>
<qc_qualify_validation>
<template_id>[TemplateGUID]</template_id><!-- required -->
<template>[TemplateName]</template><!-- optional, deprecated -->
</qc_qualify_validation>
</qc>
<!-- format params -->
</format>
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "AddMedia", // required
"source": "[SourceFile|SourcePlaylist]", // required
"format": {
"output": "[qc_check|mp4|cablelabs_mpegts|mainconcept_mxf|mxf_op1a]", // required
"qc": {
"qc_qualify_validation": {
"template_id": "[TemplateGUID]", // required
"template": "[TemplateName]" // optional, deprecated
}
}
// format params
}
}
}
Parameter | Decription | Allowed Values | Default Value |
---|---|---|---|
template_id | Qualify Template GUID. | String | none |
template | Qualify Template name. Deprected | String | none |
Qualify Report
Link to Qualify Report can be found in GetStatus response
<?xml version="1.0"?>
<report>
<mediaID>[MediaID]</mediaID>
<status>[QCStatus]</status>
<externalReports>
<externalReport>
<testName>qc_qualify_validation</testName>
<fileName>[FileName]</fileName>
<ReportLinkJSON>[QualifyJSONReportURL]</ReportLinkJSON>
<Result>[Success|Failure]</Result>
</externalReport>
</externalReports>
<!-- report fields -->
</report>
{
"report": {
"mediaID": "[MediaID]",
"status": "[QCStatus]",
"externalReports": {
"externalReport": [
{
"testName": "qc_qualify_validation",
"fileName": "[FileName]",
"ReportLinkJSON": "[QualifyJSONReportURL]",
"Result": "[Success|Failure]"
}
]
}
// report fields
}
}
Qualify Templates Management
Create Template
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>SetQualifyTemplate</action> <!-- required-->
<template><![CDATA[
{
"id": "[TemplateGUID]", // optional
"created_at": "[TemplateCreatedDate]",
"updated_at": "[TemplateUpdatedDate]",
"name": "[TemplateName]",
"tests": {
[TestsList]
},
"package_layout": {
"id": "[LayoutID]" // optional, new layout will be added if not provided
// package_layout params
},
"audio_layout": {
"id": "[LayoutID]" // optional, new layout will be added if not provided
// audio_layout params
}
}
]]></template> <!-- required-->
<project>[TemplateProject]</project>
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "SetQualifyTemplate", // required
"template": {
"id": "[TemplateGUID]", // optional
"created_at": "[TemplateCreatedDate]",
"updated_at": "[TemplateUpdatedDate]",
"name": "[TemplateName]",
"tests": {
[TestsList]
},
"package_layout": {
"id": "[LayoutID]" // optional, new layout will be added if not provided
// package_layout params
},
"audio_layout": {
"id": "[LayoutID]" // optional, new layout will be added if not provided
// audio_layout params
}
}, // required
"project": "[TemplateProject]"
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
template | Qualify template | JSON string for XML request and JSON object for JSON request. For XML request it should be wrapped in <![CDATA[]]> tage. | none |
project | Project name (e.g category) | String | none |
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>setqualifytemplate</action>
<status>Success</status>
<id>[TemplateGUID]</id>
<name>[TemplateName]</name>
<template>added</template>
</response>
{
"response": {
"action": "setqualifytemplate",
"status": "Success",
"id": "[TemplateGUID]",
"name": "[TemplateName]",
"template": "added"
}
}
List added templates
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>ListQualifyTemplates</action> <!-- required-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "ListQualifyTemplates" // required
}
}
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>listqualifytemplates</action>
<status>Success</status>
<result>
<user_id><<id>></user_id>
<templates>
<template>
<id>[TemplateGUID_1]</id>
<name>[TemplateName_1]</name>
</template>
<template>
<id>[TemplateGUID_2]</id>
<name>[TemplateName_2]</name>
</template>
<!-- ... -->
<template>
<id>[TemplateGUID_N]</id>
<name>[TemplateName_N]</name>
</template>
</templates>
</result>
</response>
{
"response": {
"action": "listqualifytemplates",
"status": "Success",
"result": {
"user_id": "<<id>>",
"templates": [
"template": [
{
"id": "[TemplateGUID_1]",
"name": "[TemplateName_1]"
},
{
"id": "[TemplateGUID_2]",
"name": "[TemplateName_2]"
},
// ...
{
"id": "[TemplateGUID_N]",
"name": "[TemplateName_N]"
},
]
]
}
}
}
Update Template
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>UpdateQualifyTemplate</action> <!-- required-->
<template><![CDATA[
{
"id": "[TemplateGUID]", // required
"created_at": "[TemplateCreatedDate]",
"updated_at": "[TemplateUpdatedDate]",
"name": "[TemplateName]",
"tests": {
[TestsList]
},
"package_layout": {
"id": "[LayoutID]" // optional, new layout will be added if not provided
// package_layout params
},
"audio_layout": {
"id": "[LayoutID]" // optional, new layout will be added if not provided
// audio_layout params
}
}
]]></template> <!-- required-->
<project>[TemplateProject]</project>
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "UpdateQualifyTemplate", // required
"template": {
"id": "[TemplateGUID]", // required
"created_at": "[TemplateCreatedDate]",
"updated_at": "[TemplateUpdatedDate]",
"name": "[TemplateName]",
"tests": {
[TestsList]
},
"package_layout": {
"id": "[LayoutID]" // optional, new layout will be added if not provided
// package_layout params
},
"audio_layout": {
"id": "[LayoutID]" // optional, new layout will be added if not provided
// audio_layout params
}
}, // required
"project": "[TemplateProject]"
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
template | Qualify template | JSON string for XML request and JSON object for JSON request. For XML request it should be wrapped in <![CDATA[]]> tage. | none |
project | Project name (e.g category) | String | none |
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>updatequalifytemplate</action>
<status>Success</status>
<id>[TemplateGUID]</id>
<name>[TemplateName]</name>
<template>updated</template>
</response>
{
"response": {
"action": "updatequalifytemplate",
"status": "Success",
"id": "[TemplateGUID]",
"name": "[TemplateName]",
"template": "updated"
}
}
Remove Template
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>RemoveQualifyTemplate</action> <!-- required-->
<template_id>[TemplateGUID]</template_id> <!-- required-->
<template_name>[TemplateName]</template_name> <!-- optional, deprecated-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "RemoveQualifyTemplate", // required
"template_id": "[TemplateGUID]", // required
"template_name": "[TemplateName]" // optional, deprecated
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
template_id | Template GUID | String | none |
template_name | Template Name Deprecated | String | none |
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>removequalifytemplate</action>
<id>[TemplateGUID]</id>
<name>[TemplateName]</name>
<template>removed</template>
</response>
{
"response": {
"action": "removequalifytemplate",
"status": "Success",
"id": "[TemplateGUID]",
"name": "[TemplateName]",
"template": "removed"
}
}
Qualify Package Layouts Management
Create Package Layout
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>SetQualifyPackageLayout</action> <!-- required-->
<package_layout><![CDATA[
{
"id": "[PackageLayoutGUID]", // optional
"created_at": "[PackageLayoutCreatedDate]",
"updated_at": "[PackageLayoutUpdatedDate]",
"name": "[PackageLayoutName]"
// layout params
}
]]></package_layout> <!-- required-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "SetQualifyPackageLayout", // required
"package_layout": {
"id": "[PackageLayoutGUID]", // optional
"created_at": "[PackageLayoutCreatedDate]",
"updated_at": "[PackageLayoutUpdatedDate]",
"name": "[PackageLayoutName]"
// layout params
} // required
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
package_layout | Qualify package layout | JSON string for XML request and JSON object for JSON request. For XML request it should be wrapped in <![CDATA[]]> tage. | none |
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>setqualifypackagelayout</action>
<status>Success</status>
<id>[PackageLayoutGUID]</id>
<name>[PackageLayoutName]</name>
<package_layout>added</package_layout>
</response>
{
"response": {
"action": "setqualifypackagelayout",
"status": "Success",
"id": "[PackageLayoutGUID]",
"name": "[PackageLayoutName]",
"package_layout": "added"
}
}
List added package layouts
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>ListQualifyPackageLayouts</action> <!-- required-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "ListQualifyPackageLayouts" // required
}
}
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>listqualifypackagelayouts</action>
<status>Success</status>
<result>
<user_id><<id>></user_id>
<package_layouts>
<package_layout>
<id>[PackageLayoutGUID_1]</id>
<name>[PackageLayoutName_1]</name>
</package_layout>
<package_layout>
<id>[PackageLayoutGUID_2]</id>
<name>[PackageLayoutName_2]</name>
</package_layout>
<!-- ... -->
<package_layout>
<id>[PackageLayoutGUID_N]</id>
<name>[PackageLayoutName_N]</name>
</package_layout>
</package_layouts>
</result>
</response>
{
"response": {
"action": "listqualifypackagelayouts",
"status": "Success",
"result": {
"user_id": "<<id>>",
"package_layouts": [
"package_layout": [
{
"id": "[PackageLayoutGUID_1]",
"name": "[PackageLayoutName_1]"
},
{
"id": "[PackageLayoutGUID_2]",
"name": "[PackageLayoutName_2]"
},
// ...
{
"id": "[PackageLayoutGUID_N]",
"name": "[PackageLayoutName_N]"
},
]
]
}
}
}
Update Package Layout
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>UpdateQualifyPackageLayout</action> <!-- required-->
<package_layout><![CDATA[
{
"id": "[PackageLayoutGUID]", // required
"created_at": "[PackageLayoutCreatedDate]",
"updated_at": "[PackageLayoutUpdatedDate]",
"name": "[PackageLayoutName]",
// layout params
}
]]></package_layout> <!-- required-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "UpdateQualifyPackageLayout", // required
"package_layout": {
"id": "[PackageLayoutGUID]", // required
"created_at": "[PackageLayoutCreatedDate]",
"updated_at": "[PackageLayoutUpdatedDate]",
"name": "[PackageLayoutName]",
// layout params
} // required
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
package_layout | Qualify package layout | JSON string for XML request and JSON object for JSON request. For XML request it should be wrapped in <![CDATA[]]> tage. | none |
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>updatequalifypackagelayout</action>
<status>Success</status>
<id>[PackageLayoutGUID]</id>
<name>[PackageLayoutName]</name>
<package_layout>updated</package_layout>
</response>
{
"response": {
"action": "updatequalifypackagelayout",
"status": "Success",
"id": "[PackageLayoutGUID]",
"name": "[PackageLayoutName]",
"package_layout": "updated"
}
}
Remove Package Layout
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>RemoveQualifyPackageLayout</action> <!-- required-->
<package_layout_id>[PackageLayoutGUID]</package_layout_id> <!-- required-->
<package_layout_name>[PackageLayoutName]</package_layout_name> <!-- optional, deprecated-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "RemoveQualifyPackageLayout", // required
"package_layout_id": "[PackageLayoutGUID]", // required
"package_layout_name": "[PackageLayoutName]" // optional, deprecated
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
package_layout_id | Package Layout GUID | String | none |
package_layout_name | Package Layout Name Deprecated | String | none |
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>removequalifypackagelayout</action>
<id>[PackageLayoutGUID]</id>
<name>[PackageLayoutName]</name>
<package_layout>removed</package_layout>
</response>
{
"response": {
"action": "removequalifypackagelayout",
"status": "Success",
"id": "[PackageLayoutGUID]",
"name": "[PackageLayoutName]",
"package_layout": "removed"
}
}
Qualify Audio Layouts Management
Create Audio Layout
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>SetQualifyAudioLayout</action> <!-- required-->
<audio_layout><![CDATA[
{
"id": "[AudioLayoutGUID]", // optional
"created_at": "[AudioLayoutCreatedDate]",
"updated_at": "[AudioLayoutUpdatedDate]",
"name": "[AudioLayoutName]"
"layout": [
// layout params
]
}
]]></audio_layout> <!-- required-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "SetQualifyAudioLayout", // required
"audio_layout": {
"id": "[AudioLayoutGUID]", // optional
"created_at": "[AudioLayoutCreatedDate]",
"updated_at": "[AudioLayoutUpdatedDate]",
"name": "[AudioLayoutName]"
"layout": [
// layout params
]
} // required
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
audio_layout | Qualify audio layout | JSON string for XML request and JSON object for JSON request. For XML request it should be wrapped in <![CDATA[]]> tage. | none |
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>setqualifyaudiolayout</action>
<status>Success</status>
<id>[AudioLayoutGUID]</id>
<name>[AudioLayoutName]</name>
<audio_layout>added</audio_layout>
</response>
{
"response": {
"action": "setqualifyaudiolayout",
"status": "Success",
"id": "[AudioLayoutGUID]",
"name": "[AudioLayoutName]",
"audio_layout": "added"
}
}
List added audio layouts
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>ListQualifyAudioLayouts</action> <!-- required-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "ListQualifyAudioLayouts" // required
}
}
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>listqualifyaudiolayouts</action>
<status>Success</status>
<result>
<user_id><<id>></user_id>
<audio_layouts>
<audio_layout>
<id>[AudioLayoutGUID_1]</id>
<name>[AudioLayoutName_1]</name>
</audio_layout>
<audio_layout>
<id>[AudioLayoutGUID_2]</id>
<name>[AudioLayoutName_2]</name>
</audio_layout>
<!-- ... -->
<audio_layout>
<id>[AudioLayoutGUID_N]</id>
<name>[AudioLayoutName_N]</name>
</audio_layout>
</audio_layouts>
</result>
</response>
{
"response": {
"action": "listqualifyaudiolayouts",
"status": "Success",
"result": {
"user_id": "<<id>>",
"audio_layouts": [
"audio_layout": [
{
"id": "[AudioLayoutGUID_1]",
"name": "[AudioLayoutName_1]"
},
{
"id": "[AudioLayoutGUID_2]",
"name": "[AudioLayoutName_2]"
},
// ...
{
"id": "[AudioLayoutGUID_N]",
"name": "[AudioLayoutName_N]"
},
]
]
}
}
}
Update Audio Layout
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>UpdateQualifyAudioLayout</action> <!-- required-->
<audio_layout><![CDATA[
{
"id": "[AudioLayoutGUID]", // required
"created_at": "[AudioLayoutCreatedDate]",
"updated_at": "[AudioLayoutUpdatedDate]",
"name": "[AudioLayoutName]",
"layout": [
// layout params
]
}
]]></audio_layout> <!-- required-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "UpdateQualifyAudioLayout", // required
"audio_layout": {
"id": "[AudioLayoutGUID]", // required
"created_at": "[AudioLayoutCreatedDate]",
"updated_at": "[AudioLayoutUpdatedDate]",
"name": "[AudioLayoutName]",
"layout": [
// layout params
]
} // required
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
audio_layout | Qualify audio layout | JSON string for XML request and JSON object for JSON request. For XML request it should be wrapped in <![CDATA[]]> tage. | none |
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>updatequalifyaudiolayout</action>
<status>Success</status>
<id>[AudioLayoutGUID]</id>
<name>[AudioLayoutName]</name>
<audio_layout>updated</audio_layout>
</response>
{
"response": {
"action": "updatequalifyaudiolayout",
"status": "Success",
"id": "[AudioLayoutGUID]",
"name": "[AudioLayoutName]",
"audio_layout": "updated"
}
}
Remove Audio Layout
Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<userid><<id>></userid> <!-- required -->
<userkey><<key>></userkey> <!-- required-->
<action>RemoveQualifyAudioLayout</action> <!-- required-->
<audio_layout_id>[AudioLayoutGUID]</audio_layout_id> <!-- required-->
<audio_layout_name>[AudioLayoutName]</audio_layout_name> <!-- optional, deprecated-->
</query>
{
"query": {
"userid": "<<id>>", // required
"userkey": "<<key>>", // required
"action": "RemoveQualifyAudioLayout", // required
"audio_layout_id": "[AudioLayoutGUID]", // required
"audio_layout_name": "[AudioLayoutName]" // optional, deprecated
}
}
Parameter | Description | Allowed Values | Default Value |
---|---|---|---|
audio_layout_id | Audio Layout GUID | String | none |
audio_layout_name | Audio Layout Name Deprecated | String | none |
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<action>removequalifyaudiolayout</action>
<id>[AudioLayoutGUID]</id>
<name>[AudioLayoutName]</name>
<audio_layout>removed</audio_layout>
</response>
{
"response": {
"action": "removequalifyaudiolayout",
"status": "Success",
"id": "[AudioLayoutGUID]",
"name": "[AudioLayoutName]",
"audio_layout": "removed"
}
}