Release 2.0.47
September - October, 2026
The new release will include the upgrades, features, and issue fixes listed below:
Feature: Enhanced Video Filtering
- The Videos page now has a single filter panel in place of the nested author and parameter dropdowns, with new filters for date added, aspect ratio, visibility, published-only and ready-only videos. Active filters are shown as removable chips, combine with one another, and are kept when switching between list, grid and folder views.
Feature: Invitation Onboarding
- Invited users can now set up their account directly from the invitation email, and an account with no project access sees a clear message with a way forward.
Feature: Per-Project Channel DVR Default
- A project can now choose whether new live channels record (DVR) by default, so projects that never use rewind no longer have to turn recording off channel by channel. The default can still be overridden per channel when it is created.
Feature: Automatic Removal of Live Videos That Never Started
- A project can now be configured to automatically delete live videos that were created but never received input, after a configurable threshold that defaults to 60 minutes. This stops idle live videos from consuming encoding and recording capacity.
Feature: Project ID on Video and Player Configuration Responses
- The video and player configuration responses now include the project the video or player belongs to, so integrators holding only a video or player ID can resolve its project without relying on delivery URL shapes or a manual lookup.
Update: Stricter Validation on Encode Requests
- Video and audio encode requests that reference an uploaded file are now validated more strictly, and invalid requests are rejected with a clear 400 Bad Request instead of failing later. Correct API usage is unaffected.
Update: Organisation Users Tab
- Multiple users can now be selected and removed from the organisation Users tab in one action.
Feature: Automatic Audio Recovery
- Audio uploads with a damaged container that previously failed encoding are now repaired automatically before encoding, as long as most of the original file can be recovered.
Update: Livestream Cut Resilience
- Cuts taken from a livestream that fail on the first attempt are now retried through a fallback chain, and the source is archived so a failed cut can still be recovered afterwards.
FIX: HDR sources are now converted at full quality before the rendition ladder is generated. Previously the intermediate conversion was limited to a low bitrate, which degraded every rendition of the video.
FIX: Videos recorded on iPhone that carry an Apple APAC audio stream alongside a standard stream now encode correctly instead of failing.
FIX: Resolved an issue where geoblocked video playback failed for viewers on IPv6 connections, because the secure link was signed against an IPv4 address. The secure link is now requested through a host that supports IPv6.
Update: Custom Reports
- Custom report processing was enhanced, so reports return their results reliably and faster.
FIX: Resolved an issue where a late quality callback could downgrade a Ready video to Partially Ready.
FIX: Resolved a specific case where changes to a player's settings were not reflected immediately in cached video configurations.
FIX: Resolved an issue where deleting the last item on a page left the list stuck on an empty page instead of stepping back a page.
FIX: Resolved an issue where changing the date range of a contextual playlist was not detected as an unsaved change.
FIX: Resolved an issue where adding multiple users to a project navigated away before all additions had completed.
FIX: Resolved an issue where the podcast player reloaded continuously when a podcast had no episodes.
FIX: Delete confirmation modals now report when a delete fails instead of always reporting success, and their buttons can be navigated with the Tab key.
FIX: The webhook details panel now closes after a webhook is deleted and shows an empty state when the last one is removed.
FIX: Clicking Videos in the sidebar now leaves the Recently Deleted view.
FIX: The error message shown on unauthorised access was simplified, and the logout process was streamlined.
Video Player · v2.10.8
Feature: Ads Keep Playing When an Ad Blocker Stops the Google IMA SDK
- The player now carries its own VAST engine. When the IMA SDK is blocked, it fetches the ad tag, follows wrapper chains, plays the ad with a skip countdown and click-through, and fires the same tracking pixels, player events and ad analytics before resuming content. It covers static ad breaks for VOD and live; VMAP and dynamic ads are not scheduled under it. The fallback can be turned off with
ads.adBlockerFallback: false, or chosen outright withads.vastManager: "vp". Expect ad impressions, quartiles and completions to step up by roughly the ad-blocker share of the audience.
- The player now carries its own VAST engine. When the IMA SDK is blocked, it fetches the ad tag, follows wrapper chains, plays the ad with a skip countdown and click-through, and fires the same tracking pixels, player events and ad analytics before resuming content. It covers static ad breaks for VOD and live; VMAP and dynamic ads are not scheduled under it. The fallback can be turned off with
Feature: Canonical Event IDs and
listen()API- Every page-facing event now has a canonical dotted id (for example
playback.fatalError,volume.muteChanged,ad.impression) carried in a neweventIdfield on thevp-eventenvelope. A newplayer.listen(id, handler)API subscribes by id or*, always passes one payload object and returns an unsubscribe function. Every nameplayer.on()accepted before still works. Pages that calladdEventListeneron the player container with an old event name should switch toplayer.on()or the new name;vp-video-lockedis kept for backwards compatibility. Event payloads were also made consistent, including the level index on every quality change, size and breakpoint on resize, and the playback position on timed-link show and click events.
- Every page-facing event now has a canonical dotted id (for example
Feature: Redesigned Ad Controls
- On desktop, ad controls sit in a single frosted pill with play/pause, volume, timer and fullscreen, plus a slim seek bar, at every player size. On mobile, taps inside the ad are no longer swallowed, so the skip button works and a tap toggles playback, and a Learn more button opens the click-through.
Update: Control Bar and Mobile Layout Refinements
- Control bar buttons have fixed footprints with a hover highlight, the volume slider floats beside its button instead of widening the bar, and tooltips sit above the seek bar. The mobile top controls are grouped into a single pill that also holds fullscreen and the logo, with the time and timed-link chip shown inline after the title. Every panel and overlay now draws from one shared set of surface colours, and existing skin keys keep working.
Update: Video's First Frame Stands In for a Missing Thumbnail
- When no thumbnail is configured or it fails to load, the poster area fades away once the first frame decodes, so the video itself serves as the poster.
Update: Big Play Button Option Removed
- The
controls.bigPlayButtonoption is removed from the player and from the administration player settings. The play button now always shows when playback has not started and is not about to start by itself, and configs that still send the option are ignored. Deprecated options now log a warning naming the option and the version it was deprecated in.
- The
UPGRADE: The bundled streaming engine was updated to hls.js 1.7.3.
FIX: Audio tracks are now switched one at a time and seamlessly, and the selected track is kept across stream failover.
FIX: A VOD network failure now shows the interrupted screen while the player retries, and is reported as a fatal error only once the retries are spent.
FIX: Resolved an issue where a player held back by another playing player stayed on its loading screen and never autostarted after the other player was paused.
FIX: Resolved an issue where the play button never showed when the browser refused autostart, such as in iPhone low power mode.
FIX: Resolved an issue where content came back muted after an ad break in which the player had muted an ad on its own, and where ads started muted after the viewer had already unmuted.
FIX: Resolved an issue where the volume slider stayed open after the pointer left it.
FIX: Resolved a crash on livestream start and when switching back to automatic quality while playing through the browser's native HLS support.
FIX: The mobile seek preview is now anchored above the seek bar, and on players too short for the full preview the thumbnail strip is dropped while the time label stays.
FIX: Timed links no longer show on top of custom screens such as the error or lock screen, and are hidden while the settings menu is open.
FIX: Resolved issues where each mute toggle delivered two identical mute events and the video-locked event reached window listeners twice.
FIX: Resolved crashes on unusual configurations: a manifest with no streaming engine attached, a playlist with no videos array, and a forward seek on a livestream with no known live edge.
FIX: Watch-state requests are no longer sent for videos that are not hosted on VP.
Vertical Player · v1.8.13
Update: Banner Ads Without a Tag URL
- Banners are now served directly when the ad schedule has no Tag URL, and the fullscreen button is hidden while the banner dismiss control is shown so the two no longer overlap.
Update: Controls, Timed Links and Tooltip Refinements
- Timed links are now a fixed-height chip with a chain icon that shrinks one step on the smallest players, the logo scales with the control row, control icons are slightly larger, and tooltips sit beside their button. Desktop players have rounded corners.
Update: Mobile Volume Control
- The mobile volume button is anchored in place, and its positioning and behaviour were refined.
UPGRADE: The bundled streaming engine was updated to hls.js 1.7.2.
FIX: Sound state is now kept across ads and swipes between videos.
FIX: On mobile, ads now start without needing an extra tap per instance, and fast swiping no longer leads to stuck, missing or wrong ads.
FIX: The player no longer overrides the page title and description when they are already set.
FIX: Seeking to the live edge now lands on the exact edge position instead of rounding down to the whole second, and the player no longer crashes when the live edge cannot be determined.
FIX: Resolved an issue where the share popup appeared to stay open while closing and could be placed off the player edge when opened.
FIX: The age-restricted screen now shows the age value set in the configuration, and its default action works.
FIX: Resolved a setup crash on pages whose keywords meta tag has no content attribute.
Audio Player · v1.4.4
Feature: Keyboard and Screen Reader Support
- The audio player controls now have names, roles and state for screen readers, keyboard focus is visible and reachable, and the player claims only the keys it handles so other key presses pass through to the page.
Update: Playback Error Recovery
- The audio player now recovers from playback errors and reports playback health the same way the video players do, and a fatal network error that carries no response is retried instead of failing playback.
Update: Redesigned Player Icons
- The icon font fetched from the CDN is replaced with bundled SVG icons, so icons render crisply without depending on an external font download.
UPGRADE: The player now ships with hls.js 1.7.1 bundled instead of fetching an older version from the CDN, for faster and more reliable stream startup.
FIX: Quartile playback events now fire accurately: milestones due at the same time are all reported, starting mid-way does not trigger a burst of events, and the view's start position is captured correctly.
FIX: Resolved an issue where paging through a playlist altered the configured list of audios.
FIX: Resolved an issue where a thumbnail that failed to load could break the player layout.
FIX: A destroyed player now removes everything it added to the page.