MKPlayer-Web Releases

When upgrading from release 1.7.0 to newer, you must clear your device local storage cache once to prevent a playback error due to changes in the format of the data that is written/read to/from the local storage. This is required only once at the time of upgrading from 1.7.0.

  • Updated Bitmovin Player SDK to v8.279.0.
  • Set Ad Count and Ad Duration in Bitmovin Analytics.
  • [Doc] Added overview page for the major features in API documentation.
  • New error codes:
    • MKErrorCode.TVP_REGISTRATION_UNKNOWN_ERROR (4-61-123)
    • MKErrorCode.TVP_ROLL_UNKNOWN_ERROR (4-62-123)
    • MKErrorCode.PLAYER_MODULE_SGAI_ERROR (4-77-3101)
  • [RefApp] Extended Multiview support.
  • Error code values changed. Applications matching on the error code strings must update them:
    • MKErrorCode.PLAYER_SEGMENT_PSSH_DATA_MISSING: 4-75-4000 → 4-78-4000
    • MKErrorCode.PLAYER_VR_INCOMPATIBLE_PLAYER_TECHNOLOGY: 4-76-2101 → 4-75-2101
  • Typings: MKPlayerAPI.skipAdBreak() is now declared in the public API. The SDK already implemented it.
  • Typings: MKPlayerAPI.skipAd is now declared as skipAd(isCSAI?: boolean) (was skipAd()). The SDK already accepted the optional isCSAI parameter (default false).
  • Typings: MKPlayerConfig.key is now declared as required (was optional). The SDK has always thrown Invalid player license key. when it is missing.
  • Typings: MKVTTProperties.lineAlign is now "start" | "center" | "end" (was "start" | "center" | "auto").
  • Typings: Removed fairplay_ignore_duplicate_init_data_key_errors (always true, set internally by the SDK) and preserve_gaps_for_base_media_decode_time_rewrite from MKTweaksConfig.
  • DRM_FAILED_LICENSE_REQUEST on Xumo for anonymous users.
  • Absolute startOffset not honoured for LIVE assets.
  • Updated Bitmovin Player SDK to v8.277.0.
  • Fallback to AVC playlist during HEVC decoder init failures.
  • Support for PauseAds. A pauseAd overlay is rendered in an app-provided container when the user pauses playback. Requires the HLS master manifest to include the PauseAd #EXT-X-SESSION-DATA tag. Related additions:
    • Configs:
      • MKPlayerConfig.ssaiAdConfig.pauseAdEnabled: Enables SDK rendering of pauseAd overlays (default false; stays disabled when MKPlayerConfig.ui is enabled).
      • MKPlayerConfig.ssaiAdConfig.pauseAdView: Empty div element, attached to the document, into which the SDK renders the pauseAd overlay; the app owns its layout, styling and stacking.
      • MKPlayerConfig.enableAdTrackingBeacons: Must be true for the SDK to notify pauseAd tracking URLs (pause, resume, impression, complete).
    • APIs:
      • MKPlayerAPI.dismissPauseAd(): Dismisses the active pauseAd overlay or aborts pauseAd if overlay is yet to be rendered; Returns true only if an active overlay was removed, otherwise false.
      • MKPlayerAPI.isPauseAdActive(): Returns true while a pauseAd overlay is being shown.
    • Events:
      • MKPlayerEvent.PauseAdShown (MKPauseAdShownEvent): Fired when the pauseAd overlay has been rendered; carries the MKPauseAd object.
      • MKPlayerEvent.PauseAdDismissed (MKPauseAdDismissedEvent): Fired when the overlay is removed via dismissPauseAd(), on resume, or when the feature is disabled (AirPlay/cast/PiP) or torn down (source change, playback error).
      • MKPlayerEvent.PauseAdWarning (MKPauseAdWarningEvent): Fired on pauseAd issues such as image preload failure/timeout or a missing container; carries a message.
      • MKPlayerEvent.SessionData (MKSessionDataEvent): Fired when #EXT-X-SESSION-DATA tags of the HLS master manifest are parsed (PauseAd info URL is reported with type sessionDataPauseAd).
    • Interfaces:
      • MKPauseAd: Describes a pauseAd (creatives, non-linear static resource, render delay and tracking events).
      • MKSsaiAdConfig: Container interface for SSAI ad configs (excludePrerollFromVodDuration, pauseAdEnabled, pauseAdView).
  • Breaking change: excludePrerollFromVodDuration is moved from MKPlayerConfig to the new MKSsaiAdConfig. Applications must now set it as MKPlayerConfig.ssaiAdConfig.excludePrerollFromVodDuration; the old MKPlayerConfig.excludePrerollFromVodDuration has been removed.
  • [RefApp] Pause ad rendering, with dismiss button, in player and retail pages.
  • [RefApp] Ref app fetches the list of configured device categories and types. Provided an option to update the STS token for specific account based on the device type selection.
  • Live event starts from live edge instead of program start time.
  • Beacon retries not functioning correctly.
  • [RefApp] When seeking to the middle of a midroll ad, duration keeps updating for the tuned-in ad and the SkipAd button is also functional.
  • [RefApp] Clear text storage of sensitive information (code scanning, High).
  • Samsung TV 2025 TU32F6005FK reports supportsHevcDecode: False.
  • sourceloaded event not getting triggered if analyticsConfig is not set.
  • Support for GeoComply Plugin.
  • When timeline reference point is 'end', after pre-roll ad finished, Playback resumes from incorrect position(start offset+preroll ad duration).
  • Styles were being applied to image-based subtitles, making it appear as though the updates were not working.
  • Support for Skippable Ads.
  • [RefApp] Add customData key-value to external assets.
  • Documentation update for MKPlaybackConfig, MKBufferConfig and hls_clear_buffers_on_discontinuity_switches tweak config.
  • MKPlayer: stale preRollDuration across media changes causes incorrect duration/position/seek offsets.
  • Beacons calls are not stopped even after playback failed.
  • Users failing to watch catchup programs.
  • excludePrerollFromVodDuration causes thumbnail shift.
  • Added a secure storage mechanism for public and private keys used for Widevine L3 license encryption, replacing browser local storage.
  • Updated Bitmovin Player SDK to v8.267.0
  • Updated FMTS Plugin to v7.3.1
  • Audio Only HLS content returns und instead of eng.
  • player reload method not seeking at the right position.
  • [mkplayer-analytics-plugin] Wrong totalDurationWatched value reporting in inactive state.
  • [RefApp] Updated setCloudIdConfig() API to set null if cloudID not passed.
  • Playback Issue on live stream, 1208 error code displaying after successful CDN failover switch but the video plays in the background.
  • AdQuartile events are missing in refApp as well as in console logs for 2nd Ad if tune to the mid of midroll AdBreak.
  • Continuous/Multiple instances are printed for this "Skipping quartile events due to mid-ad tune-in" log in console logs when tune/seek to mid of AdBreak.
  • BB assets are not playing when BB configs are enabled.
  • [RefApp] ad event logs are not seen in console.
  • [RefApp] Unable to differentiate the audio tracks with different audio codec in settings menu for a multiAudio codecs asset playback.
  • [RefApp] Playback is not resuming from correct bookmark position.
  • Handle Stream Limit Errors when concurrency mode is LIFO.
  • Provision to pass additional params to BB SDK.
  • SDK to send a new event to the client when user tuned in or seek'ed to an ad break.
  • Screen recording should not be possible for android devices.
  • Watermark overlay is not displayed on old Samsung tvs.
  • Add provision to set CloudID information in the roll request using API setCloudIdConfig.
  • Added feature to excludes pre-roll ad duration from VOD Duration.
    • Config to enable the feature : MKPlayerConfig.excludePrerollFromVodDuration
  • Bitmovin Player SDK upgrade to v8.260.0
  • getThumbnail API not returning the Image when DASH manifest has presentationTimeOffset.
  • Playback failure in Safari when web page loads multiple player instances at the same time.
  • [RefApp] Enable secure URL is getting auto enabled in MK ref app chrome browser after unchecking while playing L2VOD.
  • [RefApp] STS token script is not updating tokens in nba specific config files.
  • [RefApp] Live events not loading due to truncated external id.
  • Log Azuki SessionId in bitmovin analytics.
  • Removal of ServiceWorker registration in SDK as Bitmovin Player itself does the registration internally.
  • Augmented Ads are not seen in BB assets playback, Integrated BrandBrigade SDK v1.1.3.
  • Failure in CDN switch failover in case CDN failure in Safari
  • Samsung TV fails to play L2VOD when input quality of the Live Event was regular SDR 1080p AVC.
  • Updated Bitmovin Player SDK to v8.253.0
  • The x-mk-signature header is missing from audio playlist requests on Safari and Chrome for iPhone when the secure URL feature is enabled.
  • Pass HEVC decode capability of the device to Azuki.
  • Send player state - Playing/Paused/Buffering in User engagement metrics to Beacon.
  • Updated Bitmovin Player SDK to v8.250.0
  • Updated Bitmovin UI to v3.105.3 in Custom UI plugin and MKPlayer Web SDK.
  • Updates to getThumbnail API in accordance with other platforms. This API now expects relative time for both Live and VOD playback.
  • V1.33 on Samsung TV MultiView doesn’t work as expected switching audio presents black screen.
  • Thumbnails are showing incorrect timestamp over them.
  • Few of the CC styling options for ex-font style 'Bold' are not getting reflected in playback.
  • 1st beacon call does not have the header "x-tv3-user-engagement-data".
  • On playing encrypted External contents, continuous buffering is seen.
  • player reload method not seeking at the right position.
  • [RefApp] [FireTVSelect] [XBOX] Focus does not move with remote direction keys.
  • [RefApp] Subtitles are not seen in playback.
  • User engagement metrics in roll and beacon requests.
  • [RefApp] Unify Ref Apps for all the customer content.
  • [RefApp] Implement STS Token Updation Script.
  • [BrandBrigade Plugin] Resources are released when BB functionality is disabled.
  • BrandBrigade SDK upgrade to v1.1.2
  • Updated error codes in the SDK documentation.
  • Safari is failing to include the secure URL headers(x-mk-signature) on the variant manifest calls, due to which the playback was failing.
  • Initially watermark is seen in Default view even if watermark option is off.
  • Proper logging of PlayerConfig and SourceConfig.
  • Few of the CC styling options for ex- font style 'Bold' are not getting reflected in playback.
  • Support CC Styling in the SDK.
  • Support debug flags from Brand brigade.
  • Added Provision to disable Adobe Concurrency Monitor if EndPoint Url is not specified.
  • New Custom UI Plugin created.
  • [RefApp] Support enable/disable for MKPlayer Analytics Plugin.
  • [RefApp] Provision to disable CC rendering in the SDK.
  • [Samples] Updated sample app to accept source config JSON and TV UI.
  • [Samples] Integrate Bitmovin Default Playback UI in MK.IO Sample App.
  • Updated Brand Brigade SDK to v1.1.1
  • Playback fails with 1208 error when 'Widevine Encryption' checkbox is enabled and KSS url is provided.
  • [RefApp] Removed NBA Prod A Site A from the Source List.
  • [RefApp] Playback is not working in NBA ProdB/ProdA.
  • Log Low Latency params in Bitmovin Analytics
  • Updated Brand Brigade SDK to v1.1.0
  • [RefApp] Support enable/disable for watermark fmts plugin
  • Log CDN Failover errors are non critical in Bitmovin Analytics Dashboard
  • [RefApp] Enable Widevine License Encryption by default
  • [RefApp] Support for seamless channel switching on the connected devices from the Ref app  
  • Updated Bitmovin Player SDK to 8.235.0
  • Runtime errors are seen after every BrandBrigade event.
  • [RefApp] 'Source List' not populated with available assets
  • [RefApp] [PS5][Multiview] Not able to perform pause, reload and full screen.
  • [RefApp] [Chrome] [Safari] [Edge] If log out from JWT account and enter MKPlayer Webrefapp URL in same browser window,JWT login page opens directly.
  • [RefApp] Player infinitely buffers when the device is connected to a router with no internet connection
  • Support for custom headers to http requests
  • [RefApp] Support for full screen video playback on mobiles
  • [RefApp] Support for JWT Token Login similar to iOS Ref App
  • Updated Bitmovin Player SDK to 8.232.0
  • Augmented ads are overlapping on players and are not stationary.
  • Thumbnails are not loading for HLS Live event
  • Player infinitely buffers when the device is connected to a router with no internet connection
  • [RefApp] 'Toggle Augmented Ads' button remains enabled/functional while 'Enable BrandBrigade' checkbox is unchecked/disabled.
  • [RefApp] Error 'Video decoder or demuxer had an error with the content.' is thrown within few secs of changing any window to Full Screen.
  • [RefApp] On switching back to config tab,Low Latency Config values like-Target Latency and Quality-Stability Tradeoff are getting reset.
  • Support to enable/disable Brand brigade Virtual Ads
  • Runtime errors are seen after every BrandBrigade event
  • [In-progress recording] Played duration seems bigger than the actual recorded duration.
  • Exposed Bitmovin API - getLatency()
  • Move Low latency config at the source level rather than global
  • Make config enableLowLatency optional with default false
  • LL value always stays high in safari.
  • catchup mechanism is not working for LL stream in safari, and playback not starting from live edge.
  • Live channel playback failing with error "Failed to load HLS playlist: 400" on Safari
  • Sending Ad Break Start/End events to BB SDK when seek to or tune into middle of the Ad Break
  • Updated Bitmovin Player SDK to 8.225.0
  • Issue of file not found for serviceWorker.js file
  • [RefApp] Issue with Multiview feature on XBOX where new playback cannot be started in place of stopped playback
  • Exposed additional Bitmovin Analytics CustomData Fields from 31 to 50.
    • Note these are not enabled by default in the Bitmovin Analytics Dashboard. They must be activated for your organization.
  • ⁠Extend CDN Failover logic to 20 URLs per Priority Group.
  • [RefApp] Sample to demonstrate Multi-view Playback.
  • [RefApp] Fixed Progress Bar Pointer jump issue while Seeking.
  • Support to Enable ServiceWorker for Safari when BrandBrigade feature is Enabled.
  • [RefApp] Playback Control PBR’s are not applied in RefApp.
  • Support for SSAI Ad-Break Start/End Slot Tracking Beacons.
  • Enable WV License Encryption based on the response from KSS.
    • Config to enable Widevine License Encryption support : PlayerConfig.enableWidevineEncryption
    • Config to enable SecureUrl SuperTrooper support : PlayerConfig.enableSecureUrl
  • Updated MKOMSDK Plugin to point to OMSDK from NBA.
    • Ver 1.1.x contains NBA OM SDK. Previous versions have WBD OM SDK.
  • Support for Brand Brigade as a Plugin.
  • RefApp: Show Ad UI when user tunes or seeks into the middle of an Ad Break by using AdMarkers Event
  • Enforce Pre-roll based on a query param passed as CDN token by the client.
  • Support for Bitmovin Analytics for Chrome cast devices.
  • Force StartOffset to LiveEdge for Low Latency streams.
  • Expose Limit to Player Size Adaptation Config for MultiView.
  • Support for Linux Browsers.
  • Support for Brand Brigade
  • Support for absolute position - seeking, startOffset
  • Updated Bitmovin Player to 8.208.0
  • Transition from Pre-roll to Main content is not smoother.
  • Playback is not casting on receiver for SuperTrooper Enabled Streams.
  • VOD Start offset is applied from 'Start' while Timeline reference point is set as 'End'.
  • After Pre-roll Ad, video duration timer for main content playback starts after few secs.
  • Support for Multiple CDN Vendors
  • [Image based][Text based] Subtitles not displaying properly on stream on Chrome.
  • Invalid Thumbnails URL from SDK.
  • [Ref App] MKPlayer Web Retail RefApp throws an error while starting playback.
  • Support for low-latency mode.
  • Support restart anytime for live program.
  • Getting Epoch time in currentTime for catchup playback type.
  • Integrated Google PAL SDK in MKPlayer SDK
  • Perform device registration again when roll call fails with 4-62-383
  • Corrected behavior where MKTweaksConfig.native_hls_parsing did not honor the application’s specified value.
  • Picture in Picture Support
  • Support for Bitmovin CSAI (Client Side Ad Insertion)
  • Support for AdMute beacon
  • Restarting Playback resets the Analytics data.
  • Updated Bitmovin Version to 8.193.0
  • Support Bitmovin Analytics for Server side Ads
  • Updated Bitmovin Player to 8.185.0
  • Bitmovin Version Updated to 8.177.0
  • same ClearKey loaded twice when present in both audio and video HLS variant playlist.
  • Thumbnail support for Dash IF IOP and WebVtt.
  • Fixed the start time value issue in ManifestUrl in roll-response.
  • Live play back throwing "Unable to parse decoded Device Profile Header" Error
  • Bitmovin Version Updated to 8.174.0
  • Player failing to play HLS streams with a single segment and an EXT-X-START.
  • Fixed Start time query parameter value.
  • SDK and Document Aligned with the latest updated Bitmovin Error Codes
  • Reload function with startOffsetValue would show a live edge frame before jumping to the offset position for Offset values given in Absolute time
  • Support for pre-roll ads for Live 24x7
  • Exposed an API to update the customData Fields to Bitmovin Analytics during runtime.
    • setAnalyticsCustomData which accepts the customData values to update in Bitmovin Analytics dashboard.
  • Reload function with startOffsetValue would show a live edge frame before jumping to the offset position for Offset values given in Relative time
  • Unhandled exception when accessing 'bitrate' property on calling getVideoQuality()
  • Support for setting timeline markers in the default player UI progress bar to highlight key events during playback. Please refer to the API documentation for more information about these APIs and configurations.
    • Following new APIs are available from this release onwards:
      • addTimelineMarker to add a new timeline marker to the progress bar UI.
      • removeTimelineMarker to remove a previously added timeline marker from the progress bar UI.
      • getTimelineMarkers to get all previously added timeline markers to the progress bar UI.
    • MKSourceConfig.timelineMarkers to configure static list of timeline markers for VOD assets.
  • Documentation updates.

