Task Engine Workflows
- VOD STREAM
- VOD CAPTURE
- VOD DELETE
- DRM SWITCH
- CREATE MP4
- BUILD THUMBNAILS
- VOD REMIX
- GENERATE GIF
- CAPTURE FRAME
- ASSET DELETE
- MEDIATAILOR CHANNEL ASSEMBLY
- MEDIATAILOR CHANNEL STATE
- VOD NPVR
- Trickplay
- WORKFLOW TRIGGER EXAMPLE
VOD STREAM
This workflow will generate a VOD asset from an offline source (eg. MP4). A server side manifest is created, with and/or without DRM, that can be used for on the fly delivery of VOD content via the Unified Streaming Platform.
VOD Stream: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘vodstream’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
source_folder | Yes | Location of the source files. All files to be processed will need to be in a discrete folder, the ‘root’ folder will be specified in the client configuration. | |
delete_source | No | false | This boolean indicates whether the source should be deleted from source storage after the job has completed. |
encrypted (deprecated) | No | Deprecated and replaced by enable_drm for clarity. | |
enable_drm | No | true | This boolean indicates whether the drm manifest (if created - read drm parameter) should be enabled. |
output_folder | No | "{source_folder}" | The folder for processed files to be placed. The ‘root’ folder will be specified in the client configuration. |
drm | No | ["clear"] | A list of DRM systems o be applied to the VOD stream. This could be "playready" and/or ”widevine” and/or ”fairplay” and/or “cenc” and/or "aes" . If this value isn’t present or "clear" is specified as a system a DRM-free manifest is created. |
cpix | No | false | This boolean indicates whether DRM will be handled using a CPIX document. |
download_cpix | No | false | This boolean indicates whether the cpix document should be downloaded. This should be set to false if the cpix proxy is being used. |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
create_thumbnail | No | true | This boolean indicates whether a thumbnail should be created for the content. |
thumbnail_time | No | 0 (seconds) | Time at which the thumbnail will be taken. |
generate_mp4 | No | false | This boolean indicates whether an MP4 is generated for the VOD content. |
mp4_filename | No | "{content_id}.mp4" | Filename for the generated MP4, if generate_mp4 is set to true. |
mezzanine | No | false | This boolean indicates whether the generated mp4 contains all the video tracks or just the highest bitrate audio and video track. |
combine_sources | No | true | This boolean indicates whether the isma/v/ts generated from the source content are to be combined into a single ismv before packaging the manifests. |
create_dref | No | true | This boolean indicates whether a dref MP4 is generated for the VOD content. |
all_audio_tracks | No | true | This boolean indicates whether all audio tracks or only the audio tracks with the highest bitrates for each language are packaged. |
encrypt_ismv | No | false | This boolean indicates whether the resulting ismv file should be encrypted. This is can be used to implement TransDRM. |
playready_key | No | The playready key used to encrypt the ismv file (if encrypt_ismv is set to true). If no playready key is provided, one will be generated through VuDRM. | |
preview_thumbnails | No | false | This boolean indicates whether to generate thumbnail assets which can be used for video timeline previews. |
preview_thumbnails_interval | No | 10 | Interval time between thumbnail captures in seconds. |
apply_track_properties | No | false | This boolean indicates whether custom track properties (set in track_properties when submitting the job or in central configuration) should be applied to the VOD asset. |
track_properties | No | This is used to define track properties to be applied to the VOD (See Track Properties section). | |
file_properties | No | This is used to define file properties (language, kind) to be applied to the VOD (See File Properties section). | |
retries | No | 0 | This is used to indicate the number of times fetching the source should be re-tried. |
source_storage | No | "S3" | This is used to indicate where the source content is stored (see Storage Support section). |
destination_storage | No | "{source_storage}" | This is used to indicate the destination for the VOD assets (see Storage Support section). |
encode_source | No | false | This boolean indicates whether the source is to be encoded into multiple bitrates/resolutions. |
encoding_profile | No | "H264" | This is used to indicate which encoding profiles are used when encoding the source. |
encoding_mode | No | "STANDARD" | This is used to indicate which Bitmovin encoding mode is used (See here for more details). |
encoding_region | No | This is used to indicate in which region Bitmovin’s encoding process should be executed. | |
encoder_version | No | "STABLE" | This is used to select which Bitmovin encoder version. This is useful to allow testing with BETA releases of Bitmovin encoders |
extract_audio | No | "{encode_source}" | This boolean indicates whether the audio track from the original source needs to be extracted. This only required when encoding the source into multiple bitrates |
trickplay | No | false | This boolean indicates whether trickplay should be added to the resulting VOD. |
trickplay_thumbnails | No | "{trickplay}" | This boolean indicates whether to generate thumbnail assets which can be used for trickplay. |
trickplay_thumbnail_size | No | 0 (original size) | This is used to specify the size of the long edge of each trickplay thumbnail (in pixels). |
trickplay_thumbnail_interval | No | 10 | This is used to indicate the duration between trickplay thumbnails (in seconds). |
trickplay_thumbnail_quality | No | 30 | This is used to indicate the quality of the thumbnail generated for trickplay (1 - 100). |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. |
VOD Stream: JSON Payload example
{
"client": "demo-client",
"job": {
"workflow": "vodstream"
},
"parameters": {
"content_id": "demo1",
"source_folder": "mz-ast-2055fcff-8cca-4e37-85b9-9647dbe50398-1",
"delete_source": false,
"enable_drm": true,
"output_folder": "mz-ast-2055fcff-8cca-4e37-85b9-9647dbe50398-1",
"drm": [
"fairplay",
"playready",
"widevine"
],
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://aaa.com/end",
"http://bbb.com/end"
],
"create_thumbnail": true,
"thumbnail_time": "1:34.000",
"generate_mp4": true,
"mp4_filename": "demo_sample.mp4",
"mezzanine": true,
"combine_sources": true,
"create_dref": true,
"all_audio_tracks": true,
"preview_thumbnails": true,
"preview_thumbnails_interval": 20,
"apply_track_properties": true,
"source_storage": "local",
"destination_storage": "S3"
}
}
VOD Stream: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | Full path of the active manifest, for the generated content. |
files | List of files (manifests, content files, thumbnail, etc…) that have been copied to the final destination. |
metadata.duration | Duration of the VOD event. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
VOD CAPTURE
This workflow allows you to create a frame accurate VOD clip by passing in a start and end time. If the source stream contains time stamps, UTC time stamps can be used for the start and end times. The result will be a new VOD asset and/or a downloadable MP4.
VOD Capture: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘vodcapture’. | |
content_id | Yes | This is the id for the resulting capture. | |
output_folder | Yes | This is the folder where the resulting capture will be saved on the destination storage. This is cleared before the capture is uploaded. | |
clips | yes | This is an array of sources, with optional start and end times, please see the example request below. | |
clips.source | Yes | This would need to be either an HLS, MSS or Dash stream URL to the Live or Archive content. e.g. http://mydomain.com/test.ism/.m3u8 , http://mydomain.com/test.ism/manifest , http://mydomain.com/test.ism/.mpd | |
clips.start | No | UTC timestamp for the start timecode. e.g 2016-10-13T10:10:40.251Z or Offsets e.g. hh:mm:ss . | |
clips.end | No | UTC timestamp for the end timecode e.g 2016-10-13T10:20:40.251Z or Offsets e.g. hh:mm:ss . | |
clips.filter | No | This allows you to pass filter expressions to select certain video, audio tracks. e.g. to all video bitrates below 8Mbps and all audio bitrates at 64Kbps "type==\\"video\\"&&systemBitrate==800000\|\|type==\\"audio\\"&&systemBitrate==64000" . | |
clips.key_id | No | Should the stream be DRM’d we would require the KeyID. | |
clips.content_key | No | Should the stream be DRM’d we would require the Content Key. | |
clips.seed | No | Should the stream be encrypted with VUDRM, this can be provided instead of the key_id and content_key. | |
encrypted (deprecated) | No | Deprecated and replaced by enable_drm for clarity. | |
enable_drm | No | true | This boolean indicates whether the drm manifest (if created - read drm parameter) should be enabled. |
drm | No | ["clear"] | A list of DRM systems o be applied to the VOD stream. This could be "playready" and/or ”widevine” and/or ”fairplay” and/or “cenc” and/or "aes" . If this value isn’t present or "clear" is specified as a system a DRM-free manifest is created. |
cpix | No | false | This boolean indicates whether DRM will be handled using a CPIX document. |
download_cpix | No | false | This boolean indicates whether the cpix document should be downloaded. This should be set to false if the cpix proxy is being used. |
frame_accurate | No | true | This boolean allows the capture to be done using frame accuracy. |
copy_ts | No | false | This boolean indicates whether the timestamps should be included in the resulting manifests. |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
generate_vod | No | true | This boolean indicates whether VOD manifests are generated for the capture. |
create_thumbnail | No | true | This boolean indicates whether a thumbnail should be created for the content. |
thumbnail_time | No | 0 (seconds) | Time at which the thumbnail will be taken. |
generate_mp4 | No | false | This boolean indicates whether an MP4 is generated for the VOD content. |
mp4_filename | No | "{content_id}.mp4" | Filename for the generated MP4. |
mezzanine | No | false | This boolean indicates whether the generated mp4 contains all the video tracks or just the highest bitrate audio and video track. |
create_dref | No | "{generate_vod}" | This boolean indicates whether a dref MP4 is generated for the VOD content. |
encrypt_ismv | No | false | This boolean indicates whether the resulting ismv file should be encrypted. This is can be used to implement TransDRM. |
playready_key | No | The playready key used to encrypt the ismv file (if encrypt_ismv is set to true). If no playready key is provided, one will be generated through VuDRM. | |
empty_target | No | true | This boolean indicates whether the target folder in storage should be cleared before the output assets are save. |
destination_storage | No | "S3" | This is used to indicate the destination for the VOD assets (see Storage Support section). |
apply_track_properties | No | false | This boolean indicates whether custom track properties (set when submitting the job or in central configuration) should be applied to the VOD asset. |
track_properties | No | This is used to define track properties to be applied to the VOD (See Track Properties section). | |
preview_thumbnails | No | false | This boolean indicates whether to generate thumbnail assets which can be used for video timeline previews. |
preview_thumbnails_interval | No | 10 | Interval time between thumbnail captures in seconds. |
transcode_proxy | No | This field accepts the url for the remote transcode proxy. | |
trickplay | No | false | This boolean indicates whether trickplay should be added to the resulting VOD. |
trickplay_thumbnails | No | "{trickplay}" | This boolean indicates whether to generate thumbnail assets which can be used for trickplay. |
trickplay_thumbnail_size | No | 0 (original size) | This is used to specify the size of the long edge of each trickplay thumbnail (in pixels). |
trickplay_thumbnail_interval | No | 10 | This is used to indicate the duration between trickplay thumbnails (in seconds). |
trickplay_thumbnail_quality | No | 30 | This is used to indicate the quality of the thumbnail generated for trickplay (1 - 100). |
continuous_capture | No | false | Determines if capturing should begin before the end of all clips (See Continuous Capture section). |
handle_discontinuities | No | true | Determines if the Task Engine’s discontinuity handling should be used. If this is set to false, the built in unified_capture discontinuity handling will be used. |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. |
VOD Capture: JSON Payload example
{
"client": "demo-client",
"job": {
"workflow": "vodcapture"
},
"parameters": {
"content_id": "demo_1",
"output_folder": "demo_1",
"clips": [
{
"source": "http://mydomain.com/live.isml/manifest",
"start": "2018-06-06T10:00:00.000",
"end": "2018-06-06T10:30:00.000",
"filter": "type==\"audio\"||type==\"video\"&&systemBitrate==1300000",
"key_id": "346AS5847333DDSHKFSDS7633429CD33",
"content_key": "346AS5847333DDSHKFSDS7633429CD33"
}
],
"enable_drm": false,
"drm": [
"fairplay",
"playready",
"cenc",
"widevine",
"aes"
],
"frame_accurate": true,
"transcode_proxy": "https://vualto.transcode-proxy.com",
"copy_ts": false,
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://your.custom.endpoint"
],
"create_thumbnail": true,
"thumbnail_time": "1:34.000",
"generate_mp4": true,
"mp4_filename": "demo_sample.mp4",
"create_dref": true,
"preview_thumbnails": true,
"preview_thumbnails_interval": 20
}
}
VOD Capture: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | Full path of the active manifest, for the generated content. |
files | List of files (manifests, content files, thumbnail, etc…) that have been copied to the final destination. |
metadata.duration | Duration of the VOD event. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
VOD DELETE
This workflow allows you to a delete VOD asset from storage.
VOD Delete: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘voddelete’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
folder | Yes | Folder where the content to be deleted is currently saved. | |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
source_storage | No | "S3" | This is used to indicate where the VOD assets are stored (see Storage Support section). |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. |
VOD Delete: JSON Payload example
{
"client": "demo-client",
"job": {
"workflow": "voddelete"
},
"parameters": {
"content_id": "demo1",
"folder": "vualto-test-1",
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://your.custom.endpoint"
]
}
}
VOD Delete: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | Name of the folder deleted from storage. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
DRM SWITCH
This workflow allows you to toggle DRM on and off for a VOD asset. Missing manifests will be generated when required. If the VOD asset does not have a DRM manifest and DRM is being enabled, a list of DRM systems needs to be provided as part of the payload.
DRM Switch: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘drmswitch’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
folder | Yes | Folder where the content to be DRM toggled is stored. | |
drm | No | [] | A list of DRM systems o be applied to the VOD stream. This could be "playready" and/or ”widevine” and/or ”fairplay” and/or “cenc” and/or "aes" . |
cpix | No | false | This boolean indicates whether DRM will be handled using a CPIX document. |
download_cpix | No | false | This boolean indicates whether the cpix document should be downloaded. This should be set to false if the cpix proxy is being used. |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
source_storage | No | "S3" | This is used to indicate where the VOD assets are stored (see Storage Support section). |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. |
DRM Switch: Payload example
{
"client": "demo-client",
"job": {
"workflow": "drmswitch"
},
"parameters": {
"content_id": "demo1",
"folder": "vualto-test-1",
"drm": [
"fairplay",
"cenc"
],
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://your.custom.endpoint"
]
}
}
DRM Switch: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | Full path of the active manifest, for the generated content. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
CREATE MP4
This workflow allows you to create an MP4 from a VOD asset.
Create MP4: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘createmp4’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
source_folder | Yes | Folder where the VoD source content can be found. | |
output_folder | No | "{source_folder}" | Folder where the MP4 should be saved. |
retries | No | 0 | Retry limit when attempting to copy from the source storage. |
mp4_filename | No | "{content_id}.mp4" | The name of the resulting mp4 file. |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
mezzanine | No | false | This boolean indicates whether the generated mp4 contains all the video tracks or just the highest bitrate audio and video track. |
source_storage | No | "S3" | This is used to indicate where the source VOD is stored (see Storage Support section). |
destination_storage | No | "{source_storage}" | This is used to indicate the destination for the generated MP4 (see Storage Support section). |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. |
Create MP4: Payload example
{
"client": "demo-client",
"job": {
"workflow": "createmp4"
},
"parameters": {
"content_id": "demo1",
"source_folder": "vualto-test-1",
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://your.custom.endpoint"
],
"mp4_filename": "result.mp4",
"output_folder": "vualto-test-1/downloads"
}
}
Create MP4: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | MP4 filename. |
files | List of files uploaded to the destination storage. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
BUILD THUMBNAILS
This workflow allows you to generate thumbnail assets which can then be used for video timeline previews.
Build Thumbnails: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘build_thumbnails’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
source | Yes | URL of the HLS source from which to create assets. Live sources (.isml) must be in a state of stopped . | |
filename_prefix | No | "{content_id}" | Prefix for the file names of generated assets, eg: "{target_filename}_sprite.jpg" . |
output_folder | Yes | "{content_id}" | This is the folder where the resulting assets will be saved on the destination storage. |
preview_thumbnails_interval | No | 10 | Interval time between thumbnail captures in seconds. |
video_fps | No | 24 | Fallback parameter, which will only be used if the fps cannot be obtained from the source metadata. |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
destination_storage | No | "S3" | This is used to indicate the destination for the generated thumbnail assets (see Storage Support section). |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. |
Build Thumbnails: Payload example
{
"parameters": {
"content_id": "demo1",
"source": "http://mydomain.com/example.ism/.m3u8",
"output_folder": "vualto-test-1/downloads",
"target_filename": "demo_sample",
"preview_thumbnails_interval": 20,
"video_fps": 24,
"rest_endpoints": []
},
"client": "demo-client",
"job": {
"workflow": "build_thumbnails"
}
}
Build Thumbnails: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | List of thumbnail assets uploaded to the destination storage. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
VOD REMIX
This workflow allows you to create a virtual VOD asset that is just a playlist referencing other VOD streams or video files.
VOD Remix: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘vodremix’. | |
content_id | Yes | This is the id for the resulting VOD. | |
output_folder | Yes | This is the folder where the resulting VOD will be saved on the destination storage. This is cleared before the capture is uploaded. | |
clips | Yes | This is an array of sources, with optional start and end times, please see the example request below. | |
clips.source | Yes | This would need to be either a VOD stream or the URL to a video file. Must be accessible from both Task Engine and the Origin. E.g. http://mydomain.com/manifest.ism , https://bucket-name.s3-eu-west-1.amazonaws.com/path/test.mp4 . Required unless clips.sources is used. | |
clips.sources | Yes | An array of video and audio files (tracks or renditions). E.g. ["http://library/path/low.mp4","http://library/high.mp4","http://library/eng.m4a"] . Required unless clips.source is used. | |
clips.start | No | UTC timestamp for the start timecode. e.g 2016-10-13T10:10:40.251Z OR Offsets e.g. hh:mm:ss . | |
clips.end | No | UTC timestamp for the end timecode e.g 2016-10-13T10:20:40.251Z OR Offsets e.g. hh:mm:ss . | |
clips.frame_accurate | No | false | This boolean indicates whether the specified clip will be trimmed using frame accuracy. |
clips.output_description | No | false | This boolean indicates that this clip should be used to set the target profile. There should be only one clip with this set to true. |
clips.markers | No | This object contains all the information related to the SCTE35 markers for the clip (see AVOD and Live Compose section). | |
clips.markers.timescale | No | 1000 | This is used to define the base timescale for the SCTE35 markers. |
clips.markers.frame_accurate | No | {clip.frame_accurate} | This boolean is used to add sync samples at the markers position. |
clips.markers.meta_events | No | Array of meta_event objects. | |
clips.markers.meta_events.presentation_time | Yes | This is the time position at which the marker will be inserted relative to the clip. | |
clips.markers.meta_events.duration | Yes | This is the duration of the marker. | |
clips.markers.meta_events.type | No | replace | replace or insert . This indicates whether the intention is to replace the underlying content with ads, or to insert ads and then resume from the point the ad was inserted. |
output_file | No | "remix.mp4" | Name of the output .mp4 file. |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
drm | No | ["clear"] | A list of DRM systems o be applied to the VOD stream. This could be "playready" and/or ”widevine” and/or ”fairplay” and/or “cenc” and/or "aes" . If this value isn’t present or "clear" is specified as a system a DRM-free manifest is created. |
cpix | No | false | This boolean indicates whether DRM will be handled using a CPIX document. |
download_cpix | No | false | This boolean indicates whether the cpix document should be downloaded. This should be set to false if the cpix proxy is being used. |
empty_target | No | true | This boolean indicates whether the target folder in storage should be cleared before the output assets are save. |
enable_drm | No | true | This boolean indicates whether the drm manifest (if created - read drm parameter) should be enabled. |
destination_storage | No | "S3" | This is used to indicate the destination for the VOD assets (see Storage Support section). |
remote_execute_timeout_seconds | No | 0 | This parameter is used to specify the timeout length in seconds for remote workers to complete execution. |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. | |
live_compose | No | false | Generate a live stream looping the playlist (as opposed to the default VOD). |
stream_start_time | No | This field accepts a UTC timestamp eg. 2016-10-13T10:10:40.251Z that will be used to indicate when the Live Compose stream should start. | |
dvr_window_length | No | 60 | The duration in seconds of the live stream DVR window. |
custom_active_manifest_name | No | This field accepts a string that will be used as the manifest name. | |
transcode_proxy | No | This field accepts the url for the remote transcode proxy. |
VOD Remix: JSON Payload example
{
"parameters": {
"content_id": "demo_1",
"output_folder": "demo_1",
"transcode_proxy": "https://vualto.transcode-proxy.com",
"clips": [
{
"source": "https://bucket.s3-eu-west-1.amazonaws.com/manifest.ism",
"start": "2018-06-06T10:00:00.000",
"end": "2018-06-06T10:30:00.000"
},
{
"source": "https://bucket.s3-eu-west-1.amazonaws.com/ad.mp4",
"output_description": true
},
{
"source": "https://bucket.s3-eu-west-1.amazonaws.com/manifest.ism",
"start": "2018-06-06T10:40:00.000",
"end": "2018-06-06T11:00:00.000"
},
{
"source": "https://bucket.s3-eu-west-1.amazonaws.com/manifest.ism",
"start": "2018-06-06T11:00:00.000",
"end": "2018-06-06T11:10:00.000",
"frame_accurate": true,
}
],
"drm": [
"fairplay",
"playready",
"cenc",
"widevine",
"aes"
],
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://your.custom.endpoint"
],
"output_file": "remix.mp4"
},
"client": "demo-client",
"job": {
"workflow": "vodremix"
}
}
VOD Remix: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
output | List of files (manifests, content files, thumbnail, etc…) that have been copied to the final destination. |
metadata.duration | Duration of the VOD event. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
GENERATE GIF
This workflow allows you to create animated GIFs from a VOD stream.
Generate GIF: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘generate_gif’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
source | Yes | URL for the VOD source used to generate the GIF. | |
start_at | Yes | Start time for the GIF capture. This will either be in seconds, a UTC based timestamp or a time offset (“hh:mm:ss”) | |
duration | Yes | The duration of the capture used for the GIF. This should be specified in seconds (milliseconds are supported). | |
output_folder | Yes | Folder where the GIF should be saved. | |
gif_filename | Yes | The name of the resulting GIF file. | |
bitrate | No | This is used to filter the source and capture the GIF from a specific video bitrate within the stream. | |
fps | No | 12 | The frames per second of the resulting bitrate. |
width | No | -1 | The width of the resulting GIF. If not provided it will be calculated automatically based on the aspect ration and the height specified. |
height | No | -1 | The height of the resulting GIF. If not provided, it will be calculated automatically based on the aspect ration and width specified. If neither height or width are specified, a height of 480 pixels is used. |
playback_loop | No | 0 | The number of times the GIF should loop. |
reverse | No | false | This boolean indicates whether the GIF should be played in revers. |
playback_speed | No | 1 | This indicates the speed at which the GIF should be played back. Eg. 1.5 for GIF playback that is 1 and a half faster than the actual speed. |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
destination_storage | No | "S3" | This is used to indicate the destination for the generated MP4 (see Storage Support section). |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. |
Generate GIF: Payload example
{
"client": "demo-client",
"job": {
"workflow": "generate_gif"
},
"parameters": {
"content_id": "demo-content",
"source": "http://mydomain.com/example.ism/.m3u8",
"start_at": 30,
"duration": 6,
"output_folder": "/demo-content/assets",
"gif_filename": "half speed.gif",
"bitrate": 1549288,
"fps": 15,
"width": 500,
"playback_speed": 0.5,
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://your.custom.endpoint"
]
}
}
Generate GIF: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | GIF filename. |
files | List of files uploaded to the destination storage. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
CAPTURE FRAME
This workflow allows you to capture a single frame from a stream.
Capture Frame: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘capture_frame’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
source | Yes | URL for the VOD source used to capture the frame from. | |
frame_time | Yes | Time of the frame within the source stream. This will either be a UTC based timestamp or a time offset (“hh:mm:ss”). | |
output_folder | Yes | Folder where the captured frame should be saved. | |
image_filename | Yes | The name of the resulting image file. | |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
destination_storage | No | "S3" | This is used to indicate the destination for the generated MP4 (see Storage Support section). |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. |
Capture Frame: Payload example
{
"client": "demo-client",
"job": {
"workflow": "capture_frame"
},
"parameters": {
"content_id": "demo-content",
"source": "http://mydomain.com/example.ism/.m3u8",
"frame_time": "00:00:07.0400000",
"output_folder": "/demo-content/assets",
"image_filename": "frame.jpg",
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://your.custom.endpoint"
]
}
}
Capture Frame: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | Image filename. |
files | List of files uploaded to the destination storage. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
ASSET DELETE
This workflow allows you to delete individual assets without deleting an entire VOD directory.
Asset Delete: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘asset_delete’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
files | Yes | Array of files to be deleted from S3. | |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
source_storage | No | "S3" | This is used to indicate where the source VOD is stored (see Storage Support section). |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. |
Asset Delete: Payload example
{
"client": "demo-client",
"job": {
"workflow": "asset_delete"
},
"parameters": {
"content_id": "demo-content",
"files": [
"demo-content/assets/foo.gif",
"demo-content/thumbnail.jpg"
],
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://your.custom.endpoint"
]
}
}
Asset Delete: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description | |
---|---|---|
job_id | Unique job identifier generated by the Task Engine. | |
task_id | Unique task identifier generated by the Task Engine. | |
task_name | Name of the task that triggered the callback. | |
workflow | Name of the workflow being executed. | |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . | |
content_id | Content ID provided when the job was submitted. | |
message | Any message associated with the event. This will usually contain exception messages. | |
files | List of assets deleted | |
time | Time (UTC) the callback was submitted. | |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | List of files to requested for deletion the destination storage. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
MEDIATAILOR CHANNEL ASSEMBLY
This workflow allows for creating and updating Live Compose streams - very similar to VOD REMIX Live Compose. Please refer to Live Compose with Manifest Manipulation for more information and ad break signaling examples.
MediaTailor Channel Assembly: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘mediatailor_channel_assembly’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
clips | Yes | This is an array of sources, each with optional start and end times, please see the example request below. | |
clips.source | Yes | This is a VOD stream. Currently only HLS streams are supported. E.g. http://mydomain.com/manifest.m3u8 . | |
clips.markers | No | This object contains all the information related to the SCTE35 markers for the clip (see AVOD and Live Compose section). | |
clips.markers.meta_events | No | Array of meta_event objects. | |
clips.markers.meta_events.presentation_time | Yes | This is the time position at which the marker will be inserted relative to the clip. | |
clips.markers.meta_events.slate | Yes | This is the duration of the marker. | |
restart_channel | No | true | This boolean indicates whether the MediaTailor channel must be restarted or not. Channel restart is required if the source types do not match. |
update_existing_vod_sources | No | false | This boolean indicates whether existing MediaTailor vod sources should be updated if content with the same vod source location is submitted. |
dvr_window_length | No | 60 | The duration in seconds of the live stream DVR window. |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference) and returns it as part of the job callback. |
MediaTailor Channel Assembly: Payload example
{
"client": "demo-client",
"job": {
"workflow": "mediatailor_channel_assembly"
},
"parameters": {
"content_id": "demo-content",
"clips": [
{
"source": "https://cdn.com/assets/1.m3u8"
},
{
"source": "https://cdn.com/assets/2.m3u8"
},
{
"source": "https://cdn.com/assets/3.m3u8"
}
],
"rest_endpoints": [
"http://your.custom.endpoint"
]
}
}
MediaTailor Channel Assembly: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | Resulting live streaming URL |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
MEDIATAILOR CHANNEL STATE
This workflow allows for stopping and starting MediaTailor channels.
MediaTailor Channel State: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘mediatailor_channel_state’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
state | Yes | Either start or stop . | |
delete | No | false | This boolean indicates whether the channel must be deleted or not. |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. |
MediaTailor Channel State: Payload example
{
"client": "demo-client",
"job": {
"workflow": "mediatailor_channel_state"
},
"parameters": {
"content_id": "demo-content",
"state": "stop",
"delete": true
}
}
MediaTailor Channel State: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
VOD NPVR
This workflow will generate a VOD asset from segments captured through the Vualto Archiver. Segments are shared across different VOD assets which reduces storage requirements and processing time.
A server side manifest is created, with and/or without DRM, that can be used for on the fly delivery of VOD content via the Unified Streaming Platform. The VOD NPVR workflow includes support to inherit the DRM keys form a specified Vualto Archiver profile and stores it as a custom manifest. This workflow will include any SCTE35 markers that occurred during each segment.
VOD NPVR: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘vodnpvr’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
clips | yes | This is an array of sources, with optional start and end times, please see the example request below. | |
clips.capture_id | Yes | This would be the capture id for the Vualto Archiver event to be used as the source. | |
clips.start | Yes | UTC timestamp for the start timecode. e.g 2016-10-13T10:10:40.251Z . | |
clips.end | Yes | UTC timestamp for the end timecode e.g 2016-10-13T10:20:40.251Z . | |
output_folder | Yes | The folder for processed files to be placed. The ‘root’ folder will be specified in the client configuration. | |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
apply_custom_drm | No | false | This boolean indicates whether a custom DRM manifest using drm keys from the specified Vualto Archiver profile. |
profile_id | No | This is the id for the profile used for the custom DRM manifest. | |
custom_manifest_name | No | "custom.ism" | The name to be given to the custom DRM manifest. |
drm | No | ["clear"] | The type of DRM that is required. This could be “playready” and/or ”widevine” and/or ”fairplay” and/or “cenc” and/or “aes”. If this value isn’t present the the normal DRM manifest is not created. |
cpix | No | false | This boolean indicates whether DRM will be handled using a CPIX document. |
download_cpix | No | false | This boolean indicates whether the cpix document should be downloaded. This should be set to false if the cpix proxy is being used. |
empty_target | No | true | This boolean indicates whether the target folder in storage should be cleared before the output assets are save. |
source_storage | No | "S3" | This is used to indicate where the source content is stored (see Storage Support section). |
destination_storage | No | "{source_storage}" | This is used to indicate the destination for the VOD assets (see Storage Support section). |
remote_execute_timeout_seconds | No | 0 | This parameter is used to specify the timeout length in seconds for remote workers to complete execution. |
overwrite_segments | No | false | This boolean indicates whether segments already in use by other VOD assets should be overwritten when generating the current VOD asset. |
custom_package_options | No | "--timed_metadata --splice_media" | This contains package options required to support SCTE35 markers within remix profiles. |
missing_content_limit | No | 5.0 | The limit in seconds of missing content over which the VOD asset generation is abandoned. Missing content is usually caused by discontinuities from the Archiver source stream. |
enable_drm | No | true | This boolean indicates whether the drm manifest (if created - read drm parameter) should be enabled. |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. | |
transcode_proxy | No | This field accepts the url for the remote transcode proxy. |
VOD NPVR: JSON Payload example
{
"client": "demo-client",
"job": {
"workflow": "vodnpvr"
},
"parameters": {
"content_id": "vudrm_1",
"clips": [
{
"start": "2020-09-08T14:10:00Z",
"end": "2020-09-08T14:44:00Z",
"capture_id": "test4"
}
],
"transcode_proxy": "https://vualto.transcode-proxy.com",
"output_root": "output_root",
"apply_custom_drm": true,
"profile_id": "test4_drm",
"custom_manifest_name": "manifest.ism",
"drm": [
"fairplay",
"cenc",
"clear"
],
"cpix": false,
"missing_content_limit": 700,
"output_folder": "vudrm/test4_1599574200000_1599576240000",
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://aaa.com/end",
"http://bbb.com/end"
],
"custom_data": { "custom_ref" : "ref-123" }
}
}
VOD NPVR: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
message | Full path of the active manifest, for the generated content. |
files | List of files (manifests, content files, thumbnail, etc…) that have been copied to the final destination. |
segments | Segments used for the VOD asset. |
metadata.duration | Duration of the VOD event. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Trickplay
This workflow will generate (with trickplay_thumbnails
enabled) a thumbnail CMAF track containing JPEG compressed frames from points in a AVC/H.264 or HEVC/H.265 video.
If trickplay_thumbnails
is disabled, it will only insert sync-samples.
Trickplay: Parameters
Parameter Name | Required | Default | Description |
---|---|---|---|
workflow | Yes | Specify ‘trickplay’. | |
content_id | Yes | Unique identifier of the content. This is usually a key that allows identification of the content in the client’s system. | |
source_folder | Yes | Location of the source files. All files to be processed will need to be in a discrete folder, the ‘root’ folder will be specified in the client configuration. | |
output_folder | No | "{source_folder}" | The folder for processed files to be placed. The ‘root’ folder will be specified in the client configuration. |
rest_endpoints | No | Endpoints that will receive the callbacks defined in the workflow. Multiple end points can be specified. | |
source_storage | No | "S3" | This is used to indicate where the source content is stored (see Storage Support section). |
destination_storage | No | "{source_storage}" | This is used to indicate the destination for the VOD assets (see Storage Support section). |
custom_data | No | This field accepts consumer custom data (such as consumer internal reference ) and returns it as part of the job callback. | |
retries | No | 0 | Retry limit when attempting to copy from the source storage. |
trickplay_thumbnails | No | true | This boolean indicates whether to generate thumbnail assets which can be used for trickplay. |
trickplay_thumbnail_size | No | 0 (original size) | This is used to specify the size of the long edge of each trickplay thumbnail (in pixels). |
trickplay_thumbnail_interval | No | 10 | This is used to indicate the duration between trickplay thumbnails (in seconds). |
trickplay_thumbnail_quality | No | 30 | This is used to indicate the quality of the thumbnail generated for trickplay (1 - 100). |
Trickplay: JSON Payload example
{
"client": "demo-client",
"job": {
"workflow": "trickplay"
},
"parameters": {
"content_id": "vudrm_1",
"source_folder": "vualto-test-1",
"trickplay_thumbnails": true,
"trickplay_thumbnail_interval": 5,
"trickplay_thumbnail_size": 1280,
"trickplay_thumbnail_quality": 50,
"output_root": "output_root",
"output_folder": "vualto-output",
"rest_endpoints": [
"https://vis.vuworkflow.staging.vualto.com/api/event/vuflow/taskenginecallback",
"http://aaa.com/end",
"http://bbb.com/end"
],
"custom_data": { "custom_ref" : "ref-123" }
}
}
Trickplay: Callback properties
Task Callback
Task callbacks are triggered after each task within a workflow is completed. Below is a list of the default properties for the callback:
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
task_id | Unique task identifier generated by the Task Engine. |
task_name | Name of the task that triggered the callback. |
workflow | Name of the workflow being executed. |
event | This will identify the event that caused the callback to be triggered. It can be one of start , complete or fail . |
content_id | Content ID provided when the job was submitted. |
message | Any message associated with the event. This will usually contain exception messages. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
Job Callback
Job callbacks are triggered when the entire job has completed. Below is a list of the default properties for the callback.
Property Name | Description |
---|---|
job_id | Unique job identifier generated by the Task Engine. |
status | This will identify the status of the job. It can be either completed or failed . |
workflow | Name of the workflow being executed. |
content_id | Content ID provided when the job was submitted. |
files | List of files (manifests, content files, thumbnail, etc…) that have been copied to the final destination. |
custom_data | Returns the custom data submitted to the workflow. |
time | Time (UTC) the callback was submitted. |
client | Client name provided when the job was submitted. |
WORKFLOW TRIGGER EXAMPLE
Example of a curl command to trigger ingest for the VOD Stream workflow:
curl -X POST \
http://vualto.demo.com/job \
-H "API-KEY: aabbccdd-1122-3344-5566-eeff77889900" \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-d '{
"client": "vualto",
"job": {
"workflow": "vodstream"
},
"parameters": {
"content_id": "demo_1",
"source_folder": "/input/demo1",
"delete_source": false,
"enable_drm": false,
"output_folder": "/test",
"drm": [
"fairplay",
"playready",
"cenc",
"widevine"
],"rest_endpoints": [
"https://webhook.site/55151d14-cee1-416b-b956-a90525ae8f58",
"https://webhook.site/bc4c13ee-f118-4d5b-a4af-7ac07890a7f1"
],
"create_thumbnail": false,
"generate_mp4": true,
"combine_sources": true,
"create_dref": true,
"all_audio_tracks": false,
}
}
This results in the files <content_id>_<drm_tag>_<unique_guid>.ism
and <content_id>_<unique_guid>.ismv
being produced in the folder:
<configured_root>(/<optional_output_folder>)/<content_id>
The response from this call should be either a 200 OK, with the following payload:
{ "job_id": <job_id>, "result": "accepted" }
or a 400 BAD REQUEST with the following payload:
{ "error": "<description_of_error>" }
Assuming the call is successful, this would add an ingest job to the Task Engine queue, with the files to be ingested expected to be in the following location:
<input_root>/input/demo1
If the process completes successfully, then the output would be the following files:
<output_root>/test/demo1.ism
<output_root>/test/demo1.ismv
If the ‘output_folder’ parameter was excluded, then the files would be output to the following locations:
<output_root>/demo1.ism
<output_root>/demo1.ismv
NOTE: there may be some additional files, depending on the exact processes involved, but the minimum would usually be these.