Media Analysis

Performs multiple analytics within target media.

The Media Analysis API allows you to perform multiple Media Analytics API functions on the same input file. For example, you can create a transcript of the text in the media file, and detect scene changes in the same file.

This API is similar to running the individual Media Analytics APIs, but it can use the media processing resources more efficiently because it does not need to decode the input file multiple times. This approach can improve the performance, and the API unit cost of using the API, compared to using the media analytics APIs individually.

Note: The Analyze Media API is not the same as a Combination. A Combination runs each of the APIs individually, while Analyze Media runs all of them in a single job.

Quick Start

You can upload a media file to the API by using a POST request method. For example:

curl -X POST http://api.havenondemand.com/1/api/async/analyzemedia/v1 --form "file=@hpnext.mp4" --form "face_detection_configuration={}"

You can also provide a file as a URL or a Haven OnDemand object store reference.

Note: Because input files for this API can be large and take a long time to process, the API runs only in asynchronous mode.

Note: The API processes only the first 60 seconds of any input file and processes for a maximum of 2 hours (the processing time is not necessarily the same as the length of the input file). After 2 hours, the API returns the results it has processed, truncating anything after that time. Input files are also subject to a maximum size quota. For more information, see Rate Limiting, Quotas, Data Expiry, and Maximums.

You specify the operations that you want to perform by submitting a JSON object that defines the input parameters for each API that you want to run. You must specify at least one analytic.

The Analyze Media API can run the following APIs on the file that you upload:

For more information about these APIs, see the documentation for each individual API.

The following JSON object specifies the input parameters for the Scene Change Detection API:

{
   "maximum_scene_interval": 30,
   "minimum_scene_interval": 5
}

You can then use this JSON object in the scene_change_detection_configuration parameter in the Analyze Media API call:

curl -X POST http://api.havenondemand.com/1/api/async/analyzemedia/v1 --form "file=@hpnext.mp4" --form "scene_change_detection_configuration={"maximum_scene_interval":30,"minimum_scene_interval":5}"

You must include the AnalyticName_configuration parameter for every media analytics API that you want to run on the input file. For a list of supported analytic names, see the Request page.

If the API does not have any required parameters, and you do not want to set any optional parameters, you can set the parameter to an empty JSON object. For example:

curl -X POST http://api.havenondemand.com/1/api/async/analyzemedia/v1 --form "file=@hpnext.mp4" --form "face_detection_configuration={}"

You must not specify the file or other input parameters in the AnalyticName_configuration JSON objects. The Analyze Media API performs all the configured analytics on the main input that you provide.

curl -X POST http://api.havenondemand.com/1/api/async/analyzemedia/v1 --form "file=@hpnext.mp4" --form "face_detection_configuration={}" --form "transcription_configuration={}"

The Analyze Media API response contains the responses for each of the analytics, in the same format as for the individual API calls.

The following response contains the results of Face Detection and Speech Recognition:

