19 September 2019
Ad_break enhancement
Added different marker types for <ad_break /> parameter for advanced_hls, fmp4_hls, and advanced_fmp4 (HLS manifest) output formats.
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required-->
<userkey><<key>></userkey> <!-- required-->
<action>[Action]</action> <!-- required-->
<format>
<output>[advanced_hls|fmp4_hls|advanced_fmp4]</output>
<!-- multiple ad_breaks may be included -->
<ad_break>
<start>[StartTime]</start>
<end>[EndTime]</end>
<duration>[BreakDuration]</duration>
<drop_segments>[yes|no]</drop_segments>
<marker_type>[MarkerType]</marker_type>
<id>[BreakID]</id>
</ad_break>
<ad_break>
<!-- ad_break params -->
</ad_break>
<!-- multiple cue_inserts may be included -->
<cue_insert>
<start>[StartTime]</start>
<end>[EndTime]</end>
<duration>[BreakDuration]</duration>
<drop_segments>[yes|no]</drop_segments>
<marker_type>[MarkerType]</marker_type>
<id>[BreakID]</id>
</cue_insert>
<cue_insert>
<!-- cue_insert params -->
</cue_insert>
</format>
</query>
{
"query": {
"userid": "<<id>>",
"userkey": "<<key>>",
"action": "[Action]",
"format": {
"output": "[advanced_hls|fmp4_hls|advanced_fmp4]",
"ad_break": [
{
"start": "[StartTime]",
"end": "[EndTime]",
"duration": "[BreakDuration]",
"drop_segments": "[yes|no]",
"marker_type": "[MarkerType]",
"id": "[BreakID]"
}
],
"cue_insert": [
{
"start": "[StartTime]",
"end": "[EndTime]",
"duration": "[BreakDuration]",
"drop_segments": "[yes|no]",
"marker_type": "[MarkerType]",
"id": "[BreakID]"
}
]
}
}
}
SCTE35 credits
For SCTE35 opening and closing credits, you can use <cue_insert /> parameter block. It has the same sub-parameters as <ad_break /> except <marker_type/>.
Parameter | Description | Allowed Values | Default Values |
---|---|---|---|
marker_type (ad_break) | Break Marker Type | cue-out-in — adds #EXT-X-CUE-OUT/EXT-X-CUE-IN tag. scte-35 — adds #EXT-X-SCTE35 tag. cue — adds #EXT-X-CUE tag. daterange — adds #EXT-X-DATERANGE tag. | cue-out-in |
marker_type (cue_insert) | scte35-opening-credit — adds #EXT-X-SCTE35 opening credits tag. scte35-closing-credit — adds #EXT-X-SCTE35 closing credits tag. | scte35-opening-credit | |
id | Marker ID attribute | Valid string | None |
start | Place cue IN marker in it's value position of HLS manifest | positive float number in seconds timecode in format HH:MM:SS[:;]FF HH – hours MM – minutes SS – seconds FF – frames [:;] – : – non drop-frame, ; – drop-frame; | None |
end | Place cue OUT marker in it's value position of HLS manifest | positive float number in seconds timecode in format HH:MM:SS[:;]FF HH – hours MM – minutes SS – seconds FF – frames [:;] – : – non drop-frame, ; – drop-frame; | None |
duration | Specify the break duration in seconds. | positive integer number in seconds timecode in format HH:MM:SS[:;]FF HH – hours MM – minutes SS – seconds FF – frames [:;] – : – non drop-frame, ; – drop-frame; | None |
For duration and end parameters
If parameter is specified will be ignored.
Manifest examples
Parameter | Value |
---|---|
id | 103038 |
start | 1322 |
duration | 195 |
drop_segments | yes |
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:7
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
...
#EXT-X-DISCONTINUITY
#EXT-X-CUE-OUT:DURATION=195.000,BREAKID=103038
...
#EXT-X-CUE-OUT-CONT:6.008/195.000
...
#EXT-X-CUE-IN
...
#EXT-X-ENDLIST
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:7
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
...
#EXT-X-DISCONTINUITY
#EXT-X-SCTE35:CUE="/DAlAAAAAAAAAP/wFAUAAZJ+f+/+AAAAAH4BC8qwAAAAAAAAYX3uzw==",ID="103038"
...
#EXT-X-SCTE35:CUE="/DAgAAAAAAAAAP/wDwUAAZJ+f0/+AAAAAAAAAAAAAI6soYY=",ID="103038"
...
#EXT-X-ENDLIST
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:7
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
...
#EXT-X-DISCONTINUITY
#EXT-X-CUE:TYPE="SpliceOut",ID=103038,TIME=887853233700,DURATION=195.000
...
#EXT-X-CUE:TYPE="SpliceOut",ID=103038,TIME=887853233700,DURATION=195.000,ELAPSED=6.008,CAID=eyJjdWVUeXBlIjoic3RhbmRhcmQiLCJrZXkiOiIiLCJ2YWx1ZSI6IiJ9
...
#EXT-X-ENDLIST
#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-VERSION:7
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
...
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="103038",START-DATE="2019-01T00:15:00Z\",DURATION=195.000,SCTE35-OUT=0xfc302500000000000000fff014050001927e7feffe000000007e010bcab0000000000000617dee
...
#EXT-X-DATERANGE:ID="103038",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xfc302000000000000000fff00f050001927e7f4ffe000000000000000000008eaca186
...
#EXT-X-ENDLIST
Media request metadata
Added new parameter for AddMedia requests.
To pass custom data from AddMedia request to GetStatus response or Notifications you can add parameter to the level. This parameter accepts may be string, single xml node (JSON object) or multiple XML nodes (JSON array).
Request
<?xml version="1.0"?>
<query>
<userid><<id>></userid>
<userkey><<key>></userkey>
<action>[AddMedia|AddMediaBenchmark]</action>
<meta>Some random data</meta>
</query>
{
"query": {
"userid": "<<id>>",
"userkey": "<<key>>",
"action": "[AddMedia|AddMediaBenchmark]",
"meta": "Some random data"
}
}
<?xml version="1.0"?>
<query>
<userid><<id>></userid>
<userkey><<key>></userkey>
<action>[AddMedia|AddMediaBenchmark]</action>
<meta>
<a>1</a>
<b>2</b>
</meta>
</query>
{
"query": {
"userid": "<<id>>",
"userkey": "<<key>>",
"action": "[AddMedia|AddMediaBenchmark]",
"meta": {
"a": "1"
"b": "2"
}
}
}
<?xml version="1.0"?>
<query>
<userid><<id>></userid>
<userkey><<key>></userkey>
<action>[AddMedia|AddMediaBenchmark]</action>
<meta>foo</meta>
<meta>
<bar>baz</bar>
</meta>
</query>
{
"query": {
"userid": "<<id>>",
"userkey": "<<key>>",
"action": "[AddMedia|AddMediaBenchmark]",
"meta": [
"foo",
{"bar": "baz"}
]
}
}
GetStatus Response
<?xml version="1.0"?>
<response>
<id>[MediaID]</id>
<userid><<id>></userid>
<sourcefile>[SourceFile]</sourcefile>
<status>[MediaStatus]</status>
<!-- ... -->
<meta>Some random data</meta>
</response>
{
"response": {
"id": "[MediaID]",
"userid": "<<id>>",
"sourcefile": "[SourceFile]",
"status": "[MediaStatus]",
"meta": "Some random data"
}
}
<?xml version="1.0"?>
<response>
<id>[MediaID]</id>
<userid><<id>></userid>
<sourcefile>[SourceFile]</sourcefile>
<status>[MediaStatus]</status>
<!-- ... -->
<meta>
<a>1</a>
<b>2</b>
</meta>
</response>
{
"response": {
"id": "[MediaID]",
"userid": "<<id>>",
"sourcefile": "[SourceFile]",
"status": "[MediaStatus]",
"meta": {
"a": "1"
"b": "2"
}
}
}
<?xml version="1.0"?>
<response>
<id>[MediaID]</id>
<userid><<id>></userid>
<sourcefile>[SourceFile]</sourcefile>
<status>[MediaStatus]</status>
<!-- ... -->
<meta>foo</meta>
<meta>
<bar>baz</bar>
</meta>
</response>
{
"response": {
"id": "[MediaID]",
"userid": "<<id>>",
"sourcefile": "[SourceFile]",
"status": "[MediaStatus]",
"meta": [
"foo",
{"bar": "baz"}
]
}
}
HTTP Notification Body
<?xml version="1.0"?>
<result>
<id>[MediaID]</id>
<userid><<id>></userid>
<sourcefile>[SourceFile]</sourcefile>
<status>[MediaStatus]</status>
<!-- ... -->
<meta>Some random data</meta>
</result>
{
"result": {
"id": "[MediaID]",
"userid": "<<id>>",
"sourcefile": "[SourceFile]",
"status": "[MediaStatus]",
"meta": "Some random data"
}
}
<?xml version="1.0"?>
<result>
<id>[MediaID]</id>
<userid><<id>></userid>
<sourcefile>[SourceFile]</sourcefile>
<status>[MediaStatus]</status>
<!-- ... -->
<meta>
<a>1</a>
<b>2</b>
</meta>
</result>
{
"result": {
"id": "[MediaID]",
"userid": "<<id>>",
"sourcefile": "[SourceFile]",
"status": "[MediaStatus]",
"meta": {
"a": "1"
"b": "2"
}
}
}
<?xml version="1.0"?>
<result>
<id>[MediaID]</id>
<userid><<id>></userid>
<sourcefile>[SourceFile]</sourcefile>
<status>[MediaStatus]</status>
<!-- ... -->
<meta>foo</meta>
<meta>
<bar>baz</bar>
</meta>
</result>
{
"result": {
"id": "[MediaID]",
"userid": "<<id>>",
"sourcefile": "[SourceFile]",
"status": "[MediaStatus]",
"meta": [
"foo",
{"bar": "baz"}
]
}
}
Email Notification Body
...
Media ID: [MediaID]
Source file: [SourceFile]
Status: [MediaStatus]
Meta: Some random data
...
Media ID: [MediaID]
Source file: [SourceFile]
Status: [MediaStatus]
Meta: {
"a": "1"
"b": "2"
}
...
Media ID: [MediaID]
Source file: [SourceFile]
Status: [MediaStatus]
Meta: [
"foo",
{"bar": "baz"}
]
Advanced_fmp4 fragment duration
Added option to customize fragment duration for advanced_fmp4 output format.
<?xml version="1.0"?>
<query>
<userid><<id>></userid> <!-- required-->
<userkey><<key>></userkey> <!-- required-->
<action>[Action]</action> <!-- required-->
<format>
<output>advanced_fmp4</output>
<fragment_duration>[Duration]</fragment_duration>
</format>
</query>
{
"query": {
"userid": "<<id>>",
"userkey": "<<key>>",
"action": "[Action]",
"format": {
"output": "advanced_fmp4",
"fragment_duration": "[Duration]"
}
}
}
Parameter | Description | Available Values | Default Value |
---|---|---|---|
fragment_duration | fMP4 fragment duration in seconds | Positive integer number | equals to <segment_duration /> |
For fragment_duration parameter
<fragment_duration /> parameter available only for advanced_fmp4 output format.