Baton Validation

We provide running your own Baton Test Plan on your output media with our QC service.

šŸ‘

Test Plans and Report Templates

For now, we support only manual validation and integration of the Test Plans and Report Templates.

Please reach out to us to add your Test Plan or Report Template to our system and then we will send you the needed parameters: <test_planĀ /> and <templateĀ />.

šŸš§

Media Format

Baton Validation available only for advanced_hls, mp4, cablelabs_mpegts, mainconcept_mxf, and mxf_op1a output formats. For qc_check format, You can use any single-bitrate source file.

<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>AddMedia</action>
    <source>[SourceFile|SourcePlaylist]</source><!-- required -->
    <format>
        <output>[qc_check|advanced_hls|mp4|mxf|mainconcept_mxf|cablelabs_mpegts|mxf_op1a]</output><!-- required -->
        <qc> 
            <qc_baton_validation>
                <test_plan>[TestPlanHash]</test_plan> <!-- required -->
                <template>[TemplateHash]</template>
                <logo_image>[URL]</logo_image>
            </qc_baton_validation>
        </qc>
        <!-- format params -->
    </format>
</query>
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "AddMedia", // required
        "source": "[SourceFile|SourcePlaylist]", // required
        "format": {
            "output": "[qc_check|advanced_hls|mp4|mxf|mainconcept_mxf|cablelabs_mpegts|mxf_op1a]", // required
            "qc": {
                "qc_baton_validation": {
                    "test_plan": "[TestPlanHash]", // required
                    "template": "[TemplateHash]",
                    "logo_image": "[URL]"
                }
            }
            // format params
        }
    }
}
ParameterDecriptionAllowed ValuesDefault Value
test_planBaton Test Plan hash ID.Stringnone
templatePDF Report Template hash ID or one of predefined Presets.String

Available Presets:
ā€¢Ā Audio and Container Errors Report
ā€¢Ā Audio Errors Report
ā€¢Ā Auto QC Report
ā€¢Ā Baton Compact Report
ā€¢Ā Baton Default Report
ā€¢Ā Container Errors Report
ā€¢Ā Detailed Report
ā€¢Ā Editor Report
ā€¢Ā Eyeball QC Report
ā€¢Ā Field Technician Report
ā€¢Ā Flat View Report
ā€¢Ā Format Specific Report
ā€¢Ā PSE Video Flash Report
ā€¢Ā Scene Change Detection Report
ā€¢Ā Summarized View Report
ā€¢Ā Video and Container Errors Report
ā€¢Ā Video Errors Report
none
logo_imageCustom Logo Image for PDF reportValid URLnone

Baton Report

Link to Baton Report can be found in GetStatus response

<?xml version="1.0"?>
<report>
    <mediaID>[MediaID]</mediaID>
    <status>[QCStatus]</status>
    <externalReports>
        <externalReport>
            <testName>qc_baton_validation</testName>
            <fileName>[FileName]</fileName>
            <ReportLinkXML>[BatonReportURL]</ReportLinkXML>
            <ReportLinkPDF>[BatonPDFReportURL]</ReportLinkPDF>
            <Summary>[BatonSummary]</Summary>
            <Result>[Success|Failure]</Result>
        </externalReport>
    </externalReports>
    <!-- report fields -->
</report>
{
    "report": {
        "mediaID": "[MediaID]",
        "status": "[QCStatus]",
        "externalReports": {
            "externalReport": [
                {
                    "testName": "qc_baton_validation",
                    "fileName": "[FileName]",
                    "ReportLinkXML": "[BatonReportURL]",
                    "ReportLinkPDF": "[BatonPDFReportURL]",
                    "Summary": "[BatonSummary]",
                    "Result": "[Success|Failure]"
                }
            ]
        }
        // report fields
    }
}

šŸš§

For ReportLinkPDF, Summary, and Result

<ReportLinkPDFĀ >, <SummaryĀ >, and <ResultĀ > fields may not be presented in <externalReportĀ > block.

Prohibited Words Check

We provide the ability to check for a specified list of prohibited words in closed captions via Baton QC.

You can create several prohibited words lists and we will check all of them in Baton Validation test.
To manage lists we provide these API requests:

Create New List

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>SetBatonProfaneWords</action> <!-- required-->
    <name>[ListName]</name> <!-- required-->
    <words>
        <word>[Word_1]</word>
        <word>[Word_2]</word>
        <!-- ... -->
        <word>[Word_N]</word>
    </words>
</query> 
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "SetBatonProfaneWords", // required
        "name": "[ListName]", // required
        "words": {
            "word": [
                "[Word_1]",
                "[Word_1]",
                // ...
                "[Word_N]"
            ]
        }
    }
}
ParameterDescriptionAllowed Values
nameList NameString
wordProhibited WordString
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>setbatonprofanewords</action>
    <status>Success</status>
</response>
{
    "response": {
        "action": "setbatonprofanewords",
        "status": "Success"
    }
}

Show Added Lists

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>ListBatonProfaneWordLists</action> <!-- required-->
</query> 
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "ListBatonProfaneWords" // required
    }
}
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>listbatonprofanewordlists</action>
    <status>Success</status>
    <result>
        <user_id>[UserID]</user_id>
        <wordlists>
            <wordlist>[ListName_1]</wordlist>
            <wordlist>[ListName_1]</wordlist>
            <!-- ... -->
            <wordlist>[ListName_N]</wordlist>
        </wordlists>
    </result>
</response>
{
    "response": {
        "action": "listbatonprofanewords",
        "status": "Success",
        "result": {
            "user_id": "[UserID]",
            "wordlists": {
                "wordlist": [
                    "ListName_1",
                    "ListName_2",
                    // ...
                    "ListName_N"
                ]
            }
        }
    }
}

Delete Words List

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>DropBatonProfaneWords</action> <!-- required-->
    <name>[ListName]</name> <!-- required-->
</query> 
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "DropBatonProfaneWords", // required
        "name": "[ListName]" // required
    }
}
ParameterDescriptionAllowed Values
nameList NameString
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>dropbatonprofanewords</action>
    <status>Success</status>
</response>
{
    "response": {
        "action": "dropbatonprofanewords",
        "status": "Success"
    }
}

Show Words In List

Request:
<?xml version="1.0" encoding="UTF-8"?>
<query>
    <userid>[UserID]</userid> <!-- required -->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>GetBatonProfaneWords</action> <!-- required-->
    <name>[ListName]</name> <!-- required-->
</query> 
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "GetBatonProfaneWords", // required
        "name": "[ListName]" // required
    }
}
ParameterDescriptionAllowed Values
nameList NameString
Response:
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <action>getbatonprofanewords</action>
    <status>Success</status>
    <result>
        <user_id>[UserID]</user_id>
        <words>
            <word>[Word_1]</word>
            <word>[Word_1]</word>
            <!-- ... -->
            <word>[Word_N]</word>
        </words>
    </result>
</response>
{
    "response": {
        "action": "getbatonprofanewords",
        "status": "Success",
        "result": {
            "user_id": "[UserID]",
            "words": {
                "word": [
                    "Word_1",
                    "Word_2",
                    // ...
                    "Word_N"
                ]
            }
        }
    }
}