VOD Channels
VOD channels need extra parameters saved with them, and also need an a playlist (mRSS) to be created before they can be viewed. Here you will find guidance on setting up VOD channels and playlists.
Creating or updating an mRSS feed
POST mRSS
POST
https://live.serverside.ai/ad-aggregation-service/mrss/channel/:id
Path Parameters
id
string
The Channel's id (uuid)
Headers
api-key
string
UUID
Request Body
url
string
URL to the mRSS feed
context
string
e.g: 'web'
deilverytypes
array
Specifies the delivery type. Can only be 'hls'
or 'dash'
(not both at the same time). e.g. ['hls']
ifa
string
Identifier for Advertising - see link below.
{
"dash": {
"url": "http://localhost:3002/mpds/b435da54-f8a2-497f-b0a3-8411e94e56d1.mpd",
"clips": [
{
"category": "intro",
"titleId": null,
"title": "intro",
"duration": 4000
},
{
"category": "ad",
"titleId": "Ferrero_Love_Brands_WM_2018_4_Praemienmov",
"title": "mov.ad instream ad via adition : 11244",
"duration": 15000
},
{
"category": "outro",
"titleId": null,
"title": "outro",
"duration": 4000
},
{
"category": null,
"titleId": null,
"title": "15 Fakten zu den MIGHTY MORPHIN POWER RANGERS!",
"duration": 11520
}
]
}
}
Request example body
{
"url": "http://localhost:3003/samples/playlists/mrss/mrss-cuepoints-extended-simple.xml",
"context": "web",
"deliverytypes": [ "dash" ],
"ifa": "6f3f587acc245e113eba8eb06bad1486"
}
VoD Channel Creation
To create a channel via the Serverside.ai that is suitable to serve ads you have to make sure to include the related config. See Channels POST for general information.
Ad-Source params that are special for VoD Channels (channel.adSource.params
)
channel.adSource.params
) params: {
"generic": {
"VPI": "MP4",
"media_transcoding": "high",
"ssai[enabled]": 1,
"ssai[vendor]": ""
},
"context": {
"web": {
"content_page_url": ""
},
"app": {
"app[bundle]": ""
}
}
mRSS - Template
mRSS [simple - .mp4]
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
<item>
<title>VoD Playlist</title>
<media:category>ad</media:category>
<media:content type="video/mp4" url="https://hostname/vod/contents/check/25s_ISVA.mp4"/>
</item>
</channel>
</rss>
mRSS [extended - DASH/HLS without AdCuePoint]
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:ad="http://ssai.nowtilus.tv/mrss/" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>VoD Playlist</title>
<link></link>
<description>Intro</description>
<item>
<title>Hinter den Kulissen</title>
<media:content url="https://hostname/6671a1574df08e28392a140713b9d7c5.jpeg" medium="image"></media:content>
<media:content url="https://hostname/vod/L2QfSeA81Qg/playlist_hd.m3u8" type="application/vnd.apple.mpegurl"></media:content>
<media:content url="https://hostname/vod/L2QfSeA81Qg/HD_manifest.mpd" type="application/dash+xml"></media:content>
</item>
</channel>
</rss>
mRSS [extended - DASH/HLS with AdCuePoint]
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:ad="http://ssai.nowtilus.tv/mrss/" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>VoD Playlist</title>
<link></link>
<description>Intro</description>
<item>
<title>Hinter den Kulissen</title>
<media:content url="https://hostname/6671a1574df08e28392a140713b9d7c5.jpeg" medium="image"></media:content>
<media:content url="https://hostname/vod/L2QfSeA81Qg/playlist_hd.m3u8" type="application/vnd.apple.mpegurl"></media:content>
<media:content url="https://hostname/vod/L2QfSeA81Qg/HD_manifest.mpd" type="application/dash+xml"></media:content>
<ad:cuepoints>
<cuepoint id="adpod-0">
<splicetime>0</splicetime>
<maxcount>2</maxcount>
<duration>45</duration>
<intro type="application/vnd.apple.mpegurl" url="https://hostname/vod/4O5_sMiF1Qg/playlist_hd.m3u8"></intro>
<intro type="application/dash+xml" url="https://hostname/vod/4O5_sMiF1Qg/HD_manifest.mpd"></intro>
<outro type="application/vnd.apple.mpegurl" url="https://hostname/vod/x7OmjR2I1Qg/playlist_hd.m3u8"></outro>
<outro type="application/dash+xml" url="https://hostname/vod/x7OmjR2I1Qg/HD_manifest.mpd"></outro>
</cuepoint>
</ad:cuepoints>
</item>
</channel>
</rss>
Cuepoint
Field
Type
Mandatory
Description
cuepoint id =
String
yes
name / id for cuepoint
splicetime
Integer
yes
0
= pre-roll
-1
= post-roll
<number>
splicetime in milliseconds for mid-roll
maxcount
Integer
no
Maximum number of ads for the given ad break
duration
Integer
yes
Ad break duration in seconds
Last updated