# HbbTV SDK

### **Step 1: Add** the MediaMelonPlayer SDK <a href="#step-1-add-mediamelon-smartstreaming-sdk-hardbreak" id="step-1-add-mediamelon-smartstreaming-sdk-hardbreak"></a>

Import the MediaMelon SDK file in start of the resources.php file.

```php

$resources = array(
    "mmsmartstreaming_hbbtvplayer.min.js"
    .
    .
    .
);
```

### **Step 2: Register and Initialize** the MediaMelon Player SDK <a href="#step-2-register-and-initialize-mediamelon-sdk" id="step-2-register-and-initialize-mediamelon-sdk"></a>

{% hint style="info" %}
\<customer\_id> is your MediaMelon-assigned Customer ID. If you do not know your Customer ID contact MediaMelon at [support@mediamelon.com](http://40mediamelon.com/)
{% endhint %}

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

```javascript
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",
		"videoType": "VIDEO_TYPE",
		"customTags": {
			"key1": "VALUE_STRING1",
			"key2": "VALUE_STRING2"
		}
	};


// SDK integration for HTML5 video player component (src/videoplayer/videoplayer_html5.js)
var mmhtmljsPlugin = new Html5MMSSIntgr();
if (mmhtmljsPlugin.getRegistrationStatus() === false) {
	mmhtmljsPlugin.registerMMSmartStreaming("PLAYER_NAME", "CUSTOMER_ID",
		"SUBSCRIBER_ID",
		"DOMAIN_NAME",
		"SUBSCRIBER_TYPE",
		"SUBSCRIBER_TAG");
	mmhtmljsPlugin.reportPlayerInfo("PLAYER_BRAND", "PLAYER_MODEL", 'PLAYER_VERSION');
	mmhtmljsPlugin.reportAppInfo("APP_NAME", "APP_VERSION"); // optinal
	mmhtmljsPlugin.setDeviceInfo("DEVICE_MARKETING_NAME"); 	// optinal
	mmhtmljsPlugin.reportVideoQuality("VIDEO_QUALITY");	// optinal
}

mmhtmljsPlugin.initialize(player, "MEDIA_URL", mmVideoAssetInfo); // player -> Video Player Object


// SDK integration for OIPF AV object video player component (src/videoplayer/videoplayer_oipf.js)
var mmoipfjsPlugin = new OipfMMSSIntgr();
if (mmoipfjsPlugin.getRegistrationStatus() === false) {
	mmoipfjsPlugin.registerMMSmartStreaming("PLAYER_NAME", "CUSTOMER_ID",
		"SUBSCRIBER_ID",
		"DOMAIN_NAME",
		"SUBSCRIBER_TYPE",
		"SUBSCRIBER_TAG");
	mmoipfjsPlugin.reportPlayerInfo("PLAYER_BRAND", "PLAYER_MODEL", 'PLAYER_VERSION');
	mmoipfjsPlugin.reportAppInfo("APP_NAME", "APP_VERSION"); // optinal
	mmoipfjsPlugin.setDeviceInfo("DEVICE_MARKETING_NAME"); 	// optinal
	mmoipfjsPlugin.reportVideoQuality("VIDEO_QUALITY");	// optinal
}

mmoipfjsPlugin.initialize(self.video, "MEDIA_URL", mmVideoAssetInfo); // self.video -> Video Player Object


// SDK integration for MSE-EME video player component (src/videoplayer/videoplayer_mse-eme.js)
var mmdashjsPlugin = new DASHPlayerMMSSIntgr();
if (mmdashjsPlugin.getRegistrationStatus() === false) {
	mmdashjsPlugin.registerMMSmartStreaming("PLAYER_NAME", "CUSTOMER_ID",
		"SUBSCRIBER_ID",
		"DOMAIN_NAME",
		"SUBSCRIBER_TYPE",
		"SUBSCRIBER_TAG");
	mmdashjsPlugin.reportPlayerInfo("PLAYER_BRAND", "PLAYER_MODEL", 'PLAYER_VERSION');
	mmdashjsPlugin.reportAppInfo("APP_NAME", "APP_VERSION"); // optinal
	mmdashjsPlugin.setDeviceInfo("DEVICE_MARKETING_NAME"); 	// optinal
	mmdashjsPlugin.reportVideoQuality("VIDEO_QUALITY");	// optinal
}

mmdashjsPlugin.initialize(self.player, "MEDIA_URL", mmVideoAssetInfo); // self.player -> Video Player Object

```