{
    "actions": [
        {
            "result": {
			    "source_information": {
					"mime_type": "video/unknown",
					"video_information": {
						"width": 640,
						"height": 360,
						"codec": "MPEG-4 part 2",
						"pixel_aspect_ratio": "1:1"
					},
					"audio_information": {
						"codec": "AAC (Advanced Audio Coding)",
						"sample_rate": 44100,
						"channels": 2
					}
				},
                "faces": {
                    "items": [
                        {
                            "source_region_coordinates": [
                                {
                                    "x": 234,
                                    "y": 73,
                                    "unit": "pixels"
                                },
                                {
                                    "x": 406,
                                    "y": 73,
                                    "unit": "pixels"
                                },
                                {
                                    "x": 406,
                                    "y": 245,
                                    "unit": "pixels"
                                },
                                {
                                    "x": 234,
                                    "y": 245,
                                    "unit": "pixels"
                                }
                            ],
                            "start_time_offset": 0.041,
                            "end_time_offset": 9.467,
                            "time_offset": 6.923,
                            "age": "Adult"
                        }
                    ]
                },
                "transcription": {
                    "items": [
                        {
                            "start_time_offset": 0.84,
                            "end_time_offset": 0.95,
                            "text": "we",
                            "confidence": 97
                        },
                        {
                            "start_time_offset": 0.95,
                            "end_time_offset": 1.14,
                            "text": "want",
                            "confidence": 70
                        },
                        {
                            "start_time_offset": 1.14,
                            "end_time_offset": 1.2,
                            "text": "to",
                            "confidence": 78
                        },
                        {
                            "start_time_offset": 1.2,
                            "end_time_offset": 1.41,
                            "text": "hear",
                            "confidence": 90
                        },
                        {
                            "start_time_offset": 1.41,
                            "end_time_offset": 1.61,
                            "text": "from",
                            "confidence": 95
                        },
                        {
                            "start_time_offset": 1.61,
                            "end_time_offset": 1.93,
                            "text": "you",
                            "confidence": 86
                        },
                        {
                            "start_time_offset": 2.45,
                            "end_time_offset": 2.67,
                            "text": "let's",
                            "confidence": 91
                        },
                        {
                            "start_time_offset": 2.67,
                            "end_time_offset": 2.86,
                            "text": "get",
                            "confidence": 74
                        },
                        {
                            "start_time_offset": 2.86,
                            "end_time_offset": 2.92,
                            "text": "the",
                            "confidence": 97
                        },
                        {
                            "start_time_offset": 2.92,
                            "end_time_offset": 3.58,
                            "text": "conversation",
                            "confidence": 84
                        },
                        {
                            "start_time_offset": 3.58,
                            "end_time_offset": 3.96,
                            "text": "started",
                            "confidence": 88
                        },
                        {
                           "start_time_offset": 3.96,
                            "end_time_offset": 4.24,
                            "text": "about",
                            "confidence": 91
                        },
                        {
                            "start_time_offset": 4.24,
                            "end_time_offset": 4.5,
                            "text": "what's",
                            "confidence": 91
                        },
                        {
                            "start_time_offset": 4.5,
                            "end_time_offset": 4.86,
                            "text": "next",
                            "confidence": 89
                        },
                        {
                            "start_time_offset": 4.86,
                            "end_time_offset": 4.98,
                            "text": "for",
                            "confidence": 93
                        },
                        {
                            "start_time_offset": 4.98,
                            "end_time_offset": 5.29,
                            "text": "Hewlett",
                            "confidence": 72
                        },
                        {
                            "start_time_offset": 5.29,
                            "end_time_offset": 5.69,
                            "text": "Packard",
                            "confidence": 92
                        },
                        {
                            "start_time_offset": 6.36,
                            "end_time_offset": 6.77,
                            "text": "this",
                            "confidence": 95
                        },
                        {
                            "start_time_offset": 6.8,
                            "end_time_offset": 6.98,
                            "text": "is",
                            "confidence": 96
                        },
                        {
                            "start_time_offset": 6.98,
                            "end_time_offset": 7.36,
                            "text": "HP",
                            "confidence": 83
                        },
                        {
                            "start_time_offset": 7.36,
                            "end_time_offset": 7.87,
                            "text": "next",
                            "confidence": 90
                        },
                        {
                            "start_time_offset": 8.22,
                            "end_time_offset": 8.61,
                            "text": "this",
                            "confidence": 96
                        },
                        {
                            "start_time_offset": 8.61,
                            "end_time_offset": 9.16,
                            "text": "matters",
                            "confidence": 84
                        }
                    ]
                }
            },
            "headers": {},
            "status": "finished",
            "action": "analyzemedia",
            "version": "v1"
        }
    ],
    "jobID": "0_8accf728-e6ee-4296-9a0e-39342f3f5330",
    "status": "finished"
}

