Skip to content
This documentation is also available as markdown. For a complete index of all pages, see llms.txt at /llms.txt

Watermark Detection API Guide

DoveRunner automated watermark detection operates using a blind detection approach. During detection, the system analyzes video frames to identify the embedded watermark pattern and decrypts the watermark payload using the secret key that was used at the time of watermark insertion.

If a valid watermark payload is successfully extracted, the detection service queries the session database to locate the session record associated with the extracted payload. The corresponding session information is then returned as the detection result.

sequenceDiagram
    participant A as Service site
    participant B as DoveRunner service
    A ->> B: Suspicious content
    Note right of B: Detect watermark (payload)
    B -->> B: Analyze video frames
    opt Watermark detected
    Note right of B: Session database
    B -->> B: Find session data
    end
    B ->> A: Report detection result

The detailed requirements for watermark detection are as follows:

ItemDescription
Minimum video lengthIn order to detect watermarks, continuous recorded video without repeating sections with a length of at least 5 minutes is required
Video qualityAt least 480p with 1Mbps is required for detection. 720p or higher quality recommended
Video stabilityRequires fixed recorded video without shaking. Undetectable if the screen is shaken due to shooting with a handheld camera or smartphone
Buffering or freezingThere must be a section that was played normally without buffering or screen freezing for at least 5 minutes

The HTTP API requests used by the DoveRunner service follow the specifications below.

Please find the API request sample code in Sample Download page.

NameValue
pallycon-apidatabase64 Encoding ( JSON string )
{
"data":"{aes256 cbc encryption of 'API data' for each API, and base64 encoding}",
"timestamp":"{yyyy-mm-ddThh:mm:ssZ}",
"hash":"{sha256 hash of 'message format' in base64 string}"
}

Request Data Specification

Name
Value
Required
Description
dataStringYAES encryption on the JSON string generated by the specification for each API, and the result value is input as a base64 string.
timestampStringYEnter the time of the request at the GMT time zone in “yyyy-mm-ddThh: mm: ssZ” format.
hashStringYEnter the hash value generated according to the following specification.

AES256 Encryption

Aes256 encryption / decryption processing is performed as below using the site key value issued when joining DoveRunner service. (Check DoveRunner Console site)

  • mode : CBC
  • AES key : 32 byte (Site key issued from DoveRunner Console site)
  • AES IV : fixed 16 byte (0123456789abcdef)
  • padding : pkcs7

SHA256 message Format

The input value of the SHA256 hash is a combination of the following strings.

[site access key] + [site_id] + [json.data] + [json.timestamp]
  • site access key: It is the access key value that is issued when creating DoveRunner cloud service site. It can be checked on the DoveRunner Console page.
  • The resulting value of the sha256 hash function must be input to the base64 function as a binary data, not as a string.

You can call the Session API by setting the data issued through the token api in the Authorization header.

When calling the Session API, you need to set an authentication token issued by the process below.

Step 1: Generate the base64 encoded Authorization parameter

  1. Navigate to Base64 Enc/Dec page on DoveRunner DevConsole.
  2. While Encrypt option is selected, enter the AccountID:AccessKey value in the left text field.
  3. Base64 encoded output will be displayed as the screenshot below.
  4. Copy the output value to use in the next step.

You need to input the AccountID and AccessKey values for your DoveRunner service account.

Step 2: Use the parameter value to generate the Authorization token.

Call the token API URL with base64 encoded value in the Authorization request header.

ParameterFormatDescription
siteIdfour alphanumeric charactersYour DoveRunner Site ID shown on Console
NameDescription
AuthorizationBasic Auth : Basic base64encode(accountId:accessKey)

Sample Request

GET /api/v2/token/DEMO HTTP/1.1
Authorization: basic authInfo
Host: wm-detection.doverunner.com
Field NameTypeInfo
error_codeStringerror code
error_messageStringerror message
data.tokenStringapi auth token

Sample Response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 112
{
"error_code" : "0000",
"error_message" : "Success.",
"data" : {
"token" : "Bearer valid-token"
}
}

You can call the Session API by setting the data issued through the token api in the authorization header.

Response Status

HTTP Status CodeDescription
Error codeDescription
401Incorrect JWT Token specification or user information not found
403You do not have permission to use the API.
200Success

Response Data Fields

