Radiant Media Player

Related content support




Features

The related content module allows for multiple video items to play, one after another, with no delay in between. This approach is ideal for content that should be viewed in a particular order, such as episodes in a show. Ten seconds before the completion of a video item, an "up next" panel in the bottom left corner will show, clearly identifying the next video item to be played.

Viewers can either use a next button in the control bar to skip the current video item or use the related module in the top-right corner to display an overlay element which will present the wall of related video items. See above for an example.

Video ads can be played each time a new video item is loaded within the player. The related UI is fully compatible with mobile devices. A built-in error-recovery mechanism is also provided to skip related items that may be unavailable.

Related video items data are stored in a JSON file that is retrieved and parsed by the player at run time. See below for information about how to construct this JSON file.


Related content data in JSON format

Here is a full example of well-formatted JSON file that can be used with Radiant Media Player to display related content.

The general structure is as follows. The required fields for each related item are:

  • bitrates - streaming URL for the related item
  • poster - poster frame for the related item - size should be equal to the initial player size (832x468 for the example above)
  • contentTitle - title for the related item

All items within the related playlist must have the same bitrates type information (e.g. if you use HLS - each related item must have a HLS URL in its bitrates information; if you use MP4 progressive download - each related item must have a MP4 URL in its bitrates information)

Optional fields for each related item are:

  • adTagUrl - the URL to the adTag to be loaded when the related item starts - if you use ads you must also set the player setting ads to true
  • thumbnail (highly recommended) - thumbnail frame for the related item (size should be 332x186) - if thumbnail information is not found poster data will be used
  • contentDuration - duration for the related item - expressed as hh:mm:ss

The related content layout was designed to display 16:9 content. Video content, poster, thumbnail and player size should be at a 16:9 ratio for best results. Other ratio may work but you may need to adjust player CSS to best fit your custom ratio.

Example:

{
  "playlist": [ 
    {
      "bitrates": {
        "hls": "https://dqwp3xzzbfhtw.cloudfront.net/vod/smil:bbb.smil/playlist.m3u8"
      },
      "poster": "https://www.radiantmediaplayer.com/media/playlist/poster/item-1.jpg",
      "thumbnail": "https://www.radiantmediaplayer.com/media/playlist/poster/item-1-thumbnail-related.jpg",
      "adTagUrl": "https://www.radiantmediaplayer.com/vast/tags/inline-linear.xml",
      "contentTitle": "Video Item 1",
      "contentDuration": "01:51"
    },
    {
      "bitrates": {
        "hls": "https://dqwp3xzzbfhtw.cloudfront.net/vod/smil:ed.smil/playlist.m3u8"
      },
      "poster": "https://www.radiantmediaplayer.com/media/playlist/poster/item-2.jpg",
      "thumbnail": "https://www.radiantmediaplayer.com/media/playlist/poster/item-2-thumbnail-related.jpg",
      "adTagUrl": "https://www.radiantmediaplayer.com/vast/tags/inline-linear-skippable.xml",
      "contentTitle": "Video Item 2",
      "contentDuration": "10:53"
    },
    {
      "bitrates": {
        "hls": "https://dqwp3xzzbfhtw.cloudfront.net/vod/smil:bbb-long.smil/playlist.m3u8"
      },
      "poster": "https://www.radiantmediaplayer.com/media/playlist/poster/item-3.jpg",
      "thumbnail": "https://www.radiantmediaplayer.com/media/playlist/poster/item-3-thumbnail-related.jpg",
      "adTagUrl": "https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=",
      "contentTitle": "Video Item 3",
      "contentDuration": "09:56"
    }  
  ]
}

Another example of JSON related with MP4 progressive download can be found here.


Player settings

relatedLoc: String

This set the path to the JSON file that hold information about the related content to display within the player. This must be a fully qualified URL. This file is retrieved through ajax by the player so proper CORS setting are expected.

relatedUpNextOffset: Number

The time to end of content (in seconds) before the "up next" panel is shown to the viewer. Default: 10.

relatedUpNextAutoplay: Boolean

By default when a video item ends in the related playlist the next item is automatically played. Default: true. Setting this setting to false will cause the related engine to display the wall of related video item when the current video item ends (e.g. it will not autoplay next item).

relatedEndedLoop: Boolean

By default when the last item of the related playlist ends the player stops and shows the discovery overlay menu. When relatedEndedLoop is set to true and the last item of the related playlist ends the player will automatically start loading and displaying the first item in the related playlist (e.g. playlist loop). Default: false. When relatedEndedLoop is set to true relatedUpNextAutoplay must also be set to true to have effect.


Player code example

The below code is used to display the example at top of this page:

<script src="https://cdn.radiantmediatechs.com/rmp/4.3.10/js/rmp.min.js" 
  integrity="sha384-oqyrp9HkidOFyRcmx+X2yLeX4ICBkGqK+vCML6IeTlkD3JV9omoVl0lvZJNqdmTX"
  crossorigin="anonymous"></script>
<div id="rmpPlayer"></div>
<script>
var settings = {
  licenseKey: 'your-license-key',
  delayToFade: 3000,
  width: 832,
  height: 468,
  // if you want ads to show uncomment this next setting
  // ads: true,
  // our related settings
  relatedUpNextOffset: 10,
  relatedUpNextAutoplay: true,
  relatedEndedLoop: false,
  relatedLoc: 'https://www.radiantmediaplayer.com/media/playlist/related.json'
};
var elementID = 'rmpPlayer';
var rmp = new RadiantMP(elementID);
rmp.init(settings);
</script>

Related API

getCurrentRelatedItemIndex()
rmp.getCurrentRelatedItemIndex();

This getter returns a Number representing the index of the current related item being displayed. Index starts at 0. null is returned if this value is not available.

setRelatedItem(index)
rmp.setRelatedItem(1);

This method sets the current related item being displayed. index input parameter should be a number representing the desired related item to be displayed.


Additional support notes

The following features are not supported with related content:

  • Google analytics plugin
  • Ad scheduler
  • Ad-waterfalling through the adTagWaterfall setting
  • VMAP adTag
  • loop setting
  • Closed captions through the ccFiles setting