Revelio API Routes

Encode a video

POST https://api.revelio.ai/v1/encodeSets up the framework for encoding a video. Returns the required parameters to upload video to the encoding queue.
Parameters
tokenstring
The authentication token used to authorize the request. Tokens are managed from your creator dashboard.
webhookURL?optional string
The callback url existing on your infrastructure. Updates to the the video status, primarily the encoding status, are posted to the provided webhook.
watermark?optional object
The watermarking data to be embedded into the video, provided as an object of key/value pairs in which both the key and the value are strings. This watermark is shared by all pods in the video unless a unique watermark is specified at the pod level.
pods?optional array
The list of pods in the video. Each pod represents a segment of the video. If no pods are provided, the entire video is considered a single pod.
Child attributes
name?optional string
The name assigned to identify the pod. If no name is provided the pods uuid is used.
startTimestamp?optional string
The start video timestamp of the pod formatted as HH:MM:SS.
endTimestamp?optional string
The end video timestamp of the pod formatted as HH:MM:SS.
watermark?optional object
The watermarking data to be embedded into the video, provided as an object of key/value pairs in which both the key and the value are strings. This watermark is unique to the pod and will override the shared watermark if specified
encodingAlgorithm?optional string
The encoding algorithm to be used to encode the video.
Options: "interactive_1_0", "tracking_1_0"
Default: "interactive_1_0"
autoPublish?optional boolean
The flag used to determine if the encoded video and generated watermarks should be published. If the watermarks and/or video are not published future decoding will not be possible.
Default: true
Request
{
"token": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"webhookURL": "https://api.yourdomain.com/v1/callback",
"watermark": {
"author": "Revelio",
"foo": "bar",
},
"pods": [
{
"name": "Example Pod",
"startTimestamp": "00:00:00",
"endTimestamp": "00:03:10",
"watermark": {
"position": "top-right",
"opacity": 0.5,
},
},],
"encodingAlgorithm": "interactive_1_0",
"autoPublish": true,
},
Response
videoIDstring
The uuid of the encoded video.
uploadURLstring
A callback url to upload the encoded video. Once uploaded the video will be queued for encoding.
uploadFieldsobject
The fields required to authorize the upload to the provided upload url.
Child attributes
keystring
AWSAccessKeyIdstring
x-amz-security-tokenstring
policystring
signaturestring
Response
{
"videoID": "04d42OL9FDmfj8YCM6t1",
"uploadURL": "https://revelio-content-creator-store.s3.amazonaws.com/",
"uploadFields": {
"key": "ABcd1234EfGhIjKlMnOp/uploads/xYz789KlmNopQrs456TuW.mp4",
"AWSAccessKeyId": "ASIAXYZ123EXAMPLEKEY",
"x-amz-security-token": "IQoJb3JpZ2luX2VjEXAMPLESECURITYTOKENH+Z7AHRKIOEX4",
"policy": "eyJleHBpcmF0aW9uIjogIjIwMjUtMDItMDFUMDA6MDA6MDBaIiwgImNvbmRpdGlvbnMiOiBbeyJidWNrZXQiOiAibXktY29udGVudC1zdG9yYWdlIn0sIHsiYWNsIjogInByaXZhdGUifSwgeyJzdGFydHMtd2l0aCI6ICIka2V5IiwgInVwbG9hZHMvIn1dfQ==",
"signature": "abc123signatureEXAMPLExyz456789",
},
},

Decode

