All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
2.9.1 - 2025-02-10
- Calling
destroy
during an ongoingload
process resulted in non-capturable error being thrown
2.9.0 - 2024-12-05
- Improve startup behavior for
LINEAR
andDVRLIVE
streams according to https://developer.yospace.com/sdk-documentation/javascript/userguide/yosdk/latest/en/optimising-user-experience-at-video-start.html
- Missing
issuer
inMuted
,Unmuted
andPaused
events
2.8.0 - 2024-10-30
- Support for the
DVRLIVE
PlaybackMode to not rely on Metadata parsing for live streams anymore
- Yospace SDK to v3.8.3
- Wrong playback position after skipping over ad breaks using ad immunity
2.7.1 - 2024-10-03
- Yospace error on source load and session initialization not returned in
load
promise rejection as reason - Seeking over ad breaks during ad immunity led to wrong seek end position
- Default policy not aware of ad immunity, sometimes leading to wrong decisions for
canSeekTo
2.7.0 - 2024-09-27
AdImmunityConfig.disablePassedAdBreaks
option to only temporarily disable ad breaks during the ad immunity instead of disabling them for the whole session
2.6.0 - 2024-09-25
- Yospace SDK to v3.6.9
- Parsing non-Yospace ID3 tags and passing those to the Yospace SDK
- Small memory leak where player listeners were not detached
2.5.0 - 2024-07-10
-
mode
argument togetCurrentTime
to enable fetching absolute time including ad durations -
mode
argument togetDuration
to enable fetching absolute duration including ad durations -
ad immunity feature:
The user will become immune to ad breaks for a duration upon fully watching an ad break.
Ad breaks played over or seeked past during immunity will be marked as deactivated, making the user permanently immune to them.
Post-roll ads and ads with unknown positioning are excluded from ad immunity.
By default, pre-rolls are also excluded, since the user needs to finish an ad break to enter an ad immunity period.
setAdImmunityConfig(options: AdImmunityConfig): void;
Returns the current ad immunity configuration.
getAdImmunityConfig(): AdImmunityConfig;
Returns a boolean value indicating if the user is currently immune to ad breaks
isAdImmunityActive(): boolean;
Immediately starts an ad immunity period, if ad immunity config exists. This method does nothing if ad immunity is already active.
startAdImmunity(): void;
Immediately ends an ongoing ad immunity period, before it would naturally expire
endAdImmunity(): void;
-
ad immunity events to
YospacePlayerEvent
enum
2.4.0 - 2024-06-21
mode
argument togetCurrentTime
to enable fetching absolute time including ad durationsmode
argument togetDuration
to enable fetching absolute duration including ad durations
- Event loop on pre-roll ad end
- Bitmovin Player getting bundled into the YospaceBitmovinPlayer
2.3.1 - 2024-02-14
- Node "16.15.1" engines requirement from npm package.
2.3.0 - 2023-05-02
- Yospace SDK to v3.6.0
- Bitmovin Player to version 8.114.0
2.2.0 - 2023-02-09
- Support for DASH LIVE and VOD streams
- New error code SUPPORTED_SOURCE_MISSING (1012)
- Support for pre-roll ads
- Yospace Error code
HLS_SOURCE_MISSING
(1010) has now been deprecated in favor ofSUPPORTED_SOURCE_MISSING
(1012)
2.1.0 - 2022-10-20
- Support for
EMSG
v1 metadata with scheme IDhttps://aomedia.org/emsg/ID3
2.0.0 - 2022-07-06
clickThroughUrlOpened
method to Companion Ads, which should be fired when the ad is interacted withcanBeShown
method to Companion Ads, which indicates if the companion ad is currently active and can be shownshownToUser
method to Companion Ads, which should be fired when the ad is shown to the userhiddenFromUser
method to Companion Ads, which should be fired when the ad is hidden from the userUNKNOWN_FORMAT
error (code1011
)YospaceConfiguration.debugYospaceSdk
to enable debug logs of the Yospace SDK without enabling logs for theBitmovinYospacePlayer
(helpful for Yospace validation)- Support for tracking muted/unmuted changes
- Yospace SDK to v3
- Using NPM packages
BitmovinYospacePlayer
constructor to receive the Bitmovin Player Static APIgetYospaceManager
togetYospaceSession
- Build chain to use webpack, eslint and prettier
- Yospace SDK to be imported via npm
- Events of the
BitmovinYospacePlayer
are now triggered asynchronously
- VPAID support including all related configuration options
- LINEAR_START_OVER support
NO_LIVEPAUSE
error (code1008
)NON_YOSPACE_URL
error (code1009
)companionClickTrackingURLTemplates
array from Companion AdscreativeTrackingEvents
array from Companion AdsdisableStrictBreaks
fromYospaceConfiguration
setup
method- unregistering all ServiceWorkers in the setup flow
1.2.25 - 2021-09-03
- YospaceConfig parameter
vodVpaidDurationAdjustment
for corrective VPAID timings on VOD
- Sequential VPAIDs sometimes getting skipped on VOD assets
1.2.24 - 2021-08-19
- YospaceConfig parameter
vpaidStaticVastXmlOverride
for overriding VPAID xml files for testing
- Bitmovin player to version 8.66.0
- Flag
removeUnsupportedExtensions
tofalse
- Bitmovin Ad Module error when encountering AdVerifications in nested Extension
- Playback occasionally freezing on Tizen when switching periods/discontinuities
1.2.23 - 2021-06-23
- WebOS Module and Demo Folder
- YospaceConfig param for
useTizen
anduseWebos
to guard adding those modules - Bumped Bitmovin Player version to
8.58.0
for required Tizen/WebOS bug fixes - Missing DRM API added in 8.58.0 API
- Tizen Demo Updates for latest SmartTv Convig params in YospaceConfig
1.2.22 - 2021-05-10
- Add Tizen and WebOS Bitmovin Modules
1.2.21 - 2021-03-03
- Use standalone Bitmovin Analytics Adapter for flexibility. And move initialization to
load()
to dynamically attach to the correct player based on source.- Note: This change required updating to TypeScript version 3.
1.2.20 - 2021-02-12
- Remove the arrayAccessForm, config option from
X2JS
initialization for parsing VAST Extensions. This was causing unpredictable arrays for theExtension.CreativeParameters
property. Without the option, it consistently returns an object when there is only oneCreativeParameter
property.
1.2.20-2 - 2021-07-28
- Workaround for failed VPAID rendering for Extensions
- Additional Quartile beacons fired at the end of playback for some Ads
1.2.20-1 - 2021-07-19
- Duplicate
defaultImpression
events fired for VPAID pre-rolls - VPAID pre-roll stuttering
1.2.19 - 2021-01-20
id
,creativeId
,adTitle
,advertiser
andlineage
properties toYospaceLinearAd
.
- Use
session.getCurrentBreak()
for theads.getCurrentAdBreak()
- Refactor
CreateAdBreakEvent
to take aYospaceAdBreakEvent
.
- Added a temporary fix for a bug on Safari mobile that results in duplicate ad events from Yospace, as a result of incorrect Position updates reported to the YS SDK.
1.2.18 - 2020-12-09
- Update
bitmovin-player
to version8.50.0
- Remove suppression of
AdClicked
event so it can be consumed by integrators for VPAID ads.
1.2.17 - 2020-11-12
- Update
bitmovin-player
to version8.48.2
1.2.16 - 2020-10-24
- Update
bitmovin-player
to version8.47.1-b.3
- Type error in
onVpaidAdBreakStarted
event handler. - Correct expected format for
staticResource
in companion ad. Per section 3.15.1 of the VAST Spec.
1.2.15 - 2020-10-16
- Emit
metadataParsed
andmetadata
events for generated EMSG/ID3 tags in the DateRangeEmitter. - Support for companion ads that have multiple
variations
.
1.2.14 - 2020-10-01
- Update
bitmovin-player
to version8.45.1
1.2.13 - 2020-07-10
- Update
bitmovin-player
to version8.39.0
1.2.12 - 2020-06-18
- Update
bitmovin-player
to version8.37.1
.
- Suppress Yospace Analytics before sending the Pause event at the start of a VPAID, per Yospace recommendation.
- Remove
-2
adjustment toreplaceContentDuration
for Truex VPAID ads, as seeking logic is handled in TUB.
1.2.11 - 2020-05-27
- Upgrade to
bitmovin-player
version8.35.1
. Same functionality as the beta mentioned below.
1.2.10 - 2020-05-22
- Upgrade
bitmovin-player
to version8.35.1-b.1
which resolves issues with parsing Closed Captions.
1.2.9 - 2020-05-14
- Exposed new
YSAdBreak.position
property
- Set
YSParseUtils.NAMESPACES = true
to resolve an XML parsing issue on Smart TVs - Upgrade
bitmovin-player
to version8.35.0
- Remove code to destroy both players as it was causing an exception and not needed.
1.2.8 - 2020-05-07
- Expose
YospaceAdBreak
andYospaceAdBreakEvent
interfaces for use by integrators.
1.2.7 - 2020-05-01
- Bump
bitmovin-player
to version8.34.0
1.2.6 - 2020-04-22
- When the
disableServiceWorker
flag is set to true, don't make calls tonavigator.serviceWorker.getRegistrations()
. This was causing issues on Tizen devices.
1.2.5 - 2020-04-15
- Bump
bitmovin-player
to version8.33.0
1.2.4 - 2020-04-06
- Revert
isLive()
method to return response fromplayer.isLive()
. Only useisLiveStream
when cleaning up VPAID.
1.2.3 - 2020-03-27
- Downgrade Bitmovin Web SDK to 8.29.1 because of issues found with transitioning out of VPAID Ads.
1.2.2 - 2020-03-19
- Fire
TruexAdFree
in theadBreakFinished
listener instead ofadFinished
, as the stream isn't fully reloaded for seeking afteradFinished
- Update Bitmovin Web SDK to 08.31.0
player.isLive()
returns false when in a VPAID, so storeisLiveStream
in a variable upon playing the stream.
1.2.0 - 2020-03-03
- Log a table of upcoming DateRange events which will be emitted
forceSeek
method that allows you to seek to a location without having that location changed due to the player policy
- Always fire the
TrueXAdFree
event - Reduce the replaceContentDuration by 2 seconds in order to allow the player to properly skip the VPAID / TrueX ad if needed
- Updated Bitmovin Web SDK to 8.30.0
- Fire a new
TruexAdBreakFinished
event
1.1.0 - 2020-02-18
- Updated Bitmovin Web SDK to 8.29.1
- Initial yospace integration