KeytypeValue
error_codeString0000: Success / Other values indicate failure
error_messageStringError message
dataJsonApi result

Detection request registration API using URL

Section titled “Detection request registration API using URL”

This API is for requesting a watermark detection using url.

variabledescription
SITE_IDSITE ID
SERVICE_CODEproduct code in detection service request. FWM - PD002, DWM - PD006. default: PD002
{
"title": "title",
"file_path": "aaa.mp4",
"demo_contents": false,
"metadata": {
"{key}": "{value}"
}
}
Keytyperequireddescription
titleStringYContent title
file_pathStringYDownload link for detection target video
demo_contentsBooleanNDoveRunner demo contents flag. default: false
metadataObjectNOptional key-value pairs (String to String) stored with the detection request.
{
"error_code": "{error code}",
"error_message": "{error message}",
"detection_id": "detection id"
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError message
detection_idNumberID for the detection request generated by DoveRunner system

Detection request registration API using URL (live)

Section titled “Detection request registration API using URL (live)”

This API is for requesting a watermark live detection using url.

variabledescription
SITE_IDSITE ID
SERVICE_CODEproduct code in detection service request. FWM - PD002
{
"title": "title",
"file_path": "https://example.cdn.com/live/stream/playlist.m3u8",
"demo_contents": false,
"metadata": {
"{key}": "{value}"
}
}
Keytyperequireddescription
titleStringYContent title
file_pathStringYHLS (.m3u8) live stream manifest URL
demo_contentsBooleanNDoveRunner demo contents flag. default: false
metadataObjectNOptional key-value pairs (String to String) stored with the detection request.
{
"error_code": "{error code}",
"error_message": "{error message}",
"detection_id": "detection id"
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError message
detection_idNumberID for the detection request generated by DoveRunner system

Signed url issuance API for requesting detection by file upload

Section titled “Signed url issuance API for requesting detection by file upload”

A detection request can also be requested by uploading a file directly. This is an api that issues AWS S3 signed url for file upload. When uploading a file to the issued url, a detection request is made.

variabledescription
SITE_IDSITE ID
SERVICE_CODEproduct code in detection service request. FWM - PD002, DWM - PD006. default: PD002
{
"title": "title",
"file_extension": "mp4",
"demo_contents": false,
"metadata": {
"{key}": "{value}"
}
}
Keytyperequireddescription
titleStringYContent title
file_extensionStringYFile extension (mp4, mkv, mov)
demo_contentsBooleanNDoveRunner demo contents flag. default: false
metadataObjectNOptional key-value pairs (String to String) stored with the detection request.
{
"error_code": "error code",
"error_message": "error message",
"upload_url": "upload url"
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError message
upload_urlStringSigned url that can be uploaded for 1 minute
curl -v --upload-file {filename.mp4} {signed upload url}

This API is for getting watermark detection list and each result.

variabledescription
SITE_IDSITE ID
SERVICE_CODEproduct code in detection service request. FWM - PD002, DWM - PD006. default: PD002
{
"search_keyword": "{search keyword}",
"search_condition": "{search condition}",
"detect_status": "FD001",
"from": "{YYYY-MM-DD'T'hh:mm:ss'Z'}",
"to": "{YYYY-MM-DD'T'hh:mm:ss'Z'}",
"page_unit": "{long value}",
"page_index": "{long value}",
"time_zone": "{hh:mm}",
"site_id": "{site id}",
"req_types": ["url", "file", "stream"]
}
Keytyperequireddescription
search_keywordStringNKeyword for search condition
search_conditionStringNSearch condition (title, detectionId). default: title
detect_statusStringNDetection status code (FD001 ~ FD005)
fromStringNCreation time search condition
toStringNCreation time search condition
page_unitIntNNumber of search items. default : 25
page_indexIntNPage index. default : 1
time_zoneStringNTime zone
site_idStringNSite id
req_typesArrayNSearch condition (type: url, file, stream)
{
"error_code": "{error code}",
"error_message": "{error message}",
"total_count": "total count",
"time_zone": "{hh:mm}",
"data": [{
"detection_id" : "{detection id}",
"site_id" : "{site id}",
"title": "{title}",
"demo_contents": "{demo contents}",
"detect_status" : "{detect status}",
"file_id" : "{file id}",
"file_path": "{file path}",
"region_code": "{region code}",
"service_code": "{service code}",
"wm_key": "{wm key}",
"wm_data": "{wm data}",
"reg_date" : "{register date}",
"update_date": "{update date}"
}]
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError Message
total_countStringtotal list count
time_zoneStringTime Zone
data.detection_idNumberDetection ID
data.site_idStringSite ID
data.titleStringContent title
data.demo_contentsStringDoveRunner demo contents flag
data.file_idNumberAnti-Piracy: Takedown ID, FWM Service: Detection target file ID
data.file_pathStringfile path
data.region_codeStringregion code
data.service_codeStringproduct code(DWM-PD006, FWM-PD002)
data.wm_keyStringfwm -fwm key, dwm - dwmId
data.wm_dataStringfwm -fwm data, dwm - recipient
data.reg_dateStringregistration date
data.update_dateStringupdate date

This API is for getting watermark detection detail.

variabledescription
SITE_IDSITE ID
SERVICE_CODEproduct code in detection service request. FWM - PD002, DWM - PD006. default: PD002
{
"detection_id": "{detection id}",
"site_id": "{site id}"
}
Keytyperequireddescription
detection idNumberYdetection ID
site_idStringNsite ID
{
"error_code": "{error code}",
"error_message": "{error message}",
"data": {
"detection_id" : "{detection id}",
"site_id" : "{site id}",
"title": "{title}",
"req_type": "{req_ ype}",
"demo_contents": "{demo contents}",
"detect_status" : "{detect status}",
"detect_progress_status": "{detect progress status}",
"file_path": "{file path}",
"file_id" : "{file id}",
"service_code": "{service code}",
"wm_key": "{wm key}",
"wm_data": "{wm data}",
"wm_seed_key": "{wm seed key}",
"error_code": "{error code}",
"error_message": "{error message}",
"reg_date" : "{register date}",
"update_date": "{update date}",
"sha256": "{sha256 hash}",
"metadata": {
"{key}": "{value}"
},
"detection_location": [
{
"frame_index": { "start": 12288, "end": 12671 },
"timestamp": { "start": "512000", "end": "527999" }
}
]
}
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError Message
data.detection_idNumberdetection ID
data.site_idStringSite ID
data.titleStringContent title
data.req_typeStringdetection request type(url, file)
data.demo_contentsStringDoveRunner demo contents flag
data.detect_statusStringdetection status code(FD001 ~ FD007)
data.detect_progress_statusStringdetection progress status code(FD100 ~ FD700)
data.file_idNumberAnti-Piracy: Takedown ID, FWM Service: Detection target file ID
data.file_pathStringfile path
data.service_codeStringproduct code(DWM-PD006, FWM-PD002)
data.wm_keyStringfwm -fwm key, dwm - dwmId
data.wm_dataStringfwm -fwm data, dwm - recipient
data.wm_seed_keyStringonly ADMIN
data.reg_dateStringregistration date
data.update_dateStringupdate date
data.error_codeStringinternal error code
data.error_messageStringiniternal error description
data.sha256StringSHA-256 hash of the analysed video, in hexadecimal.
data.metadataObjectThe metadata sent with the detection request, returned as a key-value object in the order it was submitted.
data.detection_locationArraySegments of the video in which the watermark was found. Absent when no segments were stored
data.detection_location[].frame_index.startNumberFirst frame index of the segment
data.detection_location[].frame_index.endNumberLast frame index of the segment
data.detection_location[].timestamp.startStringStart of the segment, reported by the detector as a string
data.detection_location[].timestamp.endStringEnd of the segment, reported by the detector as a string

This API is for getting the status history of a detection request as a timeline.

variabledescription
SITE_IDSITE ID
Keytyperequireddescription
detection_idNumberYDetection ID to look up, within the requested SITE_ID
{
"error_code": "0000",
"error_message": "Success.",
"data": {
"detection_id": 12345,
"histories": [
{ "detect_status": "FD001", "reg_date": "20260703090000" },
{ "detect_status": "FD002", "reg_date": "20260703090230" },
{ "detect_status": "FD003", "reg_date": "20260703091015" },
{ "detect_status": "FD004", "reg_date": "20260703094512" }
]
}
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError Message
data.detection_idNumberDetection ID of the requested detection
data.historiesArrayStatus history entries. Never empty in a success response
data.histories[].detect_statusStringdetection status code(FD001 ~ FD007)
data.histories[].reg_dateStringTime the status was first recorded, UTC in yyyyMMddHHmmss format

The entries of data.histories use the detect_status vocabulary listed in Detection Status Codes, not the detect_progress_status vocabulary.

Error CodeHTTP StatusDescription
A4041404No status history exists for the requested detection.
A1000402The detection_id value could not be read as a number
E9006403The Site ID of the credential does not match the SITE_ID in the request path

request detection stop API

variabledescription
SITE_IDSITE ID
SERVICE_CODEproduct code in detection service request. FWM - PD002, DWM - PD006. default: PD002
{
"detection_id": "{detection id}"
}
Keytyperequireddescription
detection idNumberYdetection ID
{
"error_code": "{error code}",
"error_message": "{error message}",
"data": "{detection id}"
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError Message
dataNumberDetection ID

Configure an AWS SNS topic so that DoveRunner can notify your service when a detection reaches a final state. One message is published per detection, whether it succeeded or failed, so you can automate follow-up actions such as revoking the sessions of a leaked watermark.

All Detection Status Notification APIs use the following path variables:

VariableDescription
SITE_IDYour DoveRunner Site ID (four alphanumeric characters)
NOTI_IDNotification ID (used in detail, update, and delete operations)

When a detection reaches a final state, DoveRunner publishes the following JSON message to the registered SNS topic.

{
"detection_id": 12345,
"detection_status": "FD004",
"forensic_mark": "0123456789abcdef",
"watermark_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"error_code": null,
"error_message": null
}
Keytypedescription
detection_idNumberDetection ID the message refers to
detection_statusStringFinal detection status code: FD004 (completed), FD006 (error) or FD007 (failed). See Detection Status Codes
forensic_markStringExtracted watermark payload. Present only when the detection completed successfully
watermark_tokenStringWatermark token matching the extracted payload, for use with the session revocation flow. Present only when the detection completed successfully
error_codeStringError code of the failure. Present only when the detection failed
error_messageStringError message of the failure. Present only when the detection failed

Register the AWS SNS topic that detection status notifications are published to.

{
"noti_name": "my_revoke_notification",
"aws_arn": "arn:aws:sns:ap-northeast-2:123456789012:example-sns",
"aws_access_key": "AKIAEXAMPLEKEY123",
"aws_secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
Keytyperequireddescription
noti_nameStringYNotification name
aws_arnStringYAWS ARN
aws_access_keyStringYAWS access key
aws_secret_keyStringYAWS secret key
{
"error_code": "0000",
"error_message": "Success.",
"data": {
"noti_id": 1
}
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError message
data.noti_idNumberNotification ID

Retrieve all registered notification lists for the site.

{
"error_code": "0000",
"error_message": "Success.",
"data": {
"total_count": 1,
"noti_list": {
"noti_id": 1,
"noti_name": "my_revoke_notification",
"aws_arn": "arn:aws:sns:ap-northeast-2:123456789012:example-sns",
"reg_time": "2025-07-20T09:00:00",
"update_time": "2025-07-21T13:00:00"
}
}
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError message
data.total_countNumberNumber of notifications
data.noti_list.noti_idNumberNotification ID
data.noti_list.noti_nameStringNotification name
data.noti_list.aws_arnStringAWS ARN
data.noti_list.reg_timeStringRegistration date (UTC)
data.noti_list.update_timeStringUpdate date (UTC)

Retrieve details of a specific notification.

{
"error_code": "0000",
"error_message": "Success.",
"data": {
"noti_id": 1,
"noti_name": "my_revoke_notification",
"aws_arn": "arn:aws:sns:ap-northeast-2:123456789012:example-sns",
"reg_time": "2025-07-20T09:00:00",
"update_time": "2025-07-21T13:00:00"
}
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError message
data.noti_idNumberNotification ID
data.noti_nameStringNotification name
data.aws_arnStringAWS ARN
data.reg_timeStringRegistration date (UTC)
data.update_timeStringUpdate date (UTC)

Update an existing notification configuration.

{
"noti_name": "updated_notification",
"aws_arn": "arn:aws:sns:ap-northeast-2:123456789012:updated-sns",
"aws_access_key": "AKIAEXAMPLEKEY456",
"aws_secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
Keytyperequireddescription
noti_nameStringNNotification name
aws_arnStringNAWS ARN
aws_access_keyStringNAWS access key
aws_secret_keyStringNAWS secret key
{
"error_code": "0000",
"error_message": "Success.",
"data": {
"noti_id": 1
}
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError message
data.noti_idNumberNotification ID

Delete a registered notification.

{
"error_code": "0000",
"error_message": "Success.",
"data": {
"noti_id": 1
}
}
Keytypedescription
error_codeString0000: Success, Other codes: Error
error_messageStringError message
data.noti_idNumberNotification ID

detect_status - overall detection status

Status CodeDescription
FD001Ready
FD002Downloading
FD003Detecting
FD004Completed
FD005Detection canceled
FD006Error
FD007Detection failed

detect_progress_status - detailed progress reported while a detection runs

Status CodeDescription
FD100Detection requested
FD110Checking media information
FD120Creating the auto-detection pod
FD210Download started
FD220Download completed
FD311Auto-detection started
FD312Auto-detection completed
FD321Manual detection started
FD322Failed to start Auto-detection
FD400Completed (progress)
FD520Cancel completed
FD600Error (progress)
FD601Media information check failed
FD700Failed (progress)
Error CodeDescriptionCauseSolution
A1000Invalid request parameter or pallycon-apidataA required field is missing or malformed, a path or query parameter has the wrong type, or the pallycon-apidata value could not be decoded or is missing encData / hash.Follow the API guide and send the correct parameters. The error message names the offending field after the colon.
A1002Invalid timestampThe timestamp in pallycon-apidata is missing, or is not in an accepted format.Send the timestamp in yyyy-MM-ddTHH:mm:ssZ format.
A1006Site key decryption failedThe Site Key or Access Key could not be decrypted, or encData could not be decrypted with the Site Key.Check and apply the correct Site Key and Access Key values from the DoveRunner Console site.
A1007Hash verification failedThe hash value of the API request data was generated incorrectly.Apply the correct hash value by referring to the API guide document.
A1108Not Service StatusService is not used.Request to Service.
A4001Service code is not supportedThe requested service code is not supported by this API.Use a supported service code (FWM or DWM for VOD detection, FWM only for live detection).
A4002Failed to register the detection requestAn internal server error occurred while saving the detection request.1. Check the parameters of the request data and retry.
2. Create a ticket on our Helpdesk to ask for support.
A4006Failed to update detect statusInternal server error.Create a ticket on our Helpdesk to ask for support.
A4009Cannot find detection informationThe requested detection could not be found, or the detection ID does not belong to this site.Check the detection ID and site ID, then retry. If the same error occurs, create a ticket on our Helpdesk.
A4010Cannot find the watermark keyNo watermark key matches the requested key value for this site.Check the watermark key and site ID, then retry.
A4016Failed to get dwmId listInternal server error occurred during detecting processCreate a ticket on our Helpdesk to ask for support.
A4017Failed to get max dwm IdInternal server error occurred during detecting processCreate a ticket on our Helpdesk to ask for support.
A4018Failed to detection list countInternal server error occurred during detecting processCreate a ticket on our Helpdesk to ask for support.
A4019Detection request limit reachedThe detection request limit was reached. A trial account is capped at 2 detections in total, and that quota does not reset. A commercial account is limited to 50 detections in progress at the same time.On a commercial plan, wait until detections in progress finish and request again. On a trial plan the cap is final — contact the Helpdesk to move to a commercial plan.
A4020Failed to get detection detail in updateInternal server error occurred during detecting processCreate a ticket on our Helpdesk to ask for support.
A4022Cannot find detection information while issuing a download URLThe detection for the requested download could not be found.Check the detection ID and retry.
A4023Invalid file extensionFile Extension(mp4, mpk, mov) is not supported.Try to check the valid File extension(mp4, mkv, mov)
A4025Updating is not possible with past status valuesInternal server error occurred during detecting processCreate a ticket on our Helpdesk to ask for support.
A4026Fail to access Video File from S3Internal server error occurred during detecting processCreate a ticket on our Helpdesk to ask for support.
A4027Fail to access Log Files from S3Internal server error occurred during detecting processCreate a ticket on our Helpdesk to ask for support.
A4029Session revocation notification duplicate registrationOnly one notification can be registered per siteDelete existing notification before registering new one or modify existing
A4030Invalid AWS SNS ARN registrationInvalid AWS ARN format or not an SNS ARNVerify AWS SNS ARN format (arn:aws:sns:region:account:topic)
A4032Notification not foundThe specified notification does not exist for this site.Verify the notification ID and site ID, then request again with the correct values.
A4033AWS SNS connection failureDoveRunner could not connect to the AWS SNS topic with the supplied credentials.Check the AWS credentials, region settings, and network connectivity.
A4034SNS notification registration failureInternal server error during notification registrationCreate a ticket on our Helpdesk to ask for support.
A4035SNS notification update failureInternal server error during notification updateCreate a ticket on our Helpdesk to ask for support.
A4036SNS notification deletion failureInternal server error during notification deletionCreate a ticket on our Helpdesk to ask for support.
A4040Invalid metadatametadata has more than 20 entries, a key longer than 128 characters, a value longer than 2048 characters, or a key or value containing control characters.Keep metadata within 20 entries, keys within 128 characters and values within 2048 characters, and remove control characters.
A4041Detection status history not foundNo status history exists for the requested detection.Check the detection ID and site ID, then request again.
A7001No watermark foundDetection finished successfully, but no watermark was found in the content.This is an informational result, not a failure. It is returned in data.error_code of the detection detail.
A9998Method not allowedThe HTTP method is not allowed for the requested endpoint.Use the HTTP method described for that endpoint in this guide.
A9999Undefined internal errorAn unexpected internal error occurred while handling the request.Create a ticket on our Helpdesk to ask for support.
E9000Authorization header is missingNo usable credential was sent, neither an Authorization header nor a pallycon-apidata value, or the endpoint does not accept the authentication method that was used.Send a Bearer token in the Authorization header, or send a pallycon-apidata payload on endpoints that accept AES authentication.
E9001Token value is invalidThe Authorization header is malformed, or it does not use the Bearer scheme.Send the header exactly as Authorization: Bearer TOKEN.
E9002Token payload value is invalidThe token was read, but its payload failed verification or is missing a required claim.Reissue the token from the DoveRunner Console and retry.
E9003Token is expiredThe token expiry time has passed.Issue a new token and retry.
E9006Insufficient permission for your Site IDThe account is not permitted to act on the requested Site ID, or the endpoint requires an administrator account.Check the siteId in the request path, and use an administrator account for admin-only endpoints.
E9008Account information not availableThe account resolved from the token has no API token registered.Check the account setup in the DoveRunner Console, or contact the Helpdesk.
E9015Invalid parameter in the decrypted request bodyThe decrypted pallycon-apidata body is not valid JSON.Make sure the JSON you encrypt into pallycon-apidata is well formed.
E9996Authentication server unreachableThe account lookup service is temporarily unavailable.Retry after a short wait. If the error persists, create a ticket on our Helpdesk.
E9997Failed to parse the server responseAn unexpected error occurred while processing an internal server response.Create a ticket on our Helpdesk to ask for support.
E9999Undefined internal error during account lookupAn unexpected error occurred while resolving the account for the request.Create a ticket on our Helpdesk to ask for support.
Error CodeDescriptions
D000Etc (undefined detection failure error)
D002The length of the video is less than 5 minutes.
D003Video codec is not supported for detection. Supported codecs are H.264 (AVC), H.265 (HEVC), and Apple ProRes.
D004The resolution is below 480P.  
D005Bitrate is less than 1 Mbps. 
D010The Extension should be in [.mp4, .mkv, .mov]
D011Failed to get the media specification.  
D017Video duration is too short for DWM detection. Minimum duration required is 30 seconds.
D018Detection request limit exceeded. Please check the maximum allowed number of detections.
D019Invalid stream URL extension: only .m3u8 files are supported for live detection.
D020Invalid stream URL format. Please provide a valid URI for live detection.
D021Invalid stream URL. Unable to retrieve the playlist (stream information) from the provided address.
D022Failed to retrieve a valid stream path from the master playlist. Ensure the playlist contains a .m3u8 stream reference.
D023DRM protected stream detected (SAMPLE-AES). Live detection cannot proceed on encrypted streams.