POST https://api.revelio.ai/v1/decodeSets up the framework for decoding a video. Returns the required parameters to upload video to the encoding queue.
Parameters
tokenstring
The authentication token used to authorize the request. Tokens are managed from your creator dashboard.
webhookURL?optional string
The callback url existing on your infrastructure. Updates to the the scan status, primarily the decoding status, are posted to the provided webhook.
scanSource?optional string
The source of the video to be decoded, either from a handheld capture of the video or from a crawled recording.
Options: "handheldScan", "crawledScan"
Default: "crawledScan"
Request
{
"token": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"webhookURL": "https://api.yourdomain.com/v1/callback",
"scanSource": "crawledScan",
},
Response
scanIDstring
The uuid of the scanned video.
uploadURLstring
A callback url to upload the scanned video. Once uploaded the video will be queued for decoding.
uploadFieldsobject
The fields required to authorize the upload to the provided upload url.
Child attributes
keystring
AWSAccessKeyIdstring
x-amz-security-tokenstring
policystring
signaturestring
Response
{
"scanID": "00LzfkMA0rPRvJ3eMCKt",
"uploadURL": "https://revelio-content-creator-store.s3.amazonaws.com/",
"uploadFields": {
"key": "ABcd1234EfGhIjKlMnOp/uploads/xYz789KlmNopQrs456TuW.mp4",
"AWSAccessKeyId": "ASIAXYZ123EXAMPLEKEY",
"x-amz-security-token": "IQoJb3JpZ2luX2VjEXAMPLESECURITYTOKENH+Z7AHRKIOEX4",
"policy": "eyJleHBpcmF0aW9uIjogIjIwMjUtMDItMDFUMDA6MDA6MDBaIiwgImNvbmRpdGlvbnMiOiBbeyJidWNrZXQiOiAibXktY29udGVudC1zdG9yYWdlIn0sIHsiYWNsIjogInByaXZhdGUifSwgeyJzdGFydHMtd2l0aCI6ICIka2V5IiwgInVwbG9hZHMvIn1dfQ==",
"signature": "abc123signatureEXAMPLExyz456789",
},
},

Retrieve a video

GET https://api.revelio.ai/v1/video/:idRetrieve a video object
Parameters
tokenstring
The authentication token used to authorize the request. Tokens are managed from your creator dashboard.
Request
{
"token": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
},
Response
videoIDstring
The uuid of the encoded video.
videoobject
The requested video object.
Child attributes
creatorIDstring
The uuid of the creator of the video.
statusstring
The video publication status.
Options: "draft", "published"
encodingStatusstring
The encoding status of the video.
Options: "processing", "done", "failed"
encodingAlgorithm?optional string
The encoding algorithm to be used to encode the video.
Options: "interactive_1_0", "tracking_1_0"
title?optional string
The title of the video.
webhookURL?optional string
The callback url existing on your infrastructure.
description?optional string
The description of the video.
encodedVideoLink?optional string
The link to the encoded video.
thumbnailImage?optional object
The thumbnail image of the video.
Child attributes
url?optional string
The url of the thumbnail image.
contentType?optional string
The content type of the thumbnail image.
name?optional string
The name of the thumbnail image.
updated?optional object
The timestamp of the last update to the image.
Child attributes
_secondsnumber
The seconds since epoch.
_nanosecondsnumber
The nanoseconds since the last second.
viewCounter?optional number
The number of views the video has received, equivalent to the number of scans.
updated?optional object
The timestamp of the last update to the video.
Child attributes
_secondsnumber
The seconds since epoch.
_nanosecondsnumber
The nanoseconds since the last second.
created?optional object
The timestamp of the video creation.
Child attributes
_secondsnumber
The seconds since epoch.
_nanosecondsnumber
The nanoseconds since the last second.
Response
{
"videoID": "04d42OL9FDmfj8YCM6t1",
"video": {
"creatorID": "DKFJld4IXahEKL0lJ8VMEjsg3rr1",
"status": "published",
"encodingStatus": "done",
"encodingAlgorithm": "interactive_1_0",
"title": "Example Video",
"webhookURL": "https://api.yourdomain.com/v1/callback",
"description": "This is an example video.",
"encodedVideoLink": "https://revelio-content-creator-store.s3.amazonaws.com/encoded/04d42OL9FDmfj8YCM6t1.mp4",
"thumbnailImage": {
"url": "https://example-storage.googleapis.com/v0/b/revelio.appspot.com/o/creator%2FHFEAwZGfmFQeiHoOgjCuFVZWXCj1%2FpfHPxW6S3DIMjKrFANCR_thumbnail?alt=media&token=421d8c62-728a-4ca8-a7ab-9cdcc7a44c5e",
"contentType": "image/jpeg",
"name": "04d42OL9FDmfj8YCM6t1_thumbnail",
"updated": {
"_seconds": 1732649662,
"_nanoseconds": 237000000,
},
},
"viewCounter": 100,
"updated": {
"_seconds": 1732649662,
"_nanoseconds": 237000000,
},
"created": {
"_seconds": 1732649662,
"_nanoseconds": 237000000,
},
},
},