Events
- Event Object
- Supported Actions
- POST
/event/
- PATCH
/event/{id}
- PATCH
/event/reference/{referenceid}
- POST
/event/stream/dvrwindowlength/{id}
- POST
/event/vuflow/add/
- PUT
/event/{id}/externalupdate/{flag}
- PUT
/event/forcestop/{id}
- PUT
/event/forcerestart/{id}
- PUT
/event/state/{id}
- GET
/event/
- GET
/event/deleted/
- GET
/event/{id}
- GET
/event/reference
- GET
/event/external
- GET
/event/external/unique
- GET
/event/reference/unique
- GET
/event/{id}/externalupdate/
- GET
/event/channel/{id}
- GET
/event/clone/{id}
- GET
/event/restore/{id}
- DEL
/event/{id}
- POST
/event/clearcache/
- GET
/event/playoutprofiles/{id}
- POST
/event/playoutprofiles/{id}
- PUT
/event/stream/replacesource/{id}
- PUT
/event/stream/restoresource/{id}
- PUT
/event/stream/setcues/{id}
- PUT
/event/stream/insertoverlay/{id}
- DELETE
/event/stream/removeoverlay/{id}
- POST
/event/thumbnail/{id}
- DELETE
/event/thumbnail/{id}
- POST
Events are central to the ControlHub and are at the heart of managing both streaming and on-demand content.
Event Object
{
"video": null,
"id": "346eb986-1248-4391-9ebc-c1f35bb27cd8",
"channelId": "a32a5a2d-88b5-4fae-8a1f-0fb258129def",
"channel": "Example Channel",
"vuflowId": "fcc587e5-0dfd-4ade-b935-d6b0904f358f",
"vuflow": "Example Vuflow",
"remixflowId": null,
"remixflow": "",
"archiverflowId": null,
"archiverflow": "",
"liveComposePlaylistId": null,
"infrastructureProfileId": null,
"infrastructureProfile": "",
"state": 11,
"stateString": "VOD_PUBLIC",
"mp4State": 0,
"mp4StateString": "NONE",
"eventTypeId": "21c2c17b-d129-4957-87c4-97ff81e0b64b",
"eventType": "Example Event Type",
"eventTypeColour": null,
"roomId": null,
"room": "",
"channelProfileId": "26a0228e-f1b2-497d-9cb2-246ffc4d3224",
"customPropertyConfigurationId": null,
"title": "Example Event",
"refId": "reference-identifier-01",
"externalId": "external-identifier-01",
"contentId": "346eb986-1248-4391-9ebc-c1f35bb27cd8",
"description": null,
"autoStart": false,
"autoEnd": false,
"autoPublish": false,
"autoStartPublications": false,
"autoProvisionInfrastructure": false,
"autoTerminateInfrastructure": false,
"embededVodTimestamps": true,
"capturingLive2Vod": false,
"externalUpdateAllowed": false,
"displayStart": "1970-01-01T09:00:00Z",
"displayEnd": "1970-01-01T09:30:00Z",
"scheduledStart": "1970-01-01T09:00:00Z",
"scheduledEnd": "1970-01-01T09:30:00Z",
"scheduledChannelStart": null,
"scheduledChannelEnd": null,
"actualLiveStart": "1970-01-01T08:46:52Z",
"actualLiveEnd": "1970-01-01T09:49:57Z",
"publishedStart": "1970-01-01T08:46:52Z",
"publishedEnd": "1970-01-01T09:49:57Z",
"instantVodStart": "1970-01-01T09:00:05Z",
"instantVodEnd": "1970-01-01T09:31:00Z",
"scheduledProvisionAt": null,
"scheduledTerminateAt": null,
"captureVodStart": "1970-01-01T09:00:05Z",
"captureVodEnd": "1970-01-01T09:31:00Z",
"dateCreated": "1970-01-015T08:30:36Z",
"dateModified": "1970-01-01T09:49:36Z",
"dateDeleted": null,
"duration": "00:30:55",
"durationTrimmed": "00:30:55",
"drmJson": "{\"drm_provider\":\"NONE\"}",
"drmData": null,
"additionalStreamingOptions": "--archive_segment_length=600 --archiving=1 --archive_length=28800 --dvr_window_length=28800 --restart_on_encoder_reconnect --iss.minimum_fragment_length=8 --hls.minimum_fragment_length=8 --hds.minimum_fragment_length=8 --hls.client_manifest_version=4 --hls.no_audio_only --hls.no_multiplex",
"dvrLength": 28800,
"dvrLengthUrlParam": 28800,
"maxBitrateUrlParam": null,
"minBitrateUrlParam": null,
"vodDrm": false,
"taskEngineJson": "{...}",
"thumbnail": null,
"thumbnailUrl": null,
"documentUrl": "https://vis.example.vualto.com/api/document/event/346eb986-1248-4391-9ebc-c1f35bb27cd8",
"tagUrl": "https://vis.example.vualto.com/api/tag/event/346eb986-1248-4391-9ebc-c1f35bb27cd8",
"setPrivateAfterGeneration": false,
"customProperties": [],
"categories": [],
"category": null,
"categoryId": null,
"provisionInfo": null,
"remixDrmJson": null,
"remixDrmData": null,
"remixDrm": false,
"archiverCaptureId": null,
"archiverProfileId": null,
"archiverStart": null,
"archiverEnd": null
}
Notes:
- See the respective pages for the structure of Categories and CustomProperties.
- CategoryId will specify the first Category if there are multiple Categories set.
- Category will contain the first Category Label if there are multiple Categories set.
refId
andexternalId
cannot exceed 100 characters in length.
Video Structure:
An Event object often specifies a Video object, which contains information on the streaming URLs and protocols.
Below is an example indicating a typical structure. Depending on the Event State different URL objects are populated, but the structure within each is similar.
Other infrastructure information is also included, such as rampServers
, and this is defined by the selected Channel and it’s configuration.
{
"video": {
"webPageUrl": "url-here",
"playerUrl": "url-here",
"embedCode": "iframe-here",
"scriptablePlayerUrl": "url-here",
"scriptableEmbedCode": "embed-code-here",
"requestedStreamTime": {
"inPointOriginalString": null,
"outPointOriginalString": null,
"inPointDateTime": null,
"outPointDateTime": null,
"inPointTimeSpan": "00:00:00",
"outPointTimeSpan": "00:00:00",
"inPointHasValue": false,
"outPointHasValue": false,
"inPointIsAbsoluteDateTime": false,
"outPointIsAbsoluteDateTime": false
},
"requestedAudioOnly": false,
"requestedAutoStart": false,
"liveUrls": [
{
"streamProtocol": 0,
"streamProtocolString": "HLS",
"url": "url-here",
"absoluteUrlWithPathNoQuery": "url-here",
"streamSource": 0,
"streamSourceString": "CDN_PRIMARY_INDEX_0"
}
],
"livePlayoutProfileUrls": {},
"vodUrls": [],
"currentStateUrls": [
{
"streamProtocol": 0,
"streamProtocolString": "HLS",
"url": "url-here",
"absoluteUrlWithPathNoQuery": "url-here",
"streamSource": 0,
"streamSourceString": "CDN_PRIMARY_INDEX_0"
}
],
"archiverCapturePublishingPointUrls": [],
"privateMp4Url": "http://private-url-here.com/path-to-content.mp4",
"publicMp4Url": "https://public-url-here.com/path-to-content.mp4",
"websiteplayerUrl": "https://player-url-here.com/path-to-page",
"websiteEmbedCode": "",
"scriptableWebsitePlayerUrl": "https://player-url-here.com/path-to-page-with-scripts",
"scriptableWebsiteEmbedCode": "",
"publishingPointUrls": [
{
"url": "url-here",
"state": "state-here",
"hasStarted": false,
"lastUpdated": "iso8601-datetime-here",
"receivingData": false
}
],
"rampServers": [
{
"serverAddress": "address-here",
"apiKey": "api-key-here",
"location": "location-here",
"proxyPass": "url-here",
"playerAddress": "address-here",
"proxyPassEmpty": "url-here"
},
],
"remixUrls": [],
"archiverUrls": []
}
}
Note: when requesting many Event objects, the video
object is not generated to improve performance.
Event Collection
Certain endpoints will return an Event collection, which includes pagination information. Shown below, the results
propery contains an array of Event objects.
{
"pageSize": 10,
"totalCount": 3,
"results": [
{},
{},
{}
]
}
Supported Actions
POST /event/
Add or Update an Event.
Request Body:
Below are the parameter values that can be provided when adding/updating an Event.
It is recommended to submit this as JSON though, as elements such as tags
are an array of objects.
Id: {Guid}
Title: {string}
RefId: {string}
ExternalId: {string}
Description: {string}
ScheduledStart: {ISO8601 string}
ScheduledEnd: {ISO8601 string}
PublishedStart: {ISO8601 string}
PublishedEnd: {ISO8601 string}
RoomId: {Guid}
EventTypeId: {Guid}
CategoryId: {Guid}
ChannelId: {Guid}
AutoStart: {bool}
AutoEnd: {bool}
AutoProvisionInfrastructure: {bool}
AutoTerminateInfrastructure: {bool}
AutoPublish: {bool}
AutoStartPublications: {bool}
Tags: {array of TagModel} - see below for the structure.
DrmJson": {escaped JSON string}
AdditionalStreamingOptions": {string}
EventState: {EventState}
TaskEngineJson: {string}
VuflowId: {Guid}
DvrLength: {int}
MaxBitrate: {int}
MinBitrate: {int}
VodEnableDrm: {bool}
Thumbnail: {string}
InstantVodStart: {ISO8601 string}
InstantVodEnd: {ISO8601 string}
ScheduledProvisionAt: {ISO8601 string}
ScheduledTerminateAt: {ISO8601 string}
RemixflowId: {Guid}
InfrastructureProfileId: {Guid}
ArchiverflowId: {Guid}
ArchiverStart: {ISO8601 string}
ArchiverEnd: {ISO8601 string}
SetPrivateAfterGeneration: {bool}
RefreshIndex: {bool}
AutoExpirePublishingPoints {bool} - Will auto restart the event if all publihsingpoint fail. Default is false.
Note: id
is required when updating a specific Event, but optional when adding.
Note: channelId
and infrastructureProfileId
changes can be ignored if the Event is currently streaming, starting, or provisioning.
Note: all ISO8601 strings can be provided as null if desired.
TagModel Structure:
{
"id": "d78a3df6-98d2-49d0-b7fa-0f489d2dc3f2",
"name": "my-tag"
}
Unescaped DrmJson Example:
{
"drm_provider": "THIRDPARTY",
"drm_data": [
{
"name": "CENC",
"key_id": "key-id-here",
"content_id": "content-id-here",
"widevine_drmspecific": "",
"widevine_laurl": "widevine-laurl-here",
"key_iv": "",
"playready_laurl": "playready-laurl-here"
},
{
"name": "FAIRPLAY",
"key_id": "key-id-here",
"key_iv": "key-iv-here",
"laurl": "fairplay-laurl-here"
}
]
}
Response: 201 OK
PATCH /event/{id}
Patch update an event by its ID.
Content Type
application/json-patch+json
Request Body:
[
{
"op": "replace",
"path": "/Title",
"value": "My event title"
}
]
Response: 200 OK
PATCH /event/reference/{referenceid}
Patch update an event by its references ID.
Content Type
application/json-patch+json
Request Body:
[
{
"op": "replace",
"path": "/DrmJson",
"value": "{\r\n \"drm_provider\": \"THIRDPARTY\",\r\n \"drm_data\": [\r\n {\r\n \"name\": \"CENC\",\r\n \"key_id\": \"key-id-here\",\r\n \"content_id\": \"content-id-here\",\r\n \"widevine_drmspecific\": \"\",\r\n \"widevine_laurl\": \"http://widevine.entitlement.theplatform.eu/wv/web/ModularDrm/getWidevineLicense\",\r\n \"key_iv\": \"\",\r\n \"playready_laurl\": \"https://green.playready.entitlement.theplatform.eu/playready/rightsmanager.asmx\"\r\n },\r\n {\r\n \"name\": \"FAIRPLAY\",\r\n \"ask\": \"\",\r\n \"key_id\": \"key-id-here\",\r\n \"key_iv\": \"keyiv-here\",\r\n \"laurl\": \"skd://fairplay.entitlement.theplatform.eu/fpls/web/FairPlay\"\r\n }\r\n ]\r\n}"
}
]
Response: 200 OK
POST /event/stream/dvrwindowlength/{id}
Update the DVR Window Lenth for the associated live stream to the given Event Id.
Request Body:
DvrWindowLength: {int}
Response: 200 OK
POST /event/vuflow/add/
Adds a Vuflow task to an Event (or creates and Event for one if necessary).
Request Body:
TaskEngineJson: {string} - Required. Specify the task you wish to run.
Id: {Guid} - Optional. Specify an existing ID to set the task on this Event.
EventState: {EventState} - Optional. Specify the state you wish to transition the Event into.
Mp4State: {Mp4State} - Optional. Specify the MP4 state you wish to set on the Event.
RefreshIndex: {bool} - Optional. Specify if you wish to refresh any indexing for this Event.
Response: 200 OK
PUT /event/{id}/externalupdate/{flag}
Set ExternalUpdate to a given value.
Response: 200 OK
PUT /event/forcestop/{id}
Use this method to force an event into a stopped state. This function will also force stop the encoder channel running - 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.
Warning: Potentially dangerous as no checks will be made to see if a different Event is running on the associated Channel.
Response: 200 OK
PUT /event/forcerestart/{id}
Performs a live Channel restart on the given Event, which must be in either a LIVE_UNPUBLISHED
or LIVE_PUBLISHED
state. This will completely stop the Channel, pre-live the Event, and then return it to the previous live state.
Warning: Potentially dangerous as if a safe stop fails, then a Force Stop will be used to ensure the restart completes.
Response: 200 OK
PUT /event/state/{id}
Update the Event state.
Request Body:
{
"state": 1,
"waitUntilCompleted": true
}
state
can be either the numerical state value or the string representation (e.g. “LIVE_UNPUBLISHED”).- see Event States for more information.
waitUntilCompleted
is optional and defaults totrue
, unless you specifically want to use theLIVE_STARTING
andLIVE_STOPPING
states, ignore this parameter. Sendingfalse
will use these asynchronous intermediate states, avoiding timeout issues for long running operations.
Response: 200 OK
GET /event/
Get Events, filtered by given parameters.
Query Parameters:
Name | Type | Required | Description |
---|---|---|---|
from | String | No | ISO8601 DateTime string to include Events scheduled from the given Date. |
to | String | No | ISO8601 DateTime string to include Events scheduled until the given Date. |
fromModified | String | No | ISO8601 DateTime string to include Events which have been modified since the given Date. |
toModified | String | No | ISO8601 DateTime string to include Events which have been modified up to the given Date. |
pageSize | int | No | Number of results to fetch per Page. Defaults to 20. |
pageNumber | int | No | Number of the page to fetch. Defaults to 1. |
eventState | String | No | Comma separated string of Event States to filter to. |
provisionState | String | No | Comma separated string of Provision States to filter to. |
mp4State | String | No | Comma separated string of MP4 States to filter to. |
room | String | No | Name of the Room to filter Events on. |
eventType | String | No | Name of the EventType to filter Events on. |
tags | String | No | Comma separated string of Tags to filter Events on. |
category | String | No | Name of the Category to filter Events on. Multiple category parameters can be specified to match any of the specified categories. |
channel | String | No | Name of the Channel to filter Events on. |
search | String | No | String to search Event properties for. |
noScheduledEnd | bool | No | Whether or not to only return Events that do not have a Scheduled End value. |
clipsOnly | bool | No | Whether or not to only return Events that are clips generated in clipping tool. Defaults to False. |
containsVuflow | bool | No | Whether or not to only return Events which have a Vuflow set. |
skipEvents | String | No | Comma separated Guids to omit from the results. |
order | QueryOrder | No | The order to sort by, either ASC or DESC. Defaults to ASC. |
orderColumn | String | No | Name of the column to order on (see supported list below). |
noCache | bool | No | Whether or not to bypass cache. Defaults to False. |
Supported Order Columns:
- Title
- State
- DisplayLiveStart
- DisplayLiveEnd
- EventType
- Room
- Channel
- Vuflow
- RefId
- ExternalId
Response: 200 OK
with an Event collection.
GET /event/deleted/
Get deleted Events, filtered by given parameters.
Query Parameters:
Supported parameters are the same as the above request, except noCache
is not supported as these results are not cached.
Response: 200 OK
with an Event collection.
GET /event/{id}
Get Event by Id.
Query Parameters:
Name | Type | Required | Description |
---|---|---|---|
in | ISO8601 String | No | ISO8601 DateTime string to be the streaming In point. You can pass the event published time and the stream will start from this timecode. |
out | ISO860 String | No | ISO8601 DateTime string to be the streaming Out point. |
audioOnly | bool | No | Appends audio only filter to the streaming URL (if applicable). |
autoStart | bool | No | Configures auto-start in the embed code. |
processVideo | bool | No | Whether or not to return the Video data within the Event response. |
viewUnpublished | bool | No | Whether or not to return Video data which allows viewing of the LIVE_UNPUBLISHED period. |
streamSource | StreamSource | No | Specify the StreamSource for fetching from Origin. |
livePlayoutProfileId | guid | No | Specify the Live Playout Profile ID. The response for the currentStateStreamUrls and the player embed codes will be the Playout Profile. If a profile with a matching ID is not found, it will default to the main source. |
noCache | bool | No | Whether or not to bypass cache. Defaults to False. |
Response:
200 OK
and JSON containing the Event object.
or
204 No Content
if no Event was found.
GET /event/reference
Get Event by Reference Id.
Query Parameters:
Name | Type | Required | Description |
---|---|---|---|
id | string | Yes | The reference ID. Must be percent-encoded. |
in | ISO8601 String | No | ISO8601 DateTime string to be the streaming In point. You can pass the event published time and the stream will start from this timecode. |
out | ISO860 String | No | ISO8601 DateTime string to be the streaming Out point. |
audioOnly | bool | No | Appends audio only filter to the streaming URL (if applicable). |
autoStart | bool | No | Configures auto-start in the embed code. |
processVideo | bool | No | Whether or not to return the Video data within the Event response. |
viewUnpublished | bool | No | Whether or not to return Video data which allows viewing of the LIVE_UNPUBLISHED period. |
streamSource | StreamSource | No | Specify the StreamSource for fetching from Origin. |
livePlayoutProfileId | guid | No | Specify the Live Playout Profile ID. The response for the currentStateStreamUrls and the player embed codes will be the Playout Profile. If a profile with a matching ID is not found, it will default to the main source. |
noCache | bool | No | Whether or not to bypass cache. Defaults to False. |
Response:
200 OK
and JSON containing the Event object.
or
204 No Content
if no Event was found.
GET /event/external
Get Event by External Id.
Query Parameters:
Name | Type | Required | Description |
---|---|---|---|
id | string | Yes | The external ID. Must be percent-encoded. |
in | ISO8601 String | No | ISO8601 DateTime string to be the streaming In point. You can pass the event published time and the stream will start from this timecode. |
out | ISO860 String | No | ISO8601 DateTime string to be the streaming Out point. |
audioOnly | bool | No | Appends audio only filter to the streaming URL (if applicable). |
autoStart | bool | No | Configures auto-start in the embed code. |
processVideo | bool | No | Whether or not to return the Video data within the Event response. |
viewUnpublished | bool | No | Whether or not to return Video data which allows viewing of the LIVE_UNPUBLISHED period. |
streamSource | StreamSource | No | Specify the StreamSource for fetching from Origin. |
livePlayoutProfileId | guid | No | Specify the Live Playout Profile ID. The response for the currentStateStreamUrls and the player embed codes will be the Playout Profile. If a profile with a matching ID is not found, it will default to the main source. |
noCache | bool | No | Whether or not to bypass cache. Defaults to False. |
Response:
200 OK
and JSON containing the Event object.
or
204 No Content
if no Event was found.
GET /event/external/unique
Check if a given ExternalId is in use or not.
Query Parameters:
Name | Type | Required | Description |
---|---|---|---|
id | string | Yes | The external ID. Must be percent-encoded. |
Response: 200 OK
and the following JSON content:
{
"IsUnique": true,
"Value": "externalId-value-here",
"ValueType": "External ID"
}
GET /event/reference/unique
Check if a given ReferenceId is in use or not.
Query Parameters:
Name | Type | Required | Description |
---|---|---|---|
id | string | Yes | The reference ID. Must be percent-encoded. |
Response: 200 OK
and the following JSON content:
{
"IsUnique": true,
"Value": "referenceId-value-here",
"ValueType": "Reference ID"
}
GET /event/{id}/externalupdate/
Check if the given Event has externalupdate allowed or not.
Response: 200 OK
and the following JSON content:
{
"Id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"ExternalUpdateAllowed": true
}
GET /event/channel/{id}
Gets the currently running Event for a specific Channel Id.
Response: 200 OK
and JSON containing the Event object.
GET /event/clone/{id}
Clone the given Event to create a new one.
Query Parameters:
Name | Type | Required | Description |
---|---|---|---|
ignoreCustomProperties | bool | No | Whether or not to skip cloning Custom Properties. Defaults to False. |
ignoreChapterPoints | bool | No | Whether or not to skip cloning ChapterPoints. Defaults to False. |
ignoreChannelProfile | bool | No | Whether or not to skip cloning Channel Profile. Defaults to False. |
ignoreDocuments | bool | No | Whether or not to skip cloning Documents. Defaults to False. |
ignorePlayoutProfiles | bool | No | Whether or not to skip cloning Playout Profiles. Defaults to False. |
Response: 200 OK
and JSON containing the Event object.
GET /event/restore/{id}
Restore the Event from a soft-deletion state.
Response: 200 OK
DEL /event/{id}
Delete an Event by Id.
Query Parameters:
Name | Type | Required | Description |
---|---|---|---|
hardDelete | bool | No | Defaults to False. Set to True to remove the Event from the database. |
keepAsset | bool | No | Defaults to False. Set to True to remove to keep the underlying asset on storage when Hard Deleting. |
Response: 200 OK
POST /event/clearcache/
Clear the cache for a given Event Id.
Request Body:
{
"eventId": "5c08c30b-a444-44a0-b7c8-72cb2e6f4ba4"
}
Response: 200 OK
GET /event/playoutprofiles/{id}
Gets the Live Playout Profiles associated with the Event with the specified ID. Requires the Live Playout Profile Get permission.
Query Parameters
Name | Type | Required |
---|---|---|
idsOnly | bool | No (default: false ) |
Responses
Scenario | Code | Body |
---|---|---|
idsOnly=false | 200 | Array of Live Playout Profile objects |
idsOnly=true | 200 | Array of GUID strings |
Example Request
/event/playoutprofiles/50e894a0-770f-4b10-843b-9a7340f84655
Example Response
[
{
"id": "a782bfee-5609-40da-94b6-8e92295c8da4",
"configurationJson": "{\"manifestFile\":\"clear_profile.isml\", ...}",
"name": "Clear Profile"
},
{
"id": "053ee005-13ba-4278-b36a-c75c835cfb80",
"configurationJson": "{\"manifestFile\":\"drm_profile.isml\", ...}",
"name": "DRM Profile"
}
]
POST /event/playoutprofiles/{id}
Sets the Live Playout Profiles to associate with the Event with the specified ID. If the Event is in any one of the Playout States, then a origin manifest sync operation is performed on the Event Channel’s origin server(s) to create/update/remove playout manifests for the new Live Playout Profile collection. Requires the Live Playout Profile Edit permission.
Request Body
An array of GUID strings of the Live Playout Profiles to associate with the event.
Responses
Scenario | Code | Body |
---|---|---|
Success | 200 | Array of Origin Manifest Sync Result objects |
Example Request
/event/playoutprofiles/50e894a0-770f-4b10-843b-9a7340f84655
[
"9dbabcc5-5802-4b78-af68-85e26e87bdff",
"232912a3-8a5b-4c23-980c-73238d5b39fd"
]
Example Response
[
{
"profileId": "9dbabcc5-5802-4b78-af68-85e26e87bdff",
"eventId": "50e894a0-770f-4b10-843b-9a7340f84655",
"success": true
},
{
"profileId": "232912a3-8a5b-4c23-980c-73238d5b39fd",
"eventId": "50e894a0-770f-4b10-843b-9a7340f84655",
"success": false,
"errors": [
"Example error"
]
}
]
PUT /event/stream/replacesource/{id}
Replace the source feed without restarting the stream. Typically used for slate insertion, displaying a static image. In some cases a looping video is supported. Support varies by encoder vendor & configuration.
Request Body:
{
"sourceReplacementImage": "channel_unavailable.png"
}
sourceReplacementImage
allows for a specific image or video file where supported. Some configurations have a static option configured on the encoder.
Response: 200 OK
PUT /event/stream/restoresource/{id}
This will restore the source feed to the original input without a restart. Support varies by encoder vendor & configuration.
Response: 200 OK
PUT /event/stream/setcues/{id}
This will insert a SCTE marker that can be used for advertising.
Name | Type | Required | Description |
---|---|---|---|
cueOut | string | Yes | ISO8601 Date string. |
duration | int | Yes | Duration of marker in seconds. |
spliceEventId | int | No | The unique ID for this marker. If not specified a unique number will be generated. |
spliceImmediateFlag | bool | No | True (cancel) or false (no action). Cancel the event specified by ‘spliceEventID’ |
The example JSON will insert a SCTE marker at the specified time for a duration of 60 seconds.
{
"scteCuePoints": [
{
"cueOut": "1970-01-15T08:30:00Z",
"duration": "60",
"spliceEventId": "12345",
"spliceImmediateFlag": false
},
{
"cueOut": "1970-01-15T09:30:00Z",
"duration": "60",
"spliceEventId": "12346",
"spliceImmediateFlag": false
}
]
}
Response: 200 OK
PUT /event/stream/insertoverlay/{id}
This will insert an overlay image in the video feed at the encoder level. Support varies by encoder vendor and configuration and only a single overlay is supported.
If the imageOverlay
object is not specified then the default for the Channel configuration will be used.
Name | Type | Required | Description |
---|---|---|---|
overlayImage | string | No | The image, which can be a filename, path, or URL depending on vendor support. |
opacity | int | No | The image opacity where 100 is fully opaque. |
widthMultiplier | int | No | Increase the width of the image as a multiplier where supported. |
heightMultiplier | int | No | Increase the height of the image as a multiplier where supported. |
xOffset | int | No | X Offset position. |
yOffset | int | No | Y Offset position. |
width | int | No | The exact width of the image where supported. |
height | int | No | The exact height of the image where supported. |
fadeInMs | int | No | The duration to fade in over, where supported. |
durationMs | int | No | The duration to display the overlay before automatically hiding, where supported. |
fadeOutMs | int | No | The duration to fade out over, where supported. |
{
"imageOverlay": {
"overlayImage": "vualto-logo-3.png",
"opacity": 100,
"widthMultiplier": 0,
"heightMultiplier": 0,
"xOffset": 80,
"yOffset": 5
}
}
Response: 200 OK
DELETE /event/stream/removeoverlay/{id}
This will remove the “inserted” overlay. Please note that only some encoders support this feature such as the Media Excel Hero.
Response: 200 OK
POST /event/thumbnail/{id}
This will upload an image to storage to be used as an Event’s thumbnail. This method will also update the Event’s thumbnail property.
Content type
multipart/form-data
Request body:
A single file attached to the request is required.
Note: File types other than images are excepted from this method. To ensure the thumbnails purpose is properly used please attach either a jpeg, png or gif file.
DELETE /event/thumbnail/{id}
This will remove the current thumbnail related to the Event from storage and update the Event’s thumbnail property
Response: 200 OK