Releases: kaltura/playkit-android-youbora
v4.19.0
Changes from v4.18.0
Note:
Since Bintray sunset you will have to add dependency for Youbora in your all projects gradle dependency
maven { url "https://npaw.jfrog.io/artifactory/youbora/" }
Plugin Playkit Support
v4.19.0
Features
- FEC-11680 - If EntryId is empty use media given id for Live Medias (#76 #77)
- Added Youbora sessions documents (#74)
Bug Fixes
- FEC-11674 | Move remove listeners code to onUpdateMedia if needed (#75)
Gradle
- implementation 'com.kaltura.playkit:youboraplugin:4.19.0
v4.18.0
Changes from v4.17.0
Note:
Since bintray sunset you will have to add dependancy for youbora in your all projects gradle depandany
maven { url "https://npaw.jfrog.io/artifactory/youbora/" }
Plugin Playkit Support
v4.18.0
Bug Fixes
- FEC-11642 | Rendition is not sent on youbora start event (#73)
Gradle
- implementation 'com.kaltura.playkit:youboraplugin:4.18.0
v4.17.0
v4.16.0
v4.15.1
v4.15.0
v4.14.0
Changes from v4.13.5
Plugin Playkit Support
v4.14.0
New Features
- FEC-11127 | Introduced in v4.13.4 and 4.13.5 Support missing and renamed Youbora Configs aka Youbora Options in Json format
New Bug Fixes
-
FEC-11240 | Fixed typo rename contentCustomDimentions to contentCustomDimensions
-
FEC-11212 | Protect null assignment to new JsonPrimitive
Gradle
- implementation 'com.kaltura.playkit:youboraplugin:4.14.0
v4.13.5
Changes from v4.13.4
Plugin Playkit Support
v4.13.3
Upgrades
- FEC-11105 | upgrade youbora 6.7.32 - cont added more attributes to youbora config
add missing param adGivenAds
add missing param contentTransportFormat
parseCdnNameHeaders add parse as prefix.
contentCustomDimensions add content as prefix
contentCustomDimension1..20 add content as prefix
Example with fake values which contains the full set of available values - what is not needed can be removed and youbora's default values will be set
{
"accountCode": "yourCode",
"username": "your_app_logged_in_user_email_or_userId",
"userEmail": "user_email",
"userAnonymousId": "user_anonymous_Id",
"userType": "user_type",
"houseHoldId": "zxzxz",
"userObfuscateIp": true,
"httpSecure": true,
"isAutoStart": true,
"isAutoDetectBackground": true,
"isEnabled": true,
"isForceInit": true,
"isOffline": false,
"haltOnError": false,
"enableAnalytics": true,
"enableSmartAds": true,
"content": {
"contentBitrate": 640000,
"contentCdn": "a",
"contentCdnNode": "b",
"contentCdnType": "c",
"contentChannel": "d",
"contentContractedResolution": "720p",
"contentCost": "122",
"contentDrm": "e",
"contentDuration": 1200000,
"contentEncodingAudioCodec": "ec-3",
"contentEncodingCodecProfile": "f",
"contentEncodingContainerFormat": "g",
"contentEncodingVideoCodec": "h",
"contentEpisodeTitle": "title2",
"contentFps": 60,
"contentGenre": "drama",
"contentGracenoteId": "i",
"contentId": "22222",
"contentImdbId": "j",
"contentIsLive": false,
"contentIsLiveNoSeek": false,
"contentLanguage": "en",
"contentPackage": "aaa",
"contentPlaybackType": "bbb",
"contentPrice": 10000,
"contentProgram": "program",
"contentRendition": "22223",
"contentResource": "http:/ssss.m3u8",
"contentSaga": "ccc",
"contentSeason": "ddd",
"contentStreamingProtocol": "applehttp",
"contentSubtitles": "en",
"contentThroughput": 1230000,
"contentTitle": "title",
"contentTransactionCode": "dssd",
"contentTotalBytes": 123344,
"contentTransportFormat": "TS",
"contentSendTotalBytes": false,
"contentTvShow": "sadsa",
"contentType": "drama"
},
"app": {
"appName": "MyTestApp",
"appReleaseVersion": "v1.0"
},
"parse": {
"parseManifest": true,
"parseCdnNode": true,
"parseCdnSwitchHeader": true,
"parseCdnNodeList": [
"Akamai",
"Cloudfront",
"Level3",
"Fastly",
"Highwinds"
],
"parseCdnNameHeaders": "x-cdn-forward",
"parseCdnTTL": 60
},
"network": {
"networkIP": "1.1.1.1",
"networkConnectionType": "cellular",
"networkIsp": "orange"
},
"device": {
"deviceBrand": "deviceBrand",
"deviceCode": "deviceCode",
"deviceId": "deviceId",
"deviceModel": "deviceModel",
"deviceOsName": "deviceOsName",
"deviceOsVersion": "deviceOsVersion",
"deviceType": "deviceType",
"deviceIsAnonymous": false
},
"errors": {
"errorsIgnore": [
"exception1",
"exception2"
],
"errorsFatal": [
"exception3",
"exception4"
],
"errorsNonFatal": [
"exception5",
"exception6"
]
},
"ads": {
"adBreaksTime": [
0,
15,
60
],
"adCampaign": "AdCmap",
"adCreativeId": "adCreativeId",
"adExpectedBreaks": 3,
"adGivenAds": 4,
"adGivenBreaks": 3,
"adProvider": "adProvider",
"adResource": "adResource",
"adTitle": "adTitle",
"adCustomDimensions": {
"adCustomDimension1": "adCustomDimension1",
"adCustomDimension2": "adCustomDimension2",
"adCustomDimension3": "adCustomDimension3",
"adCustomDimension4": "adCustomDimension4",
"adCustomDimension5": "adCustomDimension5"
}
},
"properties": {
"year": "your_year",
"cast": "your_cast",
"director": "your_director",
"owner": "your_owner",
"parental": "your_parental",
"rating": "your_rating",
"audioChannels": "your_audio_channels",
"device": "your_device"
},
"contentCustomDimensions": {
"contentCustomDimension1": "customDimension1",
"contentCustomDimension2": "customDimension2",
"contentCustomDimension3": "customDimension3",
"contentCustomDimension4": "customDimension4",
"contentCustomDimension5": "customDimension5"
}
}
Note: it is also possible to use Bundle as Youbora config this will make the config structure more readable
Example:
Gradle
- implementation 'com.kaltura.playkit:youboraplugin:4.13.4
v4.13.4
Changes from v4.13.3
Plugin Playkit Support
v4.13.3
Upgrades
- FEC-11105 | upgrade youbora 6.7.32
Note:
Since bintray sunset you will have toadd dependancy for youbora in your all projects gradle depandany
maven { url "https://npaw.jfrog.io/artifactory/youbora/" }
Bug Fixes
- FEC-11127 | Align YouboraConfig structure to Youbora Options.kt structure
Note:
- Relevant for applications that pass jsonOnject to youboraPlugin and not Bundle for example.
- We Recommend using Bundle approach in your app
now the json structure that will be passed and converted to youbora options is aligned.
All changes which were done are backward compatible.
Media was renamed to Content
ExtraParams renamed to CustomDimensions
Ads was expanded
new:
Errors
Network
App
AdCustomDimensions
Test Example for Json :
In oreder to build correct json you can refer to YouboraConfig toJson method.
{
"accountCode": "yourCode",
"username": "your_app_logged_in_user_email_or_userId",
"userEmail": "user_email",
"haltOnError": true,
"enableAnalytics": true,
"enableSmartAds": true,
"appName": "TestApp",
"appReleaseVersion": "v1.0",
"userObfuscateIp": true,
"media": {
"title": "your_media_title",
"isDVR": true,
"contentCdnCode": "your_cdn_code",
"contentGenre": "your_genre",
"contentType": "your_type",
"contentPrice": "your_price",
"contentTransactionCode": "your_trasnsaction_type",
"contentProgram": "your_program"
},
"app": {
"appName": "MyTestApp"
},
"parse": {
"parseManifest": true,
"parseCdnNode": true,
"parseCdnSwitchHeader": true,
"cdnNodeList": [
"Akamai",
"Cloudfront",
"Level3",
"Fastly",
"Highwinds"
],
"cdnNameHeaders": "x-cdn-forward",
"parseCdnTTL": 60
},
"network": {
"networkIP": "1.1.1.1"
},
"device": {
"deviceCode": "your_device_code",
"brand": "Xiaomi",
"model": "Mii3",
"type": "TvBox",
"osName": "Android/Oreo",
"osVersion": "8.1"
},
"errors": {
"errorsIgnore": [
"exception1",
"exception2"
]
},
"ads": {
"campaign": "your_campaign_name"
},
"properties": {
"year": "your_year",
"cast": "your_cast",
"director": "your_director",
"owner": "your_owner",
"parental": "your_parental",
"rating": "your_rating",
"audioChannels": "your_audio_channels",
"device": "your_device",
},
"extraParams": {
"param1": "playKitPlayer",
"param2": ""
}
}
Gradle
- implementation 'com.kaltura.playkit:youboraplugin:4.13.4