The source_information response field contains information about the media that you send. This field is returned only once in the Analyze Media API response, rather than appearing in each analytic subsection.

Asynchronous
https://api.havenondemand.com/1/api/async/analyzemedia/v1

This API supports only asynchronous invocation.

Authentication

This API requires an authentication token to be supplied in the following parameter:

Parameter Description
apikey The API key to use to authenticate the API request.
Parameters

This API accepts the following parameters:

Required
Name Type Description
file
binary A media file to process. Multipart POST only.
reference
string A Haven OnDemand object store reference obtained from either the Expand Container or Store Object API. The corresponding video or audio file is passed to the API.
url
string A publicly accessible HTTP URL from which a video or audio file can be retrieved.
license_plate_recognition_configuration
json A JSON object denoting the input parameters for recognizelicenseplates analysis
scene_change_detection_configuration
json A JSON object denoting the input parameters for detectscenechanges analysis
face_detection_configuration
json A JSON object denoting the input parameters for detectfaces analysis
object_recognition_configuration
json A JSON object denoting the input parameters for recognizeobjects analysis
transcription_configuration
json A JSON object denoting the input parameters for recognizespeech analysis
image_classification_configuration
json A JSON object denoting the input parameters for classifyimages analysis

This API returns a JSON response that is described by the model below. This single model is presented both as an easy to read abstract definition and as the formal JSON schema.

Asynchronous Use

Additional requests are required to get the result if this API is invoked asynchronously.

You can use /1/job/status/<job-id> to get the status of the job, including results if the job is finished.

You can also use /1/job/result/<job-id>, which waits until the job has finished and then returns the result.