Please note that with this release, several MKPlayerAPI have been moved under dedicated namespaces and few have been renamed. Please make a note of the below changes as it will require you to make necessary updates/changes in your code if you upgrade to this version.

  • New API namespaces: (Please see API reference documentation for more information)
    • MKAdaptationAPI for player adaptation APIs
    • MKBufferAPI for player buffer APIs
    • MKDrmAPI for player DRM APIs
    • MKLowLatencyAPI for player low latency APIs
    • MKManifestAPI for player manifest APIs
    • MKSubtitlesAPI for player subtitles/captions APIs
  • offAll a new MKPlayerAPI to unregister/unsubscribe all event handlers for a given event type.
  • Support for Low latency for HLS/DASH, please refer to MKLowLatencyAPI in the documentation for more information.
  • MKTweaksConfig added to player configuration to enable/disable certain experimental tweaks on MKPlayer and Bitmovin player.
  • getDynamicAdaptationConfig --> MKAdaptationAPI.getConfig
  • setDynamicAdaptationConfig --> MKAdaptationAPI.setConfig
  • setTargetLevel --> MKBufferAPI.setTargetLevel
  • getBufferLevel --> MKBufferAPI.getLevel
  • addSubtitle --> MKSubtitlesAPI.add
  • removeSubtitle --> MKSubtitlesAPI.remove
  • enableSubtitle --> MKSubtitlesAPI.enable
  • disableSubtitle --> MKSubtitlesAPI.disable
  • getAvailableSubtitles --> MKSubtitlesAPI.list
  • getTargetLatency --> MKLowLatencyAPI.getTargetLatency
  • setTargetLatency --> MKLowLatencyAPI.setTargetLatency
  • setCatchupConfig --> MKLowLatencyAPI.setCatchupConfig
  • getCatchupConfig --> MKLowLatencyAPI.getCatchupConfig
  • setFallbackConfig --> MKLowLatencyAPI.setFallbackConfig
  • getFallbackConfig --> MKLowLatencyAPI.getFallbackConfig
  • getLatency --> getLiveLatency (player API)
  • MKAdClickThrough --> MKAdClickThroughEvent (player event)
  • MKPlayerEvent.AdCompanion was not getting triggered even when companion ads data was available during an Ad in the AdBreak.
  • Bitmovin player version 8.159.0.
  • Documentation updates for all the above mentioned changes.
  • Support for passing offerId when available in sourceConfig to TVP Backend requests (only for registered sources).
  • Support for passing devicetype identification to TVP Backend requests as query params.
  • Support for playback on PS4 gaming consoles.
  • Bitmovin player version 8.150.0.
  • Documentation updated with error codes for Program restrictions.
  • Support (not supported on Safari) for passing custom HTTP headers for HLS-AES sources which has license signalled in the manifest.
  • Support for passing wvLevel for WideVine DRM in DeviceProfile to TVP Backend.
  • Updated setHttpHeaders API to accept AuthorizationToken and generate signature for SecureURL if available and also set the given headers on the player requests.
  • ClearKey DRM support
  • Support for SecureURL on select customer environments.
  • Bitmovin player version updated to 8.130.0
  • When HLS source/manifest URL was invalid no error event was emitted and only warning in logs was seen.
  • ProgramTimeChanged event not reported correctly on live program boundary cross.
  • Fixes to reload API which now supports reloading the same source and supports both Live and VOD source types.
  • Updated Bitmovin player to version 8.128.0.
  • Updated player configuration to accept appId which is needed for retail devices like Tizen, WebOS.
  • Fix for improper sprite data from getThumbnail API.
  • Subtitle events not triggered on enabling or disabling subtitles.
  • sessionId not passed in manifest URL.
  • MKAzukiConfig renamed to MKEnvironmentConfig and azukiConfig to environmentConfig in MKRegisteredSource which is used as MKSourceConfig.registered.
  • When default UI and default subtitle overlay was enabled dual subtitles were displayed.
  • Changed default UI progress bar and buffering overlay color to match the MK colors.
  • Support for playback of Catchup, DVR (in-progress and regular) asset types
  • Support for selecting DVR type (assetised vs rolling buffer)
  • reload API to allow reloading the current source with a new start time and resume playback from specified startOffset after reload.
  • Support for program restrictions (program entitlements/PBR)
  • Support for Adobe Primetime session concurrency provided the configuration object is configured with necessary information.
  • Added MKErrorCode enum and documentation update with all the details on different error code and messages.
  • Playback issue on LG webOS devices. Replaced fetch with XMLHttpRequest for all HTTP requests in the SDK.
  • Fixed issue with handling sourceConfig.sourceOptions.startOffset correctly for different asset types.
  • Bitmovin player updated to v8.122.0
  • With recent update of MacOS and Safari browser, as of version 16.5.1 of Safari sometimes the live playback is starting from the beginning of the live window instead of the live edge.
  • Error events not reported correctly and only displayed in the logs
  • Documentation updates.

Fixes to build and publish scripts.

MKPlayer-Web First release.