curl --request GET \
--url https://api.hebbianrobotics.com/api/v1beta/quality/video-characteristics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hebbianrobotics.com/api/v1beta/quality/video-characteristics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hebbianrobotics.com/api/v1beta/quality/video-characteristics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));false{
"analysis": "<string>",
"blur_score": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
},
"coverage_percent": 50,
"dataset": "<string>",
"frames_measured": 1,
"luma": {
"average": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
},
"ninetieth_percentile": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
},
"percentile_spread": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
},
"tenth_percentile": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
}
},
"temporal_information": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
},
"video_characteristics": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}Get dataset video characteristics
Returns continuous summaries of blur, Temporal Information, and luminance. Optional thresholds you supply add above-threshold percentages without turning those thresholds into service QC policy.
For denominator and comparison guidance, see Understand quality metrics.
curl --request GET \
--url https://api.hebbianrobotics.com/api/v1beta/quality/video-characteristics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hebbianrobotics.com/api/v1beta/quality/video-characteristics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hebbianrobotics.com/api/v1beta/quality/video-characteristics', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));false{
"analysis": "<string>",
"blur_score": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
},
"coverage_percent": 50,
"dataset": "<string>",
"frames_measured": 1,
"luma": {
"average": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
},
"ninetieth_percentile": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
},
"percentile_spread": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
},
"tenth_percentile": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
}
},
"temporal_information": {
"maximum": 123,
"mean": 123,
"minimum": 123,
"observed_frames": 1,
"population_standard_deviation": 1,
"unavailable_frames": 1,
"above_threshold": {
"percent_above": 50,
"threshold": 1
}
},
"video_characteristics": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}{
"code": "<string>",
"message": "<string>"
}Authorizations
Bearer access token issued through OAuth 2.0 client credentials.
Query Parameters
Dataset ID from GET /api/v1beta/quality/datasets.
Opaque analysis token from an earlier response. Omit to use the latest
measurement.
Opaque video_characteristics token from an earlier response. Omit to
use the latest measurement.
Optional blur-score cutoff. When supplied, blur_score.above_threshold
reports the percentage of observed frames strictly above it.
x >= 0Optional Temporal Information cutoff. When supplied,
temporal_information.above_threshold reports the percentage of
observed frame pairs strictly above it.
x >= 0Response
Video-characteristic distributions, optional threshold results, and coverage
Dataset-level continuous frame measurements and measurement completeness.
Opaque token identifying the analysis used for this response.
Edge-spread blur score distribution. Higher values mean more blur.
Show child attributes
Show child attributes
Percentage of the planned analysis that successfully produced values
used in this response, in [0, 100]. This is measurement completeness,
not the percentage of footage that passed quality control. null when
the planned result count cannot be determined reliably. Non-null values
are rounded to two decimal places.
0 <= x <= 100Dataset ID used in the request.
Frames included in these summaries.
x >= 0Luminance distributions on an 8-bit 0-255 scale.
Show child attributes
Show child attributes
Temporal Information distribution. Higher values mean more consecutive-frame change, which can suggest jerkiness or instability but can also reflect fast valid motion.
Show child attributes
Show child attributes
Opaque token identifying the video-characteristics measurement.
