VidProtect (8.6.9)

Download OpenAPI specification:Download

Get link for play video

Authorizations:
apiKeysecretKey
Request Body schema: application/json
mobileNumber
required
string = 11 characters
Default: "09123456789"

Client mobile number

ip
string

Client IP for limited access, send if accessWithMultiIp eq with true

fileId
required
string

File id

faultTolerance
number >= 6

Maximum number of fault tolerance. If this value is exceeded, the user will be banned

fixWatermark
boolean

The possibility of fixed text across the screen

enableBeep
boolean

Add additional security layer for protect sound

accessWithMultiIp
boolean

Prevent to sharing links based client ip

securityProtection
boolean

360 degree security protection system

offlineMode
boolean

Prevent to show video on offline mode

sendProtectionAlert
boolean

Send warning SMS to high-risk users

enableActiveSession
boolean

Prevent to sharing links based current active session

beepInterval
number >= 1

The duration of the delay in the execution of the beep

preventZoom
boolean

Prevent zom-in OR zom-out

enablePlaylist
boolean

Add playlist in player if exist

extraWatermark
string [ 1 .. 40 ] characters

Display custom text like userId, email, ip, ..., Note: Make sure no spaces are included

beepVolume
number [ 0.1 .. 1 ]

Beep volume

needInstallApplication
boolean

Playing the video in playback mode from the installed software on end user system. (Don't use this if you want to play on browser)

expireTime
string

Defines the expiration duration for a link. The format consists of a number followed by a single-character time unit that specifies the time period. Supported time units are:

  • s: seconds
  • m: minutes
  • h: hours
  • d: days
  • w: weeks
  • M: months
  • y: years

Example: 2h (expires in 2 hours)

Responses

Request samples

Content type
application/json
{
  • "mobileNumber": "09123456789",
  • "ip": "string",
  • "fileId": "string",
  • "faultTolerance": 6,
  • "fixWatermark": true,
  • "enableBeep": true,
  • "accessWithMultiIp": true,
  • "securityProtection": true,
  • "offlineMode": true,
  • "sendProtectionAlert": true,
  • "enableActiveSession": true,
  • "beepInterval": 1,
  • "preventZoom": true,
  • "enablePlaylist": true,
  • "extraWatermark": "string",
  • "beepVolume": 0.1,
  • "needInstallApplication": true,
  • "expireTime": "string"
}

Response samples

Content type
application/json
{
  • "url": "string"
}

Bucket

Create bucket

Authorizations:
apiKeysecretKey
Request Body schema: application/json
title
required
string <= 50 characters
description
string <= 500 characters

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Update bucket

Authorizations:
apiKeysecretKey
Request Body schema: application/json
bucketId
required
string
title
required
string <= 50 characters
description
string <= 500 characters

Responses

Request samples

Content type
application/json
{
  • "bucketId": "string",
  • "title": "string",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Delete bucket

Authorizations:
apiKeysecretKey
Request Body schema: application/json
bucketId
required
string

Responses

Request samples

Content type
application/json
{
  • "bucketId": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Get list of buckets

Authorizations:
apiKeysecretKey
query Parameters
sortBy
string

Sort parameter in the format of _id:desc or _id:asc. _id can be replaced with another column name as needed.

limit
integer <int32> >= 1

Limit the number of results returned per page.

currentPage
integer <int32> >= 1

Specify the current page of results, for pagination.

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "currentPage": 0,
  • "limit": 0,
  • "totalPages": 0,
  • "totalResults": 0
}

Get bucket info

Authorizations:
apiKeysecretKey
query Parameters
bucketId
required
string

Bucket id

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "title": "string",
  • "description": "string",
  • "totalFiles": 0,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

File

Delete file

Authorizations:
apiKeysecretKey
Request Body schema: application/json
required
fileId
required
string

Responses

Request samples

Content type
application/json
{
  • "fileId": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Update file

Authorizations:
apiKeysecretKey
path Parameters
fileId
required
string

File id

Request Body schema: multipart/form-data
description
string <= 500 characters
title
string <= 50 characters
file
string <binary>

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Get list of files

Authorizations:
apiKeysecretKey
query Parameters
sortBy
string

Sort parameter in the format of _id:desc or _id:asc. _id can be replaced with another column name as needed.

limit
integer <int32> >= 1

Limit the number of results returned per page.

currentPage
integer <int32> >= 1

Specify the current page of results, for pagination.

bucketId
required
string

Bucket id

hlsStatus
string
Enum: "done" "waiting" "failed"
listOfId
string

Get list of file infos based on list of id, split each id with comma (,)

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "currentPage": 0,
  • "limit": 0,
  • "totalPages": 0,
  • "totalResults": 0
}

Get list of files on all bucket

Authorizations:
apiKeysecretKey
query Parameters
sortBy
string

Sort parameter in the format of _id:desc or _id:asc. _id can be replaced with another column name as needed.

limit
integer <int32> >= 1

Limit the number of results returned per page.

currentPage
integer <int32> >= 1

Specify the current page of results, for pagination.

hlsStatus
string
Enum: "done" "waiting" "failed"
listOfId
string

Get list of file infos based on list of id, split each id with comma (,)

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "currentPage": 0,
  • "limit": 0,
  • "totalPages": 0,
  • "totalResults": 0
}

Get file info

Authorizations:
apiKeysecretKey
query Parameters
fileId
required
string

File id

basedOn
string
Default: "_id"

Search for file based on column (default: _id)

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "bucket": "string",
  • "title": "string",
  • "description": "string",
  • "fileSize": "string",
  • "realFileSize": 0,
  • "duration": "string",
  • "fileOwner": "string",
  • "fileId": "string",
  • "thumbnail": "string",
  • "hlsStatus": {
    },
  • "builtTime": "string",
  • "demo": {
    },
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "hlsBuiltFileSize": 0
}