Model
This is an abstract definition of the response that describes each of the properties that might be returned.
Media Analysis Response {
source_information ( Source_information , optional) Metadata information about a media file
license_plates ( License_plates , optional)
scene_changes ( Scene_changes , optional)
faces ( Faces , optional)
objects ( Objects , optional)
transcription ( Transcription , optional)
classes ( Classes , optional)
}
Media Analysis Response:Source_information {
mime_type ( string ) MIME type of the document.
video_information ( Video_information , optional) Information about the video track if one is present.
audio_information ( Audio_information , optional) Information about the audio track if one is present.
image_information ( Image_information , optional) Information about the image track if one is present.
document_information ( Document_information , optional) Information about the document track. This is only available if the source media is a multi-page image, presentation file, or PDF.
}
Media Analysis Response:Source_information:Video_information {
width ( integer ) The width of the video in pixels.
height ( integer ) The height of the video in pixels.
codec ( string ) The algorithm used to encode the video.
pixel_aspect_ratio ( string ) The aspect ratio of pixels in the video. For example, if the video is made up of square pixels this value is 1:1.
}
Media Analysis Response:Source_information:Audio_information {
codec ( string ) The algorithm used to encode the audio.
sample_rate ( integer ) The frequency at which the audio was sampled.
channels ( integer ) The number of channels present in the audio. For example, for stereo this value is 2.
}
Media Analysis Response:Source_information:Image_information {
width ( integer ) The width of the image in pixels.
height ( integer ) The height of the image in pixels.
}
Media Analysis Response:Source_information:Document_information {
page_count ( integer ) The estimated number of pages in the document.
}
Media Analysis Response:License_plates {
items ( array[Items] ) All of the detected license plates from the source media.
}
Media Analysis Response:License_plates:Items {
start_time_offset ( number , optional) Time offset from the start of the video to where the license plate first appears. This value is expressed as a non integer number. This is only available if the source media is a video.
end_time_offset ( number , optional) Time offset from the start of the video to where the license plate is no longer visible. This value is expressed as a non integer number. This is only available if the source media is a video.
time_offset ( number , optional) Time offset from the start of the video to where the license plate was identified. This value is expressed as a non integer number. This is only available if the source media is a video.
page ( integer , optional) Page in the document where the license plate is located. This is only available if the source media is a multi-page image, presentation file, or PDF. The minimum possible value of this property is 1, which means that the license plate is located on the first page.
origin ( enum<Origin> ) The location that the license plate originates from (that is, the license plate registration location, rather than the location where the video was captured). This field has the same possible values as the source_location parameter.
location_adjusted_text_components ( array[string] ) An array of strings that represent the different textual information extracted from the license plate. For example, Saudi Arabian license plates consist of 3 letters and up to 4 numbers; these two components are represented as separate elements of the array. This field uses the ocr_text information and applies corrections, according to the format specified by the identified origin. This always contains at least one item, and each item contains at least one character.
ocr_text ( string ) The characters identified by Optical Character Recognition (OCR) before any corrections are applied according to the format specified by the recognized origin.
shape ( enum<Shape> ) The shape of the license plate.
confidence ( number ) A value (0-100) of confidence in the license plate identification.
source_region_coordinates ( array[Source_region_coordinates] ) A set of coordinates (relative to the top left of the source) that represents the bounding region where the license plate can be found in the source media. If the source media is a video then this region is where the license plate was found at time_offset in the video. This always contains at least 3 co-ordinates
}
enum<Media Analysis Response:License_plates:Items:Origin> {
'AL'
'DZ'
'AR'
'AU-NSW'
'AU-QLD'
'AU-SA'
'AU-TAS'
'AU-VIC'
'AU-WA'
'AU-ACT'
'AU-NT'
'AT'
'BH'
'BE'
'BR'
'CA'
'CO'
'CZ'
'DK'
'FI'
'FR'
'DE'
'GR'
'IN'
'ID'
'IE'
'IL'
'IT'
'JP'
'SA'
'KW'
'MY'
'MX'
'NL'
'NZ'
'NG'
'NO'
'OM'
'PE'
'PH'
'PL'
'PT'
'QA'
'RU'
'RS'
'SG'
'SL'
'ZA'
'ES'
'SE'
'CH'
'SY'
'TH'
'TR'
'UA'
'AE-AZ'
'AE-AJ'
'AE-FU'
'AE-SH'
'AE-DU'
'AE-RK'
'AE-UQ'
'GB'
'US-AL'
'US-AK'
'US-AZ'
'US-AR'
'US-CA'
'US-CO'
'US-CT'
'US-DE'
'US-FL'
'US-GA'
'US-HI'
'US-ID'
'US-IL'
'US-IN'
'US-IA'
'US-KS'
'US-KY'
'US-LA'
'US-ME'
'US-MD'
'US-MA'
'US-MI'
'US-MN'
'US-MS'
'US-MO'
'US-MT'
'US-NE'
'US-NV'
'US-NH'
'US-NJ'
'US-NM'
'US-NY'
'US-NC'
'US-ND'
'US-OH'
'US-OK'
'US-OR'
'US-PA'
'US-RI'
'US-SC'
'US-SD'
'US-TN'
'US-TX'
'US-UT'
'US-VT'
'US-VA'
'US-WA'
'US-DC'
'US-WV'
'US-WI'
'US-WY'
'VE'
}
enum<Media Analysis Response:License_plates:Items:Shape> {
'regular' The license plate is displayed as a single row of characters.
'square' The license plate is displayed as multiple rows of characters.
}
Media Analysis Response:License_plates:Items:Source_region_coordinates {
x ( integer ) The horizontal co-ordinate that makes up part of a region.
y ( integer ) The vertical co-ordinate that makes up part of a region.
unit ( enum<Unit> ) The unit in which x and y are expressed.
}
enum<Media Analysis Response:License_plates:Items:Source_region_coordinates:Unit> {
'pixels' Pixels.
'points' Points in the PDF co-ordinate system.
}
Media Analysis Response:Scene_changes {
items ( array[Items] ) The format of scene change detection results in the response.
}
Media Analysis Response:Scene_changes:Items {
time_offset ( number ) Time offset from the start of the video to where the scene change occurred. This value is expressed as a non integer number.
}
Media Analysis Response:Faces {
items ( array[Items] ) An array of Face objects.
}
Media Analysis Response:Faces:Items {
start_time_offset ( number , optional) Time from the start of the video to where the face first appears. This value is expressed as a non integer number. This is only available if the source media is a video.
end_time_offset ( number , optional) Time from the start of the video to where the face is no longer visible. This value is expressed as a non integer number. This is only available if the source media is a video.
time_offset ( number , optional) Time offset from the start of the video to where the face was detected. This value is expressed as a non integer number. This is only available if the source media is a video.
page ( integer , optional) The page (1-based index) in the document where the face is located. This is only available if the source media is a multi-page image, presentation file, or PDF.
age ( enum<Age> , optional) The age range of the face.
source_region_coordinates ( array[Source_region_coordinates] ) An array of coordinates (relative to the top left of the source) that represents the bounding region where the face can be found. If the source media is a video then this region is where the face was found at time_offset in the input source.
identities ( array[Identities] , optional) One or more identity matches for the detected face.
}
enum<Media Analysis Response:Faces:Items:Age> {
'baby' Below approximately 2 years.
'child' Approximately 2–15 years.
'young_adult' Approximately 15–35 years.
'adult' Approximately 35–55 years.
'senior' Above approximately 55 years.
}
Media Analysis Response:Faces:Items:Source_region_coordinates {
x ( integer ) The horizontal co-ordinate that makes up part of a region.
y ( integer ) The vertical co-ordinate that makes up part of a region.
unit ( enum<Unit> ) The unit in which x and y are expressed.
}
enum<Media Analysis Response:Faces:Items:Source_region_coordinates:Unit> {
'pixels' Pixels.
'points' Points in the PDF co-ordinate system.
}
Media Analysis Response:Faces:Items:Identities {
name ( string ) The name of the person identified.
confidence ( number ) A value (0-100) of confidence in the identification.
}
Media Analysis Response:Objects {
items ( array[Items] ) An array of recognized objects.
}
Media Analysis Response:Objects:Items {
start_time_offset ( number , optional) Time from the start of the video to where the object first appears. This value is expressed as a non integer number. This is only available if the source media is a video.
end_time_offset ( number , optional) Time from the start of the video to where the object is no longer visible. This value is expressed as a non integer number. This is only available if the source media is a video.
time_offset ( number , optional) Time offset from the start of the video to where the object was detected. This value is expressed as a non integer number. This is only available if the source media is a video.
page ( integer , optional) The page (1-based index) in the document where the object is located. This is only available if the source media is a multi-page image, presentation file, or PDF.
source_region_coordinates ( array[Source_region_coordinates] ) An array of coordinates (relative to the top left of the source) that represents the bounding region where the object can be found. If the source media is a video then this region is where the object was found at time_offset in the input source.
object_identity ( Object_identity ) An identity match for the object.
}
Media Analysis Response:Objects:Items:Source_region_coordinates {
x ( integer ) The horizontal co-ordinate that makes up part of a region.
y ( integer ) The vertical co-ordinate that makes up part of a region.
unit ( enum<Unit> ) The unit in which x and y are expressed.
}
enum<Media Analysis Response:Objects:Items:Source_region_coordinates:Unit> {
'pixels' Pixels.
'points' Points in the PDF co-ordinate system.
}
Media Analysis Response:Objects:Items:Object_identity {
name ( string ) The name of the identified object.
confidence ( number ) A value (0-100) of confidence for the identified object.
}
Media Analysis Response:Transcription {
items ( array[Items] ) The format of speech transcription results in the response.
}
Media Analysis Response:Transcription:Items {
start_time_offset ( number ) Time from the start of the media to where the word starts. This value is expressed as a non integer number.
end_time_offset ( number ) Time from the start of the media to where the word ends. This value is expressed as a non integer number.
text ( string ) The word(s) being spoken at the specified time.
confidence ( number ) A value (0-100) of confidence in the transcription.
}
Media Analysis Response:Classes {
items ( array[Items] ) An array of image classes
}
Media Analysis Response:Classes:Items {
time_offset ( number , optional) Time offset from the start of the video to where the image was classified. This value is expressed as a non integer number. This is only available if the source media is a video.
page ( integer , optional) The page (1-based index) in the document where the image is located. This is only available if the source media is a multi-page image, presentation file, or PDF.
classification ( Classification ) The classification of the image.
}
Media Analysis Response:Classes:Items:Classification {
name ( string ) The name of the class to which the entire image belongs.
confidence ( number ) A value (0-100) of confidence in the classification.
}
Model Schema
This is a JSON schema that describes the syntax of the response. See json-schema.org for a complete reference.
{
    "properties": {
        "source_information": {
            "properties": {
                "mime_type": {
                    "type": "string"
                },
                "video_information": {
                    "properties": {
                        "width": {
                            "type": "integer",
                            "minimum": 1
                        },
                        "height": {
                            "type": "integer",
                            "minimum": 1
                        },
                        "codec": {
                            "type": "string"
                        },
                        "pixel_aspect_ratio": {
                            "type": "string"
                        }
                    },
                    "type": "object",
                    "required": [
                        "width",
                        "height",
                        "codec",
                        "pixel_aspect_ratio"
                    ]
                },
                "audio_information": {
                    "properties": {
                        "codec": {
                            "type": "string"
                        },
                        "sample_rate": {
                            "type": "integer"
                        },
                        "channels": {
                            "type": "integer"
                        }
                    },
                    "type": "object",
                    "required": [
                        "codec",
                        "sample_rate",
                        "channels"
                    ]
                },
                "image_information": {
                    "properties": {
                        "width": {
                            "type": "integer",
                            "minimum": 1
                        },
                        "height": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    "type": "object",
                    "required": [
                        "width",
                        "height"
                    ]
                },
                "document_information": {
                    "properties": {
                        "page_count": {
                            "type": "integer"
                        }
                    },
                    "type": "object",
                    "required": [
                        "page_count"
                    ]
                }
            },
            "required": [
                "mime_type"
            ],
            "type": "object"
        },
        "license_plates": {
            "properties": {
                "items": {
                    "items": {
                        "properties": {
                            "start_time_offset": {
                                "type": "number",
                                "minimum": 0
                            },
                            "end_time_offset": {
                                "type": "number",
                                "minimum": 0
                            },
                            "time_offset": {
                                "type": "number",
                                "minimum": 0
                            },
                            "page": {
                                "type": "integer",
                                "minimum": 1
                            },
                            "origin": {
                                "enum": [
                                    "AL",
                                    "DZ",
                                    "AR",
                                    "AU-NSW",
                                    "AU-QLD",
                                    "AU-SA",
                                    "AU-TAS",
                                    "AU-VIC",
                                    "AU-WA",
                                    "AU-ACT",
                                    "AU-NT",
                                    "AT",
                                    "BH",
                                    "BE",
                                    "BR",
                                    "CA",
                                    "CO",
                                    "CZ",
                                    "DK",
                                    "FI",
                                    "FR",
                                    "DE",
                                    "GR",
                                    "IN",
                                    "ID",
                                    "IE",
                                    "IL",
                                    "IT",
                                    "JP",
                                    "SA",
                                    "KW",
                                    "MY",
                                    "MX",
                                    "NL",
                                    "NZ",
                                    "NG",
                                    "NO",
                                    "OM",
                                    "PE",
                                    "PH",
                                    "PL",
                                    "PT",
                                    "QA",
                                    "RU",
                                    "RS",
                                    "SG",
                                    "SL",
                                    "ZA",
                                    "ES",
                                    "SE",
                                    "CH",
                                    "SY",
                                    "TH",
                                    "TR",
                                    "UA",
                                    "AE-AZ",
                                    "AE-AJ",
                                    "AE-FU",
                                    "AE-SH",
                                    "AE-DU",
                                    "AE-RK",
                                    "AE-UQ",
                                    "GB",
                                    "US-AL",
                                    "US-AK",
                                    "US-AZ",
                                    "US-AR",
                                    "US-CA",
                                    "US-CO",
                                    "US-CT",
                                    "US-DE",
                                    "US-FL",
                                    "US-GA",
                                    "US-HI",
                                    "US-ID",
                                    "US-IL",
                                    "US-IN",
                                    "US-IA",
                                    "US-KS",
                                    "US-KY",
                                    "US-LA",
                                    "US-ME",
                                    "US-MD",
                                    "US-MA",
                                    "US-MI",
                                    "US-MN",
                                    "US-MS",
                                    "US-MO",
                                    "US-MT",
                                    "US-NE",
                                    "US-NV",
                                    "US-NH",
                                    "US-NJ",
                                    "US-NM",
                                    "US-NY",
                                    "US-NC",
                                    "US-ND",
                                    "US-OH",
                                    "US-OK",
                                    "US-OR",
                                    "US-PA",
                                    "US-RI",
                                    "US-SC",
                                    "US-SD",
                                    "US-TN",
                                    "US-TX",
                                    "US-UT",
                                    "US-VT",
                                    "US-VA",
                                    "US-WA",
                                    "US-DC",
                                    "US-WV",
                                    "US-WI",
                                    "US-WY",
                                    "VE"
                                ]
                            },
                            "location_adjusted_text_components": {
                                "type": "array",
                                "items": {
                                    "type": "string",
                                    "minLength": 1
                                },
                                "minItems": 1
                            },
                            "ocr_text": {
                                "type": "string"
                            },
                            "shape": {
                                "enum": [
                                    "regular",
                                    "square"
                                ]
                            },
                            "confidence": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 100
                            },
                            "source_region_coordinates": {
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "x": {
                                            "type": "integer",
                                            "minimum": 0
                                        },
                                        "y": {
                                            "type": "integer",
                                            "minimum": 0
                                        },
                                        "unit": {
                                            "enum": [
                                                "pixels",
                                                "points"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "x",
                                        "y",
                                        "unit"
                                    ]
                                },
                                "minItems": 3,
                                "type": "array"
                            }
                        },
                        "required": [
                            "confidence",
                            "source_region_coordinates",
                            "origin",
                            "location_adjusted_text_components",
                            "ocr_text",
                            "shape"
                        ],
                        "type": "object"
                    },
                    "type": "array"
                }
            },
            "required": [
                "items"
            ],
            "type": "object"
        },
        "scene_changes": {
            "properties": {
                "items": {
                    "items": {
                        "properties": {
                            "time_offset": {
                                "type": "number",
                                "minimum": 0
                            }
                        },
                        "required": [
                            "time_offset"
                        ],
                        "type": "object"
                    },
                    "type": "array"
                }
            },
            "required": [
                "items"
            ],
            "type": "object"
        },
        "faces": {
            "properties": {
                "items": {
                    "items": {
                        "properties": {
                            "start_time_offset": {
                                "type": "number",
                                "minimum": 0
                            },
                            "end_time_offset": {
                                "type": "number",
                                "minimum": 0
                            },
                            "time_offset": {
                                "type": "number",
                                "minimum": 0
                            },
                            "page": {
                                "type": "integer",
                                "minimum": 1
                            },
                            "age": {
                                "enum": [
                                    "baby",
                                    "child",
                                    "young_adult",
                                    "adult",
                                    "senior"
                                ]
                            },
                            "source_region_coordinates": {
                                "items": {
                                    "properties": {
                                        "x": {
                                            "type": "integer",
                                            "minimum": 0
                                        },
                                        "y": {
                                            "type": "integer",
                                            "minimum": 0
                                        },
                                        "unit": {
                                            "enum": [
                                                "pixels",
                                                "points"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "x",
                                        "y",
                                        "unit"
                                    ],
                                    "type": "object"
                                },
                                "minItems": 3,
                                "type": "array"
                            },
                            "identities": {
                                "items": {
                                    "properties": {
                                        "name": {
                                            "type": "string"
                                        },
                                        "confidence": {
                                            "type": "number",
                                            "schema": {
                                                "minimum": 0,
                                                "maximum": 100
                                            }
                                        }
                                    },
                                    "required": [
                                        "name",
                                        "confidence"
                                    ],
                                    "type": "object"
                                },
                                "type": "array"
                            }
                        },
                        "required": [
                            "source_region_coordinates"
                        ],
                        "type": "object"
                    },
                    "type": "array"
                }
            },
            "required": [
                "items"
            ],
            "type": "object"
        },
        "objects": {
            "properties": {
                "items": {
                    "items": {
                        "properties": {
                            "start_time_offset": {
                                "type": "number",
                                "minimum": 0
                            },
                            "end_time_offset": {
                                "type": "number",
                                "minimum": 0
                            },
                            "time_offset": {
                                "type": "number",
                                "minimum": 0
                            },
                            "page": {
                                "type": "integer",
                                "minimum": 1
                            },
                            "source_region_coordinates": {
                                "items": {
                                    "properties": {
                                        "x": {
                                            "type": "integer",
                                            "minimum": 0
                                        },
                                        "y": {
                                            "type": "integer",
                                            "minimum": 0
                                        },
                                        "unit": {
                                            "enum": [
                                                "pixels",
                                                "points"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "x",
                                        "y",
                                        "unit"
                                    ],
                                    "type": "object"
                                },
                                "minItems": 3,
                                "type": "array"
                            },
                            "object_identity": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "confidence": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 100
                                    }
                                },
                                "required": [
                                    "name",
                                    "confidence"
                                ],
                                "type": "object"
                            }
                        },
                        "required": [
                            "object_identity",
                            "source_region_coordinates"
                        ],
                        "type": "object"
                    },
                    "type": "array"
                }
            },
            "required": [
                "items"
            ],
            "type": "object"
        },
        "transcription": {
            "properties": {
                "items": {
                    "items": {
                        "properties": {
                            "start_time_offset": {
                                "type": "number"
                            },
                            "end_time_offset": {
                                "type": "number"
                            },
                            "text": {
                                "type": "string"
                            },
                            "confidence": {
                                "type": "number"
                            }
                        },
                        "required": [
                            "start_time_offset",
                            "end_time_offset",
                            "text",
                            "confidence"
                        ],
                        "type": "object"
                    },
                    "type": "array"
                }
            },
            "required": [
                "items"
            ],
            "type": "object"
        },
        "classes": {
            "properties": {
                "items": {
                    "items": {
                        "properties": {
                            "time_offset": {
                                "type": "number",
                                "minimum": 0
                            },
                            "page": {
                                "type": "integer",
                                "minimum": 1
                            },
                            "classification": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "confidence": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 100
                                    }
                                },
                                "required": [
                                    "name",
                                    "confidence"
                                ],
                                "type": "object"
                            }
                        },
                        "required": [
                            "classification"
                        ],
                        "type": "object"
                    },
                    "type": "array"
                }
            },
            "required": [
                "items"
            ],
            "type": "object"
        }
    },
    "anyOf": [
        {
            "required": [
                "license_plates"
            ]
        },
        {
            "required": [
                "scene_changes"
            ]
        },
        {
            "required": [
                "faces"
            ]
        },
        {
            "required": [
                "objects"
            ]
        },
        {
            "required": [
                "transcription"
            ]
        },
        {
            "required": [
                "classes"
            ]
        }
    ],
    "type": "object"
}


If you would like to provide us with more information then please use the box below:

We will use your submission to help improve our product.