[API][yes]
[Search][no]
[UI][no]
Brand safety engines process media to determine where content falls on a scale of sensitivity or concern. This scale is composed of 11 designated sensitive topics created by the Global Alliance for Responsible Media (GARM), a social media and advertising industry body that helps standardize measures for insulating brands from harmful content posted to their sites and apps.
Engines used
The following engines are used to build a brand safety job:
| Name | Description |
|---|
| Transcription engine | Run transcription AI on content |
| Entity Extraction G | Run entity extraction AI on content |
| Classification AC: IAB | Run IAB classification AI on content |
| Output writer engine | Aggregate AI data and store it in the content's TDO |
Brand safety job
Enter the GraphQL mutation below. Update the payload data with your values.
This will create a job that will take a payload consisting of the media's URL, and optionally an array of webhooks for notification and additional processing.
GraphQL mutation:
mutation brandSafety(
$url: String!,
$notificationUris: [String]
) {
createJob(
input: {
target: { name: "BrandSafety" }
clusterId: "prd5-21xbyq0x-4h0s-o685-snas-oovhdai552v9"
tasks: [
{
# Stream Ingestor
engineId: "8bdb0e3b-ff28-4f6e-a3ba-887bd06e6440"
payload: { url: $url, ffmpegTemplate: "rawchunk" }
ioFolders: [{ referenceId: "chunkOutput", mode: chunk, type: output }]
}
{
# Transcription E7: English (Global)
engineId: "c0e55cde-340b-44d7-bb42-2e0d65e98255"
ioFolders: [
{ referenceId: "transcriptionInput", mode: chunk, type: input }
{ referenceId: "transcriptionOutput", mode: chunk, type: output }
]
executionPreferences: {
maxEngines: 10
parentCompleteBeforeStarting: true
}
}
{
engineId: "8eccf9cc-6b6d-4d7d-8cb3-7ebf4950c5f3" # outputwriter
ioFolders: [
{ referenceId: "owTranscriptionInput", mode: chunk, type: input }
]
executionPreferences: {
parentCompleteBeforeStarting: true
}
}
{
#Chunk Aggregator, used to aggregate words from AION - Standard transcript into text
engineId: "045e675b-ed7c-43bf-8300-a2f2102f57a4"
payload: { engineOutputOption: "text" }
executionPreferences: {
parentCompleteBeforeStarting: true
}
ioFolders: [
{ referenceId: "textCreatorInput", mode: chunk, type: input }
{ referenceId: "textCreatorOutput", mode: chunk, type: output }
]
}
{
# Entity Extraction G
engineId: "cb2b77b9-3478-4e51-844f-e4064384bb33"
executionPreferences: {
parentCompleteBeforeStarting: true
}
ioFolders: [
{ referenceId: "entityInput", mode: chunk, type: input }
{ referenceId: "entityOutput", mode: chunk, type: output }
]
}
{
# Output writer
engineId: "8eccf9cc-6b6d-4d7d-8cb3-7ebf4950c5f3"
ioFolders: [
{ referenceId: "owEntityInput", mode: chunk, type: input }
]
executionPreferences: {
parentCompleteBeforeStarting: true
}
}
{
# Output writer
engineId: "8eccf9cc-6b6d-4d7d-8cb3-7ebf4950c5f3"
ioFolders: [
{ referenceId: "owClassificationInput", mode: chunk, type: input }
]
executionPreferences: {
parentCompleteBeforeStarting: true
}
}
{
# Classification AC: IAB
engineId: "06bbc2e7-aa59-4c32-9ec3-1a147fff78a6"
executionPreferences: {
parentCompleteBeforeStarting: true
}
ioFolders: [
{ referenceId: "classificationInput", mode: chunk, type: input }
{ referenceId: "classificationOutput", mode: chunk, type: output }
]
}
]
notificationUris: $notificationUris
routes: [
{
parentIoFolderReferenceId: "chunkOutput"
childIoFolderReferenceId: "transcriptionInput"
}
{
parentIoFolderReferenceId: "transcriptionOutput"
childIoFolderReferenceId: "textCreatorInput"
}
{
parentIoFolderReferenceId: "textCreatorOutput"
childIoFolderReferenceId: "entityInput"
}
{
parentIoFolderReferenceId: "transcriptionOutput"
childIoFolderReferenceId: "owTranscriptionInput"
}
{
parentIoFolderReferenceId: "textCreatorOutput"
childIoFolderReferenceId: "classificationInput"
}
{
parentIoFolderReferenceId: "entityOutput"
childIoFolderReferenceId: "owEntityInput"
}
{
parentIoFolderReferenceId: "classificationOutput"
childIoFolderReferenceId: "owClassificationInput"
}
]
}
) {
id
targetId
}
}
GraphQL example variables for the mutation:
{
"url": "https://example.com/path-to-media",
"notificationUris": ["https://webhook.example.com"]
}
GraphQL response:
{
"data": {
"createJob": {
"id": "22030903_Gq1GRNdmwc",
"targetId": "1951002277",
}
}
}
Note the job ID (id) and target ID (targetId) for progress and result checks.
Next steps
Now, query the job status and results.