Retry build video

Authorizations:
apiKeysecretKey
Request Body schema: application/json
required
fileId
required
string

Responses

Request samples

Content type
application/json
{
  • "fileId": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Upload file with tus protocol

This path is only available for tus protocol and cannot upload file with postman or anything else

Authorizations:
apiKeysecretKey
header Parameters
bucket_id
string

Bucket id (default: Default Folder)

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Storage

Get storage dns withe list

Authorizations:
apiKeysecretKey

Responses

Response samples

Content type
application/json
{
  • "allowedDNS": [
    ]
}

Update storage dns withe list

Authorizations:
apiKeysecretKey
Request Body schema: application/json
required
allowedDNS
required
Array of strings

Allowed ips

Responses

Request samples

Content type
application/json
{
  • "allowedDNS": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Get storage config

Authorizations:
apiKeysecretKey

Responses

Response samples

Content type
application/json
{
  • "fontSize": 0,
  • "speed": 0,
  • "fontColor": "string",
  • "opacity": 0,
  • "link": {
    },
  • "displayTextOnScreen": true,
  • "sendProtectionAlert": true,
  • "needInstallApplication": true,
  • "fixWatermark": true,
  • "ipValidation": true,
  • "enableBeep": true,
  • "enablePlaylist": true,
  • "enableActiveSession": true,
  • "beepInterval": 0,
  • "preventZoom": true,
  • "beepVolume": 0,
  • "faultTolerance": 0,
  • "player": {
    }
}

Update storage config

Authorizations:
apiKeysecretKey
Request Body schema: application/json
speed
number >= 1

The speed of moving text on the screen

fontColor
string
Enum: "#ffff00" "#dda0dd" "#800000" "#4b0082" "#ffa500" "#27ae60" "#16a085" "#af7ac5" "#e74c3c" "#66a310"

Text font color

fontSize
number >= 14

Text font size

opacity
number <float> [ 0.2 .. 1 ]

The transparency of the text in the player, between 0 to 1 in float

displayTextOnScreen
boolean

Prevent to show text on screen

needInstallApplication
boolean

Prevent screen capture with third party application(trial version, do not use in your production)

sendProtectionAlert
boolean

Send warning SMS to high-risk users

ipValidation
boolean

if true you need to set your server ip to the white list

enableBeep
boolean

Add additional security layer for protect sound

enableActiveSession
boolean

Prevent to sharing links based current active session

beepInterval
number >= 1

The duration of the delay in the execution of the beep

preventZoom
boolean

Prevent zom-in OR zom-out

beepVolume
number <float> [ 0.1 .. 1 ]

Beep volume

faultTolerance
number <= 6

Maximum number of fault tolerance. If this value is exceeded, the user will be banned

fixWatermark
boolean

The possibility of fixed text across the screen

enablePlaylist
boolean

Add playlist in player if exist

object
object

Responses

Request samples

Content type
application/json
{
  • "speed": 1,
  • "fontColor": "#ffff00",
  • "fontSize": 14,
  • "opacity": 0.2,
  • "displayTextOnScreen": true,
  • "needInstallApplication": true,
  • "sendProtectionAlert": true,
  • "ipValidation": true,
  • "enableBeep": true,
  • "enableActiveSession": true,
  • "beepInterval": 1,
  • "preventZoom": true,
  • "beepVolume": 0.1,
  • "faultTolerance": 6,
  • "fixWatermark": true,
  • "enablePlaylist": true,
  • "player": {
    },
  • "link": {
    }
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Get list of allowed colors

Responses

Response samples

Content type
application/json
[
  • "string"
]

Get list of allowed expirations for links

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Teacher

Get teacher dashboard info

Authorizations:
apiKeysecretKey

Responses

Response samples

Content type
application/json
{
  • "totalFilesInStorage": 0,
  • "userId": "string",
  • "storage": {
    }
}

Teacher Analysis

Unblock the user

Authorizations:
apiKeysecretKey
Request Body schema: application/json
required
mobileNumber
required
string

Responses

Request samples

Content type
application/json
{
  • "mobileNumber": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Get list of all end-user for all video

Authorizations:
apiKeysecretKey
query Parameters
sortBy
string

Sort parameter in the format of _id:desc or _id:asc. _id can be replaced with another column name as needed.

limit
integer <int32> >= 1

Limit the number of results returned per page.

currentPage
integer <int32> >= 1

Specify the current page of results, for pagination.

timeSeries
number
Enum: 7 30 90

Time series parameter based on day

search
string

User mobile number, Note: To get information based on a list of phone numbers, use a comma between each phone number

actionType
string
Default: "attacker,risky,normal"

User action type (valid: attacker, risky, normal)

banned
boolean

Get list of banned user based time series

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "currentPage": 0,
  • "limit": 0,
  • "totalPages": 0,
  • "totalResults": 0,
  • "visitorCounts": 0,
  • "blockedVisitorCounts": 0
}

Slug

Get file info on third party site Deprecated

Authorizations:
apiKeysecretKey
path Parameters
fileId
required
string

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "title": "string",
  • "description": "string",
  • "fileSize": "string",
  • "thumbnail": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Playlist

Get playlist by id

Authorizations:
apiKeysecretKey
query Parameters
playlistId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create playlist

Authorizations:
apiKeysecretKey
Request Body schema: application/json
title
string

Responses

Request samples

Content type
application/json
{
  • "title": "string"
}

Response samples

Content type
application/json
{
  • "_id": "string"
}

Update playlist by id

Authorizations:
apiKeysecretKey
Request Body schema: application/json
playlistId
required
string
title
string
Array of objects

Responses

Request samples

Content type
application/json
{
  • "playlistId": "string",
  • "title": "string",
  • "files": [
    ]
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Delete playlist by id

Authorizations:
apiKeysecretKey
Request Body schema: application/json
playlistId
required
string

Responses

Request samples

Content type
application/json
{
  • "playlistId": "string"
}

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "string"
}

Get list of playlists

Authorizations:
apiKeysecretKey
query Parameters
sortBy
string

Sort parameter in the format of _id:desc or _id:asc. _id can be replaced with another column name as needed.

limit
integer <int32> >= 1

Limit the number of results returned per page.

currentPage
integer <int32> >= 1

Specify the current page of results, for pagination.

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "currentPage": 0,
  • "limit": 0,
  • "totalPages": 0,
  • "totalResults": 0
}