curl --request GET \
--url https://api.hebbianrobotics.com/api/v1beta/quality/duplicates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hebbianrobotics.com/api/v1beta/quality/duplicates"
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/duplicates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));false{
"compared_clip_count": 1,
"dataset": "<string>",
"exact": {
"groups": [
{
"clips": [
"<string>"
]
}
],
"redundant_clip_count": 1,
"redundant_percent": 50
},
"media_digest": "<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 duplicates in a dataset
Reports data that appears more than once. exact compares media bytes
over the same span, so it needs no threshold and makes no judgment: a group
is a fact about the collection. Other notions of duplicate will arrive as
sibling blocks in this response rather than as new endpoints.
Expect redundant_percent to be 0 on most datasets. A non-zero value is
usually a delivery that included the same footage twice.
For denominator and comparison guidance, see Understand quality metrics.
curl --request GET \
--url https://api.hebbianrobotics.com/api/v1beta/quality/duplicates \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hebbianrobotics.com/api/v1beta/quality/duplicates"
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/duplicates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));false{
"compared_clip_count": 1,
"dataset": "<string>",
"exact": {
"groups": [
{
"clips": [
"<string>"
]
}
],
"redundant_clip_count": 1,
"redundant_percent": 50
},
"media_digest": "<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 media_digest token from an earlier response. Omit to use the
latest comparison.
Response
Duplicate footage and the clips compared
Duplicate footage in a dataset, one block per notion of duplicate.
The block is named for the notion, not the endpoint, because more are
coming: exact compares bytes and needs no threshold, while a perceptual or
re-encoded comparison would need one and would answer a different question.
Reading exact therefore never becomes ambiguous when a sibling ships, and
both would share the one denominator below.
Clips compared, which is the denominator every percentage here is taken over. Clips the comparison has not covered are excluded rather than assumed unique.
x >= 0Dataset ID used in the request.
Byte-for-byte identical footage. null when nothing in this dataset has
been compared that way yet, which is not the same as no duplicates.
Show child attributes
Show child attributes
Opaque measurement token. Matching tokens identify results from the same comparison.
