Skip to content

Process Videos

HTTP Request

POST /api/v1/videos:process

Request Body

Fields
inputUri
Required
string
The Input URI can either point to a single video or a storage bucket which contains existing Redactor state to load. The URI must end in a trailing slash if using a storage bucket.

Examples:

  • HTTP/HTTPS
    https://example.com/my-video.mp4
  • Filesystem Path
    file:///path/to/my-video.mp4 or file:///path/to/my-bucket/
  • Windows Path
    file:///C:/path/to/my-video.mp4 or file:///C:/path/to/my-bucket/
  • Azure SAS
    https://my-storage-account.blob.core.windows.net/container/path/to/my-video.mp4?sig=Sec... or https://my-storage-account.blob.core.windows.net/container/path/to/my-bucket/?sig=Sec...
  • AWS S3
    s3://bucket-name/path/to/my-video.mp4 or s3://bucket-name/path/to/my-bucket/

features
Required
Array of strings
Enum: MEDIA_PREPARE PERSON_DETECTION FACE_DETECTION VEHICLE_DETECTION LICENSE_PLATE_DETECTION SPEECH_TRANSCRIPTION MEDIA_RENDERING STATE_DROP

Array of the desired processing features
  • MEDIA_PREPARE - Import media and prepare for use with Redactor. This can be ommitted if other "features" are also in the request.
  • PERSON_DETECTION - Detect people
  • FACE_DETECTION - Detect faces
  • VEHICLE_DETECTION - Detect vehicles
  • LICENSE_PLATE_DETECTION - Detect vehicle license plates
  • SPEECH_TRANSCRIPTION - Transcribe the words spoken in a video for a specified language. (Requires Redactor v5)
  • MEDIA_RENDER - Render processed media. Required if output desired. (Redactor v4 used MEDIA_RENDERING which is now an alias.)
  • STATE_DROP - Remove all internal, persisted state from the Redactor server for the video/session. This includes videos, thumbnails, and redaction data. This does NOT remove data from the output locations you specified like the local filesystem directories, S3, Azure, etc. (Requires Redactor v5)
outputUri string
The URI of the storage bucket to use for persisting Redactor's state for the video, or the storage bucket and filename of the redacted video.

If outputUri ends in a trailing slash, all of the redaction state for the video will be persisted in the output bucket. This bucket can be used as the inputUri for subsequent API calls so that none of your previous work is lost. If a MEDIA_RENDER call is made, the redacted video will be saved to the bucket with the filename redacted.mp4.

  • Filesystem Path
    file:///path/to/my-bucket/ or file:///C:/path/to/my-bucket/
  • Azure SAS
    https://my-storage-account.blob.core.windows.net/container/path/to/my-bucket/?sig=Sec...
  • AWS S3
    s3://bucket-name/path/to/my-bucket/

If outputUri does NOT end in a trailing slash, Redactor will assume it is a filename and only the redacted video will be ouput using that filename (if MEDIA_RENDER is listed as a feature). You can name the output file anything you like, but it will be an MP4 container for videos and a JPG for images.

  • Filesystem Path
    file:///path/to/my-video.mp4 or file:///C:/path/to/my-video.mp4
  • Azure SAS
    https://my-storage-account.blob.core.windows.net/container/path/to/my-video.mp4?sig=Sec...
  • AWS S3
    s3://bucket-name/path/to/my-video.mp4

If outputUri is ommitted from the API request body, all redaction state will be kept in Redactor's internal filesystem, which is helpful if you only need to push videos into Redactor for end users that perform their work using the native UI.

notifications Array of objects (NotificationConfig)
Notification webhook descriptor. Users can enable webhooks to receive messages for their operation.
videoContext object (VideoContext)
Additional configuration options. All optional.
projectId string
Allows Embedded UI users to define a project identifier to that multiple videos can be loaded and presented to the end user in the editor.

Requirements: 6 to 36 characters in length; only contains lowercase letters, numbers, and hyphens; cannot end with a hyphen.

tag object
User-defined object that is returned in every notification.
acl
v4.4.5+
Array of strings
Optional list of one or more Redactor usernames that will have access to the video in the standard Redactor UI. E.g. ["user1", "user3"]

Types

VideoContext

Fields
prepareConfig object (PrepareConfig)
processConfig object (ProcessConfig)
renderConfig object (RenderConfig)

PrepareConfig

