Basic Requirements
All requests have the prerequisite api/
For example the "Get channel/{id}" REST call would be GET api/channel/{guid}
All Id's are Guid's
Channels
GET channel/{id}
Example Request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example Response:
Headers:
X-Transaction-ID: {string}
Example JSON Response:
Will contain the channel JSON but will also contain the configuration JSON for a channel, which is a template JSON file that
can be POSTed back. Recommended to view the JSON in a JSON viewer.
{
"encoders": [
{
"name": "FS CRW01 Channel01",
"raiseOnError": true,
"type": "MediaExcelHero",
"encoderSpecific": {
"heroApiUrlA": "http://10.196.50.49/hms/soapproxy.php",
"heroApiUrlB": "http://10.196.50.49/hms/soapproxy.php",
"heroChannelId": 830,
"heroDeviceId": 5,
"supportsContinousTimeStamp": true
},
"streamingServer": {
"type": "USP",
"streamingServerSpecific": {
"primaryPublishingPoint": {
"publishingpointUrl": "http://10.196.50.53:8080/live/fs/crw01
/ch01/channel1/live.isml",
"uspAPI": "http://80.169.3.216:9292",
"uspAPIKey": "dff32df7-59a3-49e1-ae02-976e342beb55",
"dvrWindowLength": 30,
"filePath": "/home/user/live/fs/crw01/ch01/channel1/"
},
"secondaryPublishingPoint": {
"publishingpointUrl": "",
"uspAPI": "",
"uspAPIKey": "",
"dvrWindowLength": 30,
"filePath": ""
}
}
},
"outputUrls": [
{
"streamProtocol": "HLS",
"liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.m3u8",
"vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.m3u8",
"liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
/ch01/channel1/live.isml/live.m3u8",
"vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
/ch01/channel1/vod.ism/vod.m3u8",
"liveOriginSecondaryUrl": "",
"vodOriginSecondaryUrl": ""
},
{
"streamProtocol": "DASH",
"liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.mpd",
"vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.mpd",
"liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
/ch01/channel1/live.isml/live.mpd",
"vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
/ch01/channel1/vod.ism/vod.mpd",
"liveOriginSecondaryUrl": "",
"vodOriginSecondaryUrl": ""
},
{
"streamProtocol": "HSS",
"liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/Manifest",
"vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/Manifest",
"liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
/ch01/channel1/live.isml/Manifest",
"vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
/ch01/channel1/vod.ism/Manifest",
"liveOriginSecondaryUrl": "",
"vodOriginSecondaryUrl": ""
},
{
"streamProtocol": "DASH",
"liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.f4m",
"vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.f4m",
"liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
/ch01/channel1/live.isml/live.f4m",
"vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/crw01
/ch01/channel1/vod.ism/vod.f4m",
"liveOriginSecondaryUrl": "",
"vodOriginSecondaryUrl": ""
}
]
},
{
"name": "FS CHF01 Channel01",
"type": "MediaExcelHero",
"raiseOnError": false,
"encoderSpecific": {
"heroApiUrlA": "http://80.169.3.218:80/hms/soapproxy.php",
"heroApiUrlB": "http://80.169.3.219:80/hms/soapproxy.php",
"heroChannelId": 829,
"heroDeviceId": 5,
"supportsContinousTimeStamp": true
},
"streamingServer": {
"type": "USP",
"streamingServerSpecific": {
"primaryPublishingPoint": {
"publishingpointUrl": "http://10.196.50.54:8080/live/fs/chf01
/ch01/channel1/live.isml",
"uspAPI": "http://80.169.3.217:9292",
"uspAPIKey": "dff32df7-59a3-49e1-ae02-976e342beb55",
"dvrWindowLength": 30,
"filePath": "/home/user/live/fs/chf01/ch01/channel1/"
},
"secondaryPublishingPoint": {
"publishingpointUrl": "",
"uspAPI": "",
"uspAPIKey": "",
"dvrWindowLength": 30,
"filePath": ""
}
}
},
"outputUrls": [
{
"streamProtocol": "HLS",
"liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.m3u8",
"vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.m3u8",
"liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
/ch01/channel1/live.isml/live.m3u8",
"vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
/ch01/channel1/vod.ism/vod.m3u8",
"liveOriginSecondaryUrl": "",
"vodOriginSecondaryUrl": ""
},
{
"streamProtocol": "DASH",
"liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.mpd",
"vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.mpd",
"liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
/ch01/channel1/live.isml/live.mpd",
"vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
/ch01/channel1/vod.ism/vod.mpd",
"liveOriginSecondaryUrl": "",
"vodOriginSecondaryUrl": ""
},
{
"streamProtocol": "HSS",
"liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/Manifest",
"vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/Manifest",
"liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
/ch01/channel1/live.isml/Manifest",
"vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
/ch01/channel1/vod.ism/Manifest",
"liveOriginSecondaryUrl": "",
"vodOriginSecondaryUrl": ""
},
{
"streamProtocol": "HDS",
"liveCdnUrl": "http://cdn.channel1.vis.org/live.isml/live.f4m",
"vodCdnUrl": "http://cdn.channel1.vis.org/vod.ism/vod.f4m",
"liveOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
/ch01/channel1/live.isml/live.f4m",
"vodOriginPrimaryUrl": "http://cc.vualto.org/live/fs/chf01
/ch01/channel1/vod.ism/vod.f4m",
"liveOriginSecondaryUrl": "",
"vodOriginSecondaryUrl": ""
}
]
}
]
}
GET channel
NOTE: Returns all data for all channels.
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Example JSON Response:
Very similar to "GET channel/{id}" but as an array.
DELETE channel/{id}
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
POST channel
Add new Channel
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Response Body Params:
ID: {string} - Optional Parameter. Same ID will cause and Update
Name: {string} - Name
ConfigurationJson: {string} - The Template channel JSON. Has to be the same JSON
structure as the GET
Example Schema for JSON:
{
"encoders": {
"type": "array",
"items": {
"title": "encoder",
"type": "object",
"properties": {
"name": { "type": "string" },
"raiseOnError": { "type": "boolean"},
"type": {
"type": "string",
"enum": [
"FFMPEGWindows",
"FFMPEGLinux",
"ExpressionEncoder",
"MediaExcelHero",
"FMLE"
]
},
"encoderSpecific": {
"type": "object",
"oneOf": [
{ "$ref": "#/definitions/heroEncoders" }
]
},
"streamingServer": {
"title": "streaming Server",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"USP"
]
},
"streamingServerSpecific": {
"type": "object",
"oneOf": [
{ "$ref": "#/definitions/usp" },
{ "$ref": "#/definitions/wowza" }
]
}
}
},
"outputUrls": {
"type": "array",
"items": {
"title": "stream",
"type": "object",
"anyOf": [
{ "$ref": "#/definitions/hls" },
{ "$ref": "#/definitions/hss" },
{ "$ref": "#/definitions/dash" },
{ "$ref": "#/definitions/hds" }
]
}
}
},
"required": [ "name", "raiseOnError", "encoderSpecific",
"streamingServer", "outputUrls"}
}
},
"definitions": {
"heroEncoders": {
"properties": {
"heroApiUrlA": { "type": "string" },
"heroApiUrlB": { "type": "string" },
"heroChannelId": { "type": "integer" },
"heroDeviceId": { "type": "integer" },
"supportsContinousTimeStamp": { "type": "boolean" }
},
"required": [ "heroApiUrlA", "heroApiUrlB", "heroChannelId",
"heroDeviceId" ], "additionalProperties": false },
"usp": {
"properties": {
"primaryPublishingPoint": {
"type": "object",
"properties": {
"publishingpointUrl": { "type": "string" },
"uspAPI": { "type": "string" },
"uspAPIKey": { "type": "string" },
"dvrWindowLength": { "type": "integer" },
"filePath": { "type": "string" }
},
"required": [ "publishingpointUrl", "uspAPI", "uspAPIKey",
"dvrWindowLength", "filePath" ]
},
"secondaryPublishingPoint": {
"type": "object",
"properties": {
"publishingpointUrl": { "type": "string" },
"uspAPI": { "type": "string" },
"uspAPIKey": { "type": "string" },
"dvrWindowLength": { "type": "integer" },
"filePath": { "type": "string" }
},
"required": [ "publishingpointUrl", "uspAPI", "uspAPIKey",
"dvrWindowLength", "filePath" ]
}
},
"required": [ "primaryPublishingPoint", "secondaryPublishingPoint" ],
"additionalProperties": false
},
"wowza": {
"properties": {
"not set": { "type": "string" }
},
"additionalProperties": false
},
"hls": {
"properties": {
"streamProtocol": { "enum": [ "HLS" ] },
"liveCdnUrl": {
"type": "string"
},
"vodCdnUrl": {
"type": "string"
},
"liveOriginPrimaryUrl": {
"type": "string"
},
"vodOriginPrimaryUrl": {
"type": "string"
},
"liveOriginSecondaryUrl": {
"type": "string"
},
"vodOriginSecondaryUrl": {
"type": "string"
}
},
"required": [ "streamProtocol", "liveCdnUrl", "vodCdnUrl",
"liveOriginPrimaryUrl", "vodOriginPrimaryUrl" ],
"additionalProperties": false
},
"hss": {
"properties": {
"streamProtocol": { "enum": [ "HSS" ] },
"liveCdnUrl": {
"type": "string"
},
"vodCdnUrl": {
"type": "string"
},
"liveOriginPrimaryUrl": {
"type": "string"
},
"vodOriginPrimaryUrl": {
"type": "string"
},
"liveOriginSecondaryUrl": {
"type": "string"
},
"vodOriginSecondaryUrl": {
"type": "string"
}
},
"required": [ "streamProtocol", "liveCdnUrl", "vodCdnUrl",
"liveOriginPrimaryUrl", "vodOriginPrimaryUrl" ], "additionalProperties":
false}, "dash": {
"properties": {
"streamProtocol": { "enum": [ "DASH" ] },
"liveCdnUrl": {
"type": "string"
},
"vodCdnUrl": {
"type": "string"
},
"liveOriginPrimaryUrl": {
"type": "string"
},
"vodOriginPrimaryUrl": {
"type": "string"
},
"liveOriginSecondaryUrl": {
"type": "string"
},
"vodOriginSecondaryUrl": {
"type": "string"
}
},
"required": [ "streamProtocol", "liveCdnUrl", "vodCdnUrl",
"liveOriginPrimaryUrl", "vodOriginPrimaryUrl" ],
"additionalProperties": false},
"hds": {
"properties": {
"streamProtocol": { "enum": [ "HDS" ] },
"liveCdnUrl": {
"type": "string"
},
"vodCdnUrl": {
"type": "string"
},
"liveOriginPrimaryUrl": {
"type": "string"
},
"vodOriginPrimaryUrl": {
"type": "string"
},
"liveOriginSecondaryUrl": {
"type": "string"
},
"vodOriginSecondaryUrl": {
"type": "string"
}
},
"required": [ "streamProtocol", "liveCdnUrl", "vodCdnUrl",
"liveOriginPrimaryUrl", "vodOriginPrimaryUrl"],"additionalProperties": false
}
}
}
PUT channel/{id}
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Response Body Params:
ID: {string} - Optional Parameter. Same ID will cause and Update
Name: {string} - Name
ConfigurationJson: {string} - The Template channel JSON. Has to be the same JSON
structure as the GET
GET channel/statistics/{id}
Returns the Stats for the channels that are available within the HMS API
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Example JSON Response:
{
"statistics": {
"information": {
"?xml": {
"@version": "1.0"
},
"HERAStats": {
"channel_id": "5",
"processId": "705",
"configName": "Channel 20",
"cpuLoad": "4.05",
"cpuSystemIdle": "93.99",
"cpuLoadMeasureDuration": "1.21",
"processMemory": "273700",
"vmSize": "1932724",
"videoPid": "0",
"audioPid0": "0",
"audioPid1": "0",
"audioPid2": "0",
"audioPid3": "0",
"inputFrameRate": "25.00",
"inputFrameCount": "55512",
"inputFrameLost": "0",
"inputFrameBuffered": "0",
"deinterlacedFrameBuffered": "0",
"inputVideoBitRate": "124413986",
"inputAudioBitRate": "1535949",
"inputLostPackets": "0",
"inputPacketCount": "55512",
"inputAspectRatio": "4:3",
"inputByteCount": "34959237120",
"inputBytesDropped": "0",
"inputBitRate": "125953057",
"inputLastTime": "1437044031",
"startTime": "1437041811",
"currentTime": "1437044031",
"currentClock": "7524929",
"leftVolume": "255",
"rightVolume": "255",
"inputPcmLeveldB": "0.00",
"demuxerOffset": "0",
"vodProcState": "0",
"errorMessage": "",
"privateData": "",
"privateDataType": "0",
"channelPcmLevelsdB": "-1.$ -1.$ 0.0 0.0 0.0 0.0 0.0 0.0 ",
"progress": "0.00",
"outputCount": "4",
"statMode": "-1",
"sourceType": "6",
"sourceStat": "0",
"sourceInfo": "sdi[board_id:1 ch_id:1]",
"sourceReplaceFile": "",
"sourceReplaceType": "-1",
"videoFreeze": "0",
"audioSilence": "0",
"secondSource": {
"sourceType": "-1",
"sourceStat": "-1",
"sourceInfo": ""
},
"muted": "0",
"myHmsIp": "10.196.50.49",
"stream": [
{
"@id": "0",
"videoTargetRate": "1300000",
"videoRate": "1315256",
"audioTargetRate": "64000",
"audioRate": "0",
"muxRate": "1315256",
"encoderLastClock": "7524929",
"encoderFrameCount": "55472",
"muxedLastClock": "7524929",
"muxedFrameCount": "55472",
"frameRate": "25.00",
"actualEncRate": "25.02",
"currentPosition": "0",
"totalDuration": "0",
"encodingSpeed": "0",
"progress": "0.00",
"videoCodecType": "0",
"audioCodecType": "2",
"dspId": "-2",
"coreId": "-1",
"dspLoad": "0.00",
"inputFrameBuffered": "0",
"outputFrameBuffered": "0",
"inputFrameCount": "55512",
"outputFrameCount": "55472",
"bufferedFrameCount": "40",
"outputStartTime": "1437041809"
},
{
"@id": "1",
"videoTargetRate": "850000",
"videoRate": "852891",
"audioTargetRate": "64000",
"audioRate": "0",
"muxRate": "852891",
"encoderLastClock": "7524929",
"encoderFrameCount": "55473",
"muxedLastClock": "7524929",
"muxedFrameCount": "55473",
"frameRate": "25.00",
"actualEncRate": "24.99",
"currentPosition": "0",
"totalDuration": "0",
"encodingSpeed": "0",
"progress": "0.00",
"videoCodecType": "0",
"audioCodecType": "2",
"dspId": "-2",
"coreId": "-1",
"dspLoad": "0.00",
"inputFrameBuffered": "0",
"outputFrameBuffered": "0",
"inputFrameCount": "55512",
"outputFrameCount": "55474",
"bufferedFrameCount": "38",
"outputStartTime": "1437041809"
},
{
"@id": "2",
"videoTargetRate": "300000",
"videoRate": "299267",
"audioTargetRate": "64000",
"audioRate": "64054",
"muxRate": "363537",
"encoderLastClock": "7524929",
"encoderFrameCount": "55474",
"muxedLastClock": "7524929",
"muxedFrameCount": "55474",
"frameRate": "25.00",
"actualEncRate": "25.01",
"currentPosition": "0",
"totalDuration": "0",
"encodingSpeed": "0",
"progress": "0.00",
"videoCodecType": "0",
"audioCodecType": "1",
"dspId": "-2",
"coreId": "-1",
"dspLoad": "0.00",
"inputFrameBuffered": "0",
"outputFrameBuffered": "18",
"inputFrameCount": "55512",
"outputFrameCount": "55474",
"bufferedFrameCount": "38",
"outputStartTime": "1437041809"
},
{
"@id": "3",
"videoTargetRate": "850000",
"videoRate": "852336",
"audioTargetRate": "64000",
"audioRate": "64043",
"muxRate": "917146",
"encoderLastClock": "7524929",
"encoderFrameCount": "55475",
"muxedLastClock": "7524929",
"muxedFrameCount": "55474",
"frameRate": "25.00",
"actualEncRate": "25.00",
"currentPosition": "0",
"totalDuration": "0",
"encodingSpeed": "0",
"progress": "0.00",
"videoCodecType": "0",
"audioCodecType": "1",
"dspId": "-2",
"coreId": "-1",
"dspLoad": "0.00",
"inputFrameBuffered": "0",
"outputFrameBuffered": "0",
"inputFrameCount": "55512",
"outputFrameCount": "55474",
"bufferedFrameCount": "38",
"outputStartTime": "1437041809"
}
]
}
},
"isRunning": true
},
{
"information": {},
"isRunning": false
}
]
}
}
Logs
GET log
Note: Could be useful for displaying errors in the admin.
Query Params:
Level: {string}
- 'Trace' or 'Debug' or 'Info' or 'Warn' or 'Error' or 'Fatal'
From: {ISO8601 string}
- Datetime. E.g. '2015-04-21T11:48:38Z' or '2015-04-21T12:48:38+01:00'
To: {ISO8601 string}
- Datetime. E.g. '2015-04-21T12:48:38Z' or '2015-04-21T13:48:38+01:00'
Page Size: {int}
- The page size to return. E.g. 10.
Page Number: {int}
Order: {string}
- 'ASC' or 'DESC'
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Example JSON Response:
{
{
"id": 16,
"callSite": "VuPlatform.VIS.Service.Logging.VISLogging.Log(c:\\DevWork\
\vualto-ip-videoplatform\\src\\VuPlatform.VIS.Service\\Logging\
\VISLogging.cs:73)", "date":"2015-07-08T11:54:50Z",
"exception": "",
"level": "Warn",
"logger": "VuPlatform.VIS.Service.Logging.VISLogging",
"machineName": "CHRIS-PC",
"message": "Event has been deleted with ID
2d5336e5-1e30-4ced-bf6a-1bd3a17d2485",
"stackTrace": "<no type>.lambda_method => EventController.Delete =>
VISLogging.Log",
"thread": "14",
"username": "IIS APPPOOL\\vualto VIS"
},
{ "id": 17, "callSite": "VuPlatform.VIS.Service.Logging.VISLogging.Log(c:\
\DevWork\\vualto-ip-videoplatform\\src\\VuPlatform.VIS.Service\\Logging\
\VISLogging.cs:73)",
"date":"2015-07-08T11:55:29Z",
"exception": "",
"level": "Warn",
"logger": "VuPlatform.VIS.Service.Logging.VISLogging",
"machineName": "CHRIS-PC",
"message":"Event has been deleted with
ID 2d5336e5-1e30-4ced-bf6a-1bd3a17d2485",
"stackTrace": "<no type>.lambda_method
=> EventController.Delete => VISLogging.Log",
"thread":"14",
"username": "IISAPPPOOL\\vualtoVIS"
},
{
"id":18,
"callSite":"VuPlatform.VIS.Service.Logging.VISLogging.Log(c:\
\DevWork\\vualto-ipvideoplatform\\src\\VuPlatform.VIS.Service\\Logging\
\VISLogging.cs:73)",
"date": "2015-07-08T11:57:33Z",
"exception": "",
"level": "Warn",
"logger": "VuPlatform.VIS.Service.Logging.VISLogging",
"machineName": "CHRIS-PC",
"message": "Event has been deleted with ID:
2d5336e5-1e30-4ced-bf6a-1bd3a17d2485. API Key:
25f0d858-b112-4fc38498-f1245e95fb2a",
"stackTrace":"<notype>.lambda_method => EventController.Delete =>
VISLogging.Log", "thread":"6","username":
"IISAPPPOOL\\vualtoVIS"
}
Events
Event States
PRE_LIVE
This is the events initial state. It's possible to set an event back to pre-live and
this will remove the existing publishing point.
LIVE_UNPUBLISHED
This will start the encoder and create the publishing point. However, the state can
signal to a player that the stream should not yet be displayed.
LIVE_PUBLISHED
This will start the encoder if not already started, and create the publishing point.
The published state can be use to signal to a player that the stream is ready for
public viewing.
SUSPENDED
This state provides a way to stop the encoder, but keep the publishing point active
so that when the encoder restarts (e.g. change back to a LIVE state), it continues
streaming. This will also mean the VOD will not contain data when the encoder was
not publishing, and will appear seemless to a user.
STOPPED
This will stop the encoder and end the stream. This state will naturally
transition to INSTANT_VOD.
INSTANT_VOD
This state behaves the same as above but signifies the INSTANT_VOD is ready.
INSTANT_VOD_BACKUP
The Instant VOD has been backed up to longer term storage, but no longer stream able.
INSTANT_VOD_BACKUP and INSTANT_VOD_DELETE is a configuration setting and can only be
one or the other.
INSTANT_VOD_DELETE
The instant VOD has been deleted and is no longer stream able.
INSTANT_VOD_BACKUP and INSTANT_VOD_DELETE is a configuration setting and can only be
one or the other.
PRE_VOD
The metadata is in the system, but no physical VOD asset has been attached.
VOD_INGESTING
The VOD is currently ingesting and will be available once completed.
VOD_PRIVATE
The VOD is private and only viewable from the protected URL.
When putting an event into private, please clear the CDN cache.
VOD_PUBLIC
The VOD is public and available to the CDN for public usage.
GET event/{id}
Query Params:
StreamSource: {string}
- 'CDN_INDEX_0' or 'CDN_INDEX_1' or 'ORIGIN_PRIMARY_INDEX_0' or
'ORIGIN_SECONDARY_INDEX_0' or 'ORIGIN_PRIMARY_INDEX_1' or
'ORIGIN_SECONDARY_INDEX_1'
A stream source for the event object. Index 0 will relate to single threaded channel
(first encoder channel). Index 1 will related to multithreaded channel (second encoder
channel). Handy if you want to see what the output is from any of the output stream
sources.
AutoStart: {bool}
- 'True' or 'False' : Auto start the simple player.
ProcessVideo: {bool}
- 'True' or 'False' : Process the video object of the event. This will return
player urls, embed codes and output stream urls.
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Example JSON response:
{
"video": {
"webPageUrl": null,
"playerUrl": "http://local.simpleplayer.vualto/player/embedcode
/2d5336e5-1e30-4ced-bf6a1bd3a17d2484?streamSource=ORIGIN_PRIMARY_INDEX_0",
"embedCode":"",
"scriptablePlayerUrl":"http://local.simpleplayer.vualto/player/embedcode
/2d5336e5-1e30-4ced-bf6a1bd3a17d2484?scriptable=True&streamSource=
ORIGIN_PRIMARY_INDEX_0",
"scriptableEmbedCode":"<div id=\"embedCodeIFrame\"></div>\r\n<script type=\"text
/javascript\">\r\n var src=\"http://local.simpleplayer.vualto/Player/Index
/2d5336e5-1e30-4ced-bf6a1bd3a17d2484?streamSource=ORIGIN_PRIMARY_INDEX_0\";
\r\n src+=\"#\"+ encodeURIComponent(document.location.href);\r\n
$(\"#embedCodeIFrame\").replaceWith(\"<iframe src=\\\"\" src+\"\\\" id=\\\
"VuPlayer\\\"name=\\\"UKPPlayer\\\" title=\\\"VuPlayer\\\" seamless=\\\
"seamless\\\" frameBorder=\\\"0\\\"allowfullscreen style=\\\
"width:100%;height:100%;\\\"></iframe>\");\r\n</script>",
"requestedInPoint": null,
"requestedOutPoint": null,
"requestedAudioOnly": false,
"requestedAutoStart": false,
"liveUrls": [{"streamProtocol": 0, "streamProtocolString": "HLS",
"url": "http://cc.vualto.org/live/ou/crw02/ch01
/2d5336e5-1e30-4ced-bf6a-1bd3a17d2484/live.isml/live.m3u8",
"streamSource": 2,
"streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
},
{
"streamProtocol": 3,
"streamProtocolString": "DASH",
"url": "http://cc.vualto.org/live/ou/crw02/ch01
/2d5336e5-1e30-4ced-bf6a-1bd3a17d2484/live.isml/live.mpd",
"streamSource": 2,
"streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
},
{
"streamProtocol": 2,
"streamProtocolString": "HSS",
"url": "http://80.169.3.216/live/ou/crw02/ch01
/2d5336e5-1e30-4ced-bf6a-1bd3a17d2484/live.isml/Manifest",
"streamSource": 2,
"streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
},
{
"streamProtocol": 4,
"streamProtocolString": "HDS",
"url": "http://80.169.3.216/live/ou/crw02/ch01
/2d5336e5-1e30-4ced-bf6a-1bd3a17d2484/live.isml/live.f4m",
"streamSource": 2,
"streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
}
],
"vodUrls": [
{
"streamProtocol": 0,
"streamProtocolString": "HLS",
"url": "http://cc.vualto.org/live/ou/crw02/ch01/2d5336e5-1e30-4ced-
bf6a1bd3a17d2484/vod.isml/vod.m3u8?t=2015-07-06T14:48:08",
"streamSource":2,
"streamSourceString": "ORIGIN_PRIMARY_INDEX_0"},
{
"streamProtocol":3,
"streamProtocolString": "DASH",
"url": "http://cc.vualto.org/live/ou/crw02/ch01/2d5336e5-1e30-4ced-
bf6a1bd3a17d2484/vod.isml/vod.mpd?t=2015-07-06T14:48:08",
"streamSource":2,
"streamSourceString":"ORIGIN_PRIMARY_INDEX_0"
},
{"streamProtocol":2,
"streamProtocolString":"HSS",
"url":"http://80.169.3.216/live/ou/crw02/ch01/2d5336e5-1e30-4ced-
bf6a1bd3a17d2484/vod.isml/Manifest?t=2015-07-06T14:48:08",
"streamSource":2,
"streamSourceString":"ORIGIN_PRIMARY_INDEX_0"
},
{"streamProtocol":4,
"streamProtocolString":"HDS",
"url":"http://80.169.3.216/live/ou/crw02/ch01/2d5336e5-1e30-4ced-
bf6a1bd3a17d2484/vod.isml/vod.f4m?t=2015-07-06T14:48:08",
"streamSource": 2,
"streamSourceString":"ORIGIN_PRIMARY_INDEX_0"
}],
"currentStateUrls":
[
{"streamProtocol":0,
"streamProtocolString":"HLS",
"url":"http://cc.vualto.org/live/ou/crw02/ch01/2d5336e5-1e30-4ced-bf6a-
1bd3a17d2484/vod.isml/vod.m3u8",
"streamSource":2,
"streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
},
{ "streamProtocol":3,
"streamProtocolString": "DASH",
"url": "http://cc.vualto.org/live/ou/crw02/ch01/2d5336e5-1e30-4ced-bf6a-
1bd3a17d2484/vod.isml/vod.mpd",
"streamSource": 2,
"streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
},
{
"streamProtocol": 2,
"streamProtocolString": "HSS",
"url": "http://80.169.3.216/live/ou/crw02/ch01/2d5336e5-1e30-4ced-bf6a-
1bd3a17d2484/vod.isml/Manifest",
"streamSource": 2,
"streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
},
{
"streamProtocol": 4,
"streamProtocolString": "HDS",
"url": "http://80.169.3.216/live/ou/crw02/ch01/2d5336e5-1e30-4ced-bf6a-
1bd3a17d2484/vod.isml/vod.f4m",
"streamSource": 2,
"streamSourceString": "ORIGIN_PRIMARY_INDEX_0"
}
]
},
"id": "2d5336e5-1e30-4ced-bf6a-1bd3a17d2484",
"title": "Education Panel",
"scheduledStart": "2015-06-12T13:25:00Z",
"scheduledEnd": "2015-06-12T14:40:00Z",
"eventTypeId": null,
"categoryId": null,
"roomId": null,
"eventType": "",
"category": "",
"room": "",
"state": 4,
"stateString": "STOPPED",
"channelId": "dab1ba3f-1e21-4473-bcdf-a9d77f92b847",
"actualLiveStart": "2015-07-06T14:48:08Z",
"actualLiveEnd": null,
"publishedStart": "2015-07-06T14:48:37Z",
"documents": "http://local.vis.vualto/api/document/event
/2d5336e5-1e30-4ced-bf6a-1bd3a17d2484",
"tags": "http://local.vis.vualto/api/tag/event/2d5336e5-1e30-4ced-bf6a-1bd3a17d2484"
}
GET event
Get all Events
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Body Params:
From: {ISO8601 string}
datetime. E.g. “2015-04-21T11:48:38Z” or “2015-04-21T12:48:38+01:00”
To: {ISO8601 string}
datetime. E.g. “2015-04-21T12:48:38Z” or “2015-04-21T13:48:38+01:00”
Page Size: {int}
The page size to return. E.g. “10”.
Page Number: {int}
Order: {string}
“ASC” or “DESC”
Channel: {string}
Name of a channel. E.g. “OU CRW02 Channel01”
Example JSON response:
{
"results": [
{
"video": null,
"id": "2d5336e5-1e30-4ced-bf6a-1bd3a17d2484",
"title": "Education Panel",
"scheduledStart": null,
"scheduledEnd": "2015-06-12T14:40:00Z",
"eventTypeId": null,
"categoryId": null,
"roomId": null,
"eventType": "",
"category": "",
"room": "",
"state": 0,
"stateString": "PRE_LIVE",
"channelId": "605143ce-d20c-4485-a554-0cb2901ded11",
"actualLiveStart": "2015-06-12T13:25:00Z",
"actualLiveEnd": "2015-07-15T10:52:48Z",
"publishedStart": "2015-06-12T13:25:00Z",
"channel": "OU CRW02 Channel01 and OU CRW02 Channel02",
"displayStart": "2015-06-12T13:25:00Z",
"displayEnd": "2015-07-15T10:52:48Z",
"autoStart": false,
"autoEnd": false,
"documents": null,
"tags": null
},
{
"video": null,
"id": "2d5336e5-1e30-4ced-bf6a-1bd3a17d2485",
"title": "Education Panel",
"scheduledStart": "2015-06-14T13:25:00Z",
"scheduledEnd": null,
"eventTypeId": null,
"categoryId": null,
"roomId": null,
"eventType": "",
"category": "",
"room": "",
"state": 0,
"stateString": "PRE_LIVE",
"channelId": "dab1ba3f-1e21-4473-bcdf-a9d77f92b847",
"actualLiveStart": "2015-07-15T10:53:09Z",
"actualLiveEnd": "2015-07-15T10:43:27Z",
"publishedStart": "2015-07-15T10:53:09Z",
"channel": "OU CRW02 Channel01",
"displayStart": "2015-07-15T10:53:09Z",
"displayEnd": "2015-07-15T10:43:27Z",
"autoStart": false,
"autoEnd": false,
"documents": null,
"tags": null
}
],
"totalCount": 2,
"pageSize": 2
}
POST event
All parameters are optional and can be omitted apart from ID which is required for updating or if you want to create your own ID. ScheduledEnd parameter can be omitted or left empty to signify the event will never end.
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Body Params: Note: '?' indicates Optional Parameter.
id: {guid?}
Title: {string}
ScheduledStart: {ISO8601 string}
ScheduledEnd: {ISO8601 string}
AutoStart: {bool}
AutoEnd: {bool}
ChannelID: {guid}
PublishedStart: {string}
PublishedEnd: {string}
RoomId: {guid?}
EventTypeId: {guid?}
CategoryId: {guid?}
ChannelId: {guid?}
DrmJson: {string}
AdditionalStreamingOptions: {string}
Tags: IEnumerable<TagModel>
Example DrmJson parameter:
{
"drm_provider": "VUALTO",
"drm_data":
[
{
"name": "CENC"
},
{
"name": "FAIRPLAY",
"ask": "asdasdadasd",
"pem-file-url": "https://vualto-drm-resources.s3.amazonaws.com/clients/VUALTO
/VUALTO.pem",
"der-file-url": "https://vualto-drm-resources.s3.amazonaws.com/clients/VUALTO
/VUALTO.der"
},
{
"name": "AES"
}
]
}
DELETE event/{id}
Example request:
Request headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
PUT event/forcestop/{id}
Use this method to force an event into a stopped state. This function will also force stop the encoder channel it’s running under bypassing the concurrency lock mechanism and removing any existing locks. Should be used as a last resort in case the lock synchronisation becomes out of sync. Potentially dangerous as no checks will be made to see if an event channel encoder is already running.
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
PUT event/state/{id}
Use update state to start and stop the encoders for the event.
Send “ LIVE_PUBLISHED” to start the encoder.
Send “ STOPPED” to stop the encoder.
Example request:
Request headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Body Params:
State
“PRE_LIVE” or “LIVE_PUBLISHED” or “STOPPED”
PUT event/vuflow/protection/{contentId}
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Body Params:
VuflowProtectionModel Model:
protection: {string} VOD_PUBLIC VOD_PRIVATE
Example response:
Headers:
X-Transaction-ID: {string}
GET event/reference/{referenceId}
Get Event by Reference Id
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Query Params:
referenceId : {string}
- client assigned reference Id
Example response:
Headers:
X-Transaction-ID: {string}
Example JSON response:
{
"video": {
"webPageUrl": null,
"playerUrl": "http://local.player.vuworkflow.vualto.vualto.com/player/embedcode
/f4faec6a-e2da-451f-bc10-ec63a066e9c0",
"embedCode": "",
"scriptablePlayerUrl": "http://local.player.vuworkflow.vualto.vualto.com/player
/embedcode/f4faec6a-e2da-451f-bc10-ec63a066e9c0?scriptable=True",
"scriptableEmbedCode": "",
"requestedInPoint": null,
"requestedOutPoint": null,
"requestedAudioOnly": false,
"requestedAutoStart": false,
"liveUrls": [],
"vodUrls": [],
"currentStateUrls": []
},
"id": "f4faec6a-e2da-451f-bc10-ec63a066e9c0",
"title": "Vod Event Test",
"refId": "Reference XYZ",
"scheduledStart": "2016-11-04T09:30:00Z",
"scheduledEnd": "2016-11-04T11:30:00Z",
"eventTypeId": "41450c8a-1959-4a49-91a2-a7b137efd479",
"categoryId": "7a03d03c-b751-4de4-8912-caec34e66f7f",
"roomId": null,
"eventType": "NEW Event Type ",
"category": "Post Newton Category",
"room": "",
"state": 8,
"stateString": "PRE_VOD",
"channelId": null,
"actualLiveStart": null,
"actualLiveEnd": null,
"publishedStart": null,
"channel": "",
"displayStart": "2016-11-04T09:30:00Z",
"displayEnd": "2016-11-04T11:30:00Z",
"autoStart": false,
"autoEnd": false,
"publishedEnd": null,
"drmJson": "{\"drm_provider\":\"NONE\"}",
"drmData": null,
"documents": "http://local.vis.vuworkflow.vualto.vualto.com/api/document/event
/f4faec6a-e2da-451f-bc10-ec63a066e9c0",
"tags": "http://local.vis.vuworkflow.vualto.vualto.com/api/tag/event
/f4faec6a-e2da-451f-bc10-ec63a066e9c0",
"additionalStreamingOptions": "--archive_segment_length=600 --archiving=1
--archive_length=259200 --dvr_window_length=43200 --restart_on_encoder_reconnect
--iss.minimum_fragment_length=10 --hls.minimum_fragment_length=10
--hls.client_manifest_version=4 --hls.no_audio_only",
"taskEngineJson": "",
"vuflowId": "f3923c74-5a1c-4620-a5ca-6e48fcaeb066",
"vuflow": "Mikes Vuflow",
"dvrLength": null,
"maxBitrate": null,
"minBitrate": null,
"vodDrm": false
}
Categories
POST category
Add New category
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Body Params
Name: {string}
PUT category
Update category
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Body Params
Name: {string}
GET category
Get ALL categories
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response
[
{
"id": "1e57588e-5d73-4960-ac80-9d759336ac55",
"name": "Test Category Add 2",
"systemCategory": false
},
{
"id": "bd077c44-749e-4f87-9421-9b871be39fff",
"name": "Test Category Add 3",
"systemCategory": false
},
{
"id": "6a29d3bf-54ab-4d1a-9275-659d77c7f21a",
"name": "Test Category Update",
"systemCategory": false
}
]
GET category/{id}
Get category by Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response:
{
"id": "1e57588e-5d73-4960-ac80-9d759336ac55",
"name": "Test Category Add 2",
"systemCategory": false
}
DELETE category/{id}
Delete category by Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Documents
POST document
Add/Update Document Model: Add: leave out optional Body Parameters Update: use all parameters
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Body Params
EventId: {guid}
DocumentId: {guid?} - optional
Title: {string }
Url: {string}
Order: {int?} - optional
GET Document
Get ALL documents
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response
[
{
"id": "ba1ece20-9570-49de-b6ca-57307eb643aa",
"order": 3,
"name": "Test Document 2",
"url": "https://abc.def.com"
},
{
"id": "9152b712-edac-44bc-b0fc-ba170c2df7a6",
"order": 2,
"name": "Test Document",
"url": "https://abc.def.com"
},
{
"id": "98ece7b9-8c92-4143-ae50-c87302598f1a",
"order": 1,
"name": "Test Document",
"url": "https://abc.def.com"
},
{
"id": "f0da9a6e-9673-4b54-97e3-d24e5d9c81e6",
"order": 4,
"name": "Test Document 3",
"url": "https://abc.def.com"
}
]
GET Document/{id}
Get document by Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response
{
"id": "9152b712-edac-44bc-b0fc-ba170c2df7a6",
"order": 2,
"name": "Test Document",
"url": "https://abc.def.com"
}
DELETE Document/{id}
Delete document by Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
GET Document/event/{id}
Get document models fo an event by Event Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response
[
{
"id": "ba1ece20-9570-49de-b6ca-57307eb643aa",
"order": 3,
"name": "Test Document 2",
"url": "https://abc.def.com"
},
{
"id": "9152b712-edac-44bc-b0fc-ba170c2df7a6",
"order": 2,
"name": "Test Document",
"url": "https://abc.def.com"
},
{
"id": "f0da9a6e-9673-4b54-97e3-d24e5d9c81e6",
"order": 4,
"name": "Test Document 3",
"url": "https://abc.def.com"
}
]
PUT Document/{id}/order/{int}
Update Order for a document by document Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Event Types
POST eventtype
Add new Event Type.
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Body Params
Name: {string}
PUT eventtype/{id}
Update an Event Type.
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Body Params
Name: {string}
GET eventtype
Get ALL Event Types.
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response
[
{
"id": "36728f24-ceca-41fd-983e-3e7d8e85ba43",
"name": "Test Event Type 6"
},
{
"id": "e08ce849-8627-4ed7-b8b5-7930446499ef",
"name": "Test Event Type 2"
},
{
"id": "b815b9f3-614b-4162-b64e-a812956aaa1e",
"name": "Test Event Type 3"
},
{
"id": "c158c02a-245b-4fbf-b8df-c2a318947e81",
"name": "Test Event Type Update"
},
{
"id": "19f59e69-0515-4d40-ab61-ec891437cbf7",
"name": "Test Event Type 4"
},
{
"id": "7682feba-99b5-4e38-a152-f0ca0ebf872b",
"name": "Test Event Type 5"
}
]
GET eventtype/{id}
Get Event Type by Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response
{
"id": "b815b9f3-614b-4162-b64e-a812956aaa1e",
"name": "Test Event Type 3"
}
DELETE eventtype/{id}
Delecte Event Type by Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Health
Get the Health of the system - Ping
GET health
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Recess
GET recess/messsage
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response:
{
"message": "TEST recess Message"
}
PUT Recess/messsage
Update Recess Message
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Body Params
Message: {string}
Rooms
GET room
Get ALL room data
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response:
{
"id": "b815b9f3-614b-4162-b64e-a812956aaa1e",
"name": "Test Room 1"
},
{
"id": "aa65b9f3-614b-4162-b64e-a812956aaa1e",
"name": "Test Room 2"
},
{
"id": "ff11b9f3-614b-4162-b64e-a812956aaa1e",
"name": "Test Room 3"
}
GET room/{id}
Get room data by Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response:
{
"id": "b815b9f3-614b-4162-b64e-a812956aaa1e",
"name": "Test Room 1"
}
Tags
POST tag
Add a new Tag
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Body Params:
Name: {string}
PUT tag
Update a Tag
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Body Params:
Id: {guid}
Name: {string}
DELETE tag/{id}
Delete a Tag
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
GET tag
Get ALL Tags
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response:
[
{
"id": "485cd88f-21d7-41dc-aa96-966fb4e89e87",
"name": "test tag 5 update"
},
{
"id": "666508ff-4d27-4329-a97f-9babe996af9a",
"name": "test tag 2"
},
{
"id": "6a7fee54-e597-4cd6-a0a9-bf8b0c7f8bff",
"name": "test tag 3"
},
{
"id": "ec8f26d2-c61e-4cb5-8e79-e391ac01c6a4",
"name": "test tag 4"
}
]
GET tag/{id}
Get Tag by Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response:
{
"id": "485cd88f-21d7-41dc-aa96-966fb4e89e87",
"name": "test tag 5 update"
}
GET tag/event/{id}
Get ALL Tags by/for Event Id
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example JSON response:
[
{
"id": "485cd88f-21d7-41dc-aa96-966fb4e89e87",
"name": "test tag 5 update"
},
{
"id": "666508ff-4d27-4329-a97f-9babe996af9a",
"name": "test tag 2"
},
{
"id": "ec8f26d2-c61e-4cb5-8e79-e391ac01c6a4",
"name": "test tag 4"
}
]
PUT tag/event/{id}
Update Tags by Event Id. Refreshes Tag data for Event Id.
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Body Params:
Tag Models:
Id: {guid}
Name: {string}
GET tag/exists/{text}
Test if Tag exists by Text (Tag Name)
Example request
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response
Headers:
X-Transaction-ID: {string}
Example response:
true/false
Vuflow
GET vuflow/{id}
Get vuflow data for id
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Example JSON response:
{
id : "a5d067bd-cb45-4d7b-814c-e1caa0833304",
configurationJson : "{ "vuflows":
"name": "1x vuflow Task Engine",
"type": "TaskEngine",
"taskEngineSpecific": { "apiUrl": "http://taskengine.vuworkflow.vualto.com" },
"streamingServer": { "type": "USP",
"streamingServerSpecific":
{"primaryPublishingPoint":
{ "uspAPI": "http://ingest.staging.vrt.vualto.com:9292",
"uspAPIKey": "55940a43-a4e6-430f-8977-45fa2f37f744" },
"secondaryPublishingPoint":
{ "uspAPI": "",
"uspAPIKey": "" }
} },
"outputUrls": [
{"streamProtocol": "HLS",
"vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.m3u8",
"vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
/.m3u8","vodOriginSecondaryUrl": "" },
{"streamProtocol": "DASH",
"vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.mpd",
"vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
/.mpd","vodOriginSecondaryUrl": "" },
{"streamProtocol": "HSS",
"vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/Manifest",
"vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
/Manifest","vodOriginSecondaryUrl": "" },
{"streamProtocol": "HDS",
"vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.f4m",
"vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
/.f4m","vodOriginSecondaryUrl": "" } ]
} ]
}"
name : "Vuflow Default"
}
GET vuflow
Get all vuflow data
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Example JSON response:
{
id : "a5d067bd-cb45-4d7b-814c-e1caa0833304",
configurationJson : "{ "vuflows":
"name": "1x vuflow Task Engine",
"type": "TaskEngine",
"taskEngineSpecific": { "apiUrl": "http://taskengine.vuworkflow.vualto.com" },
"streamingServer": { "type": "USP",
"streamingServerSpecific":
{"primaryPublishingPoint":
{ "uspAPI": "http://ingest.staging.vrt.vualto.com:9292",
"uspAPIKey": "55940a43-a4e6-430f-8977-45fa2f37f744" },
"secondaryPublishingPoint":
{ "uspAPI": "",
"uspAPIKey": "" }
} },
"outputUrls": [
{"streamProtocol": "HLS",
"vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.m3u8",
"vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
/.m3u8","vodOriginSecondaryUrl": "" },
{"streamProtocol": "DASH",
"vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.mpd",
"vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
/.mpd","vodOriginSecondaryUrl": "" },
{"streamProtocol": "HSS",
"vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/Manifest",
"vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
/Manifest","vodOriginSecondaryUrl": "" },
{"streamProtocol": "HDS",
"vodCdnUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism/.f4m",
"vodOriginPrimaryUrl": "http://ingest.staging.vrt.vualto.com/vod/{0}/vod.ism
/.f4m","vodOriginSecondaryUrl": "" } ]
} ]
}"
name : "Vuflow Default"
}
... etc
POST vuflow
Add new vuflow data
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Body Params:
AddUpdateVuflowModel Model:
name: {string}
configurationJson: {string}
Example response:
Headers:
X-Transaction-ID: {string}
PUT vuflow/{id}
Update vuflow data
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Body Params:
AddUpdateVuflowModel Model:
id: {guid}
name: {string}
configurationJson: {string}
Example response:
Headers:
X-Transaction-ID: {string}
DELETE vuflow/{id}
Delete vuflow data
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
POST cdn
Add new CDN Provider
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Body Params
AddUpdateCdnModel Model:
Id: {guid}
configurationJson: {string}
Nane: {string}
Example response:
Headers:
X-Transaction-ID: {string}
GET cdn/getcdnproviders
Get All CDN Providers
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Example JSON response:
[
{
"id": "4b78ddc0-b185-4f22-8448-dfd8c8456507",
"configurationJson":
"{\"name\": \"Amazon S3\",\"type\": \"AMAZON_S3\",\"cdnSpecific\":
{\"cdnHost\": \"https://api.s3.com\",\"cdnPath\": \"/cdncontent/purge/\",
\"customerNumber\": \"ah77d\",\"zoneId\": \"988dnjbhe\",\"secretKey\":
\"9yh87yh8yg8\"}}",
"name": "Amazon S3"
},
{
"id": "106aedc7-34a3-43cc-8399-132f26bb2598",
"configurationJson":
"{\"name\": \"Amazon hh\",\"type\": \"AMAZON_S3\",\"cdnSpecific\":
{\"cdnHost\": \"https://api.AmazonZZ.com\",\"cdnPath\": \"/content/purge/\",
\"customerNumber\": \"789954\",\"zoneId\": \"3589\",\"secretKey\":
\"jaljkhasdhasdladu\"}}",
"name": "Amazon HH"
}
]
...etc
GET cdn/{id}
Get CDN Provider for Id
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
Example JSON response:
[
{
"id": "4b78ddc0-b185-4f22-8448-dfd8c8456507",
"configurationJson":
"{\"name\": \"Amazon S3\",\"type\": \"AMAZON_S3\",\"cdnSpecific\":
{\"cdnHost\": \"https://api.s3.com\",\"cdnPath\": \"/cdncontent/purge/\",
\"customerNumber\": \"ah77d\",\"zoneId\": \"988dnjbhe\",\"secretKey\":
\"9yh87yh8yg8\"}}",
"name": "Amazon S3"
}
]
PUT cdn/{id}
Update CDN Provider
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Body Params
AddUpdateCdnModel Model:
Id: {guid}
configurationJson: {string}
Nane: {string}
Example response:
Headers:
X-Transaction-ID: {string}
DELETE cdn/{id}
Delete CDN Provider
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Example response:
Headers:
X-Transaction-ID: {string}
POST cdn/clearcdncache/{id}
Invalidate CDN Provider cache
Example request:
Headers:
X-Auth-Key: {string}
X-Transaction-ID: {string}
Body Params
ClearCdnModel Model:
AltPath {string} (Alternative path to one in Configuration Json for the CDN)
Example response:
Headers:
X-Transaction-ID: {string}
Webhooks for Callback Urls
EventChangedPublisher
A POST endpoint needs to be set up to receive the following parameters to intercept EventChangedPublisher notifications. Supply us URL endpoints to receive the event state change notifications.
Parameters
EventId: {guid}
State: {EventState} (string)
StateChanged: {bool}
Example JSON HTTP POST
{
"EventId": "485cd88f-21d7-41dc-aa96-966fb4e89e87",
"State": "LIVE",
"StateChanged": true
}