THEOPlayer Web

This guide is for integrating the MediaMelon Player SDK for the javascript based THEOPlayer Web Version 8.x

Step 1: Add the MediaMelonPlayer SDK

Add the following lines to the web page before THEOPlayer.js files are loaded.

<script type="text/javascript" src="https://PATH_TO_SMARTSIGHT_SDK/mmsmartstreaming_theoplayer.min.js"></script>
<script type='text/javascript' src='THEOplayer.js'></script>

Step 2: Register and Initialize the MediaMelon Player SDK

<customer_id> is your MediaMelon-assigned Customer ID. If you do not know your Customer ID, contact MediaMelon at support@mediamelon.com

After the player instance has been created, create a new Plugin object, register, report player Info, and then initialize the plugin as shown below:

var theoPlayer = new THEOplayer.Player(element, {
     libraryLocation: <location of the library>,
     license: <player license>
})

var mmVideoAssetInfo = {
     "assetName": "ASSET_NAME",
     "assetId": "ASSET_ID",
     "videoId": "VIDEO_ID",
     "contentType": "CONTENT_TYPE",
     "genre": "GENRE",
     "drmProtection": "DRM_PROTECTION",
     "episodeNumber": "EPISODE_NUMBER",
     "season": "SEASON",
     "seriesTitle": "SERIES_TITLE",
     "customTags": {
         "key1": "VALUE_STRING1",
         "key2": "VALUE_STRING2"
     }
};

var theoPlugin = new mmTheoJSAdapter();
var hashSubscriberId = false;
if(theoPlugin.getRegistrationStatus() === false){
     theoPlugin.registerMMSmartStreaming("PLAYER_NAME", "CUSTOMER_ID", "SUBSCRIBER_ID", "DOMAIN_NAME", "SUBSCRIBER_TYPE" , "SUBSCRIBER_TAG", hashSubscriberId);
     theoPlugin.reportPlayerInfo("PLAYER_BRAND", "PLAYER_MODEL", "PLAYER_VERSION");
}

theoPlugin.reportAppInfo("APP_NAME", "APP_VERSION");
theoPlugin.setDeviceInfo("DEVICE_MARKETING_NAME");
theoPlugin.reportViewSessionId("VIEW_SESSION_ID");
theoPlugin.reportSubPropertyId("SUB_PROPERTY_ID");
theoPlugin.reportBasePlayerInfo("BASE_PLAYER_NAME", "BASE_PLAYER_VERSION");

var isLive = false;
theoPlugin.initialize(theoPlayer, "STREAM_URL", mmVideoAssetInfo, isLive);

// Call this Error API to report an App Error.
theoPlugin.reportAppError("ERROR_MESSAGE", "ERROR_CODE");

Variable

Description

PLAYER_NAME

String containing the Player Name.

CUSTOMER_ID

String containing your MediaMelon-assigned Customer ID.

SUBSCRIBER_ID

String containing your Subscriber’s ID. If you do not use subscriber IDs, enter null

DOMAIN_NAME

String containing your section of your subscriber or assets. (Optional)

SUBSCRIBER_TYPE

String containing the Subscriber Type (e.g. “Free”, “Paid”). If you do not use subscriber types, enter null

SUBSCRIBER_TAG

String containing an additional subscriber-specific information. This is sent in clear (not hashed) to SmartSight and it is advised to not send sensitive information in this field.

hashSubscriberId

To hash the subscriber ID set this boolean variable to true, else set it to false.

ASSET_ID

String containing Asset Id.

ASSET_NAME

String containing Asset Name.

VIDEO_ID

String containing your video’s ID. If you do not use videos IDs, enter null.

CONTENT_TYPE

String containing type of the Content. For example - "Movie", "Special", "Clip", "Scene Epis Lifts".

GENRE

String containing Genre of the content. For example - "Comedy", "Horror".

DRM_PROTECTION

Widevine, Fairplay, Playready etc. Unknown means content is protected, but protection type is unknown. For clear contents, do not set this field

EPISODE_NUMBER

String containing sequence number of the Episode.

SEASON

String containing the Season. For example - "Season1".

SERIES_TITLE

String containing Title of the Series.

CUSTOM_TAGS

Extra custom metadata can be added here if required. If extra metadata is not required, enter null.

PLAYER_BRAND

String containing Player Brand.

PLAYER_MODEL

String containing Player Model. For example - This could be a variant of player. Say name of third party player used by organisation. Or any human readable name of the player.

PLAYER_VERSION

String containing Player Version.

BASE_PLAYER_NAME

String containing Base Player Name.

BASE_PLAYER_VERSION

String containing Base Player Version.

EXPERIMENT_NAME

You can use this field to categorise views into different experiments, allowing you to filter by this dimension later.

SUB_PROPERTY_ID

A sub-property is an optional feature that allows you to organize data within a property. For instance, a video platform could use sub-properties to group data by customer, or a media company might use them to differentiate between its various websites.

VIEW_SESSION_ID

An ID that can be used to link the view with upstream platform services, such as CDN or origin logs, for correlation purposes.

STREAM_URL

Current playing content stream URL.

isLive

Set this boolean variable to true for live content, else set it to false for VOD content. If not set, SDK will internally set it.

Last updated

Was this helpful?