Fields
sessionId string
Default: auto-generated UUID
Allows the setting of the unique identifier for this specific video/session if the default value isn't desired. Can not be changed once its defined.
ignoreCertificateErrors boolean
Default: false
Ignores certificate errors for inputUri. Only enable if you trust the source's certificate (e.g. internal development server with self-signed certificate).

ProcessConfig

Fields
objectsConfidenceThreshold number
Default: 0.3 for gen6_standard profile
Confidence threshold for detection of all primary objects (people and vehicles). Value should be between 0 and 1. (Redactor v4 used confidenceThreshold which is now an alias.)
innerObjectsConfidenceThreshold number
Default: 0.15 for gen6_standard profile
Confidence threshold for detection of all objects contained in primary objects (faces and license plates). Value should be between 0 and 1. (Redactor v4 used confidenceThresholdSub which is now an alias.)
faceBoxExpansionFactor number
Default: 1.5
Scales the face detection bounding box size returned after auto-redaction. Value should be between 1 and 5. The default value was 2.0 in releases v4.3.0 and earlier. (Redactor v4 used faceboxExpand which is now an alias.)
profileName string
Default: "gen6_standard"
Enum: "gen6_standard" "gen6_highMotion" "gen6_conference" "gen5_standard" "gen5_highMotion"
Presets for the computer vision parameters used for auto-detection. While the _standard profile works well across a wide variety of videos, gen6_highMotion is recommended for body/dash camera footage or other videos with fast moving objects. Gen6 profiles are recommended over the older Gen5.

RenderConfig

Fields
redactionStyle string
Default: "MOSAIC"
Enum: "OUTLINE" "FILL" "PIXELATE" "BLUR" "MOSAIC"
redactionShape string
Default: "RECTANGLE"
Enum: "RECTANGLE" "ELLIPSE"
redactionIntensity string
Default: "MEDIUM"
Enum: "LOW" "MEDIUM" "HIGH"
redactionColor string
Default: "#9F0500"
The color used for OUTLINE and FILL redaction styles. Not used for other styles.
maskAudio string
Enum: "SILENCE" "BEEP" "SCRAMBLE"
If defined, all audio in the video will be masked using the method/type provided.
maskAudioParams Array of numbers 2 items
Default: [0.32,-0.24]
Only applicable when using SCRAMBLE maskAudio. Adjust the 2 values to modify the scramble strength and quality. Allowed values are between -1.0 and 1.0.
videoQuality number [ 0 .. 1 ]
Default: 0.65
Video encoding quality which impacts the size of output. 0 is the lowest quality, 1 is highest, and 0.65 is the default.
videoPreset string
Default: "ULTRAFAST"
Enum: "ULTRAFAST" "SUPERFAST" "VERYFAST" "FASTER" "FAST" "MEDIUM" "SLOW" "SLOWER" "VERYSLOW"
Controls the speed versus compression ratio. Reduce the preset to receive better compression.

NotificationConfig

Fields
method string
Value: "HTTP_POST"
uri string
The storage bucket URI to use for output.
events Array of string
Items Enum: "START" "PROGRESS" "COMPLETION"

Response Body

A success response returns an object with an Operation name in the format:
projects/{project-id}/locations/{location-id}/operations/{operation-id}

RESPONSE SCHEMA: application/json
name string<operationName>

Samples

Request

{
  "inputUri": "http://example.com/path/to/video.mp4",
  "features": [
    "FACE_DETECTION",
    "LICENSE_PLATE_DETECTION",
    "MEDIA_RENDERING"
  ],
  "outputUri": "s3://bucket-name/keyname/",
  "notifications": [
    {
      "method": "HTTP_POST",
      "uri": "https://example.com/mywebhook/endpoint",
      "events": [
        "START",
        "PROGRESS",
        "COMPLETION"
      ]
    }
  ],
  "videoContext": {
    "renderConfig": {
      "redactionStyle": "MOSAIC",
      "redactionShape": "ELLIPSE",
      "redactionIntensity": "HIGH",
      "redactionColor": "#CC3399",
      "maskAudio": "SCRAMBLE"
    },
    "processConfig": {
      "confidenceThreshold": 0.3,
      "confidenceThresholdSub": 0.05,
      "faceboxExpand": 2
    }
  },
  "tag": {
    "city": "Mountain View",
    "state": "CA",
    "validUntil": 1607111026726
  }
}

Response

{
  "name": "projects/{project-id}/locations/{location-id}/operations/{operation-id}"
}