Contact support

Channels: VoD

Overview

VoD channels require additional parameters and an mRSS playlist to be created before they can be viewed. This document provides guidance on setting up VoD channels and creating or updating playlists.

mRSS feed creation and update

POST mRSS

POST  https://mydomain.com/ad-aggregation-service/mrss/channel/:id

Path parameters

Field Type Description
id string The channel’s unique identifier (UUID).

Headers

Field Type Description
api-key string The API key used for authentication (UUID format).

Request body

Field Type Description
url string The URL to the mRSS feed.
context string The environment: web or app.
deliverytypes array The delivery type. Can be either 'hls' or 'dash' (not both at the same time), for example, ['hls'].
ifa string The Identifier for Advertising (IFA). For more information, see Guidelines for Identifier for Advertising On OTT Platforms.

200: Response for DASH (HLS identical, top-level key: 'hls')

{
 "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
   }
  ]
 }
}
 
 

Example request 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 Serverside.ai that can serve ads, you must include the relevant configuration. For more information, see channels Channels: POST.

Ad-source params that are special for VoD channels (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>
 
 

Cue point

Field Type Mandatory Description
cuepoint id string yes The name or ID for the cue point.
splicetime integer yes

The splicetime of the ad break in milliseconds.

0: pre-roll
-1: post-roll
any other integer: splicetime in milliseconds for mid-roll

maxcount integer no The maximum number of ads allowed for the given ad break.
duration integer yes The duration of the ad break in seconds.