npm shaka-player 5.2.0
v5.2.0

3 hours ago

5.2.0 (2026-07-10)

Features

  • Add metadata extraction support for src= playback (#10112) (87a7d86)
  • Add requestVideoFrameCallback polyfill (#10083) (157f319)
  • Add support for ID3v1 and IDv2.3 (#10108) (67b0a17)
  • Add throwOnPreloadNotSupported flag to preload() (#10163) (8daa880)
  • Add timeToFirstFrame to stats (#10065) (19b2c10)
  • Ads: Allow replaying already-played linear ads in MediaTailor (#10266) (221e581)
  • Ads: Defer HLS interstitial asset list resolution (#10262) (e8c2ba9), closes #10191 #9851
  • Cast: Add setContentAlbumName to CastReceiver (#10189) (92298a6)
  • Cast: Dynamically proxy player and ad events using FakeEventTarget.ALL_EVENTS (#10168) (c306ac3)
  • CEA: Reveal paint-on and roll-up captions character by character (#10298) (82570a3)
  • cmcd: vendor @svta/cml-cmcd, replace custom encoder + state machine (#10060) (0767557)
  • DASH: Fire EventStream urn:mpeg:dash:event:callback:2015 beacons on region enter (#10225) (88a1cc6)
  • DASH: Resolve Linked Periods via ImportedMPD (DASH 6th ed.) (#10221) (d701bdf)
  • DASH: Support Essential/SupplementalProperty at MPD and Period level (#10277) (d7ab0d8)
  • DASH: support URL parameters via RequestParam (urlparam:2025) (#10222) (ee29bc0)
  • DASH: Unify URL parameter handling and add urlparam:2016 support (#10282) (d8c5f02)
  • Demo: Replace Material Icons font with inline SVGs (#10156) (154b837)
  • Demo: Use monospace in extra config text areas (#10024) (3a59de0)
  • Expose audioLanguage and videoLanguage on tracks (#10256) (17102b3)
  • HLS: Allow encrypted MSE playback with legacy Apple MediaKeys (#10271) (b445543)
  • HLS: Disable sequenceMode by default (#10325) (8064aee)
  • HLS: Emit timelineregionadded for EXT-X-DATERANGE tags (#10301) (b7197f1)
  • HLS: Report accurate playhead date across PROGRAM-DATE-TIME discontinuities (#10267) (cd70c02), closes #9039
  • HLS: Support EXT-X-STREAM-INF tags with both AUDIO and VIDEO attributes (#10309) (5f0757f)
  • MSF: Add accessibility parsing in the catalog (CEA-608/708) (#10040) (e9551b3)
  • MSF: Add catalogPreprocessor config (#9990) (ef83be2)
  • MSF: Add LoC support (#10035) (f9d7f1f)
  • MSF: Provide a bandwidth estimate for ABR purposes (#10016) (1a845ec)
  • net: Add MIME type mappings for CMAF and Opus files (#10165) (ad57ba8)
  • player: expose mediaTimestamp on segmentappended (#10133) (b9214cc)
  • Queue: Add M3U playlist loading support (#10115) (f367ee5)
  • Repair broken I-frame-only mp4 segments that fail to append (#10304) (386f36b)
  • replace goog.Uri with native URL API (#10197) (12329db)
  • Support ClearKey playback in Safari through WebCrypto (#10180) (f349d0a)
  • transmux in a worker (#9914) (921206d)
  • UI: add always-visible skip buttons for big button layout with disabled state (#10062) (fd4b1cd)
  • UI: Add fisheye VR projection for Apple Immersive Video (#10310) (dcbfe39)
  • UI: Add live subtitle style preview on hover (#10077) (415ebdc)
  • UI: Add modern CSS theme support using CSS custom properties (#10152) (6562859)
  • UI: Add new play_pause_buffering button (#10039) (64dc709)
  • UI: Add QueueButton for queue navigation (#10124) (a7f062a)
  • UI: Add wheel support and setStep to RangeElement (#10129) (35d3a79)
  • UI: Allow custom format and imageQuality in takeScreenshot and copyVideoFrameToClipboard (#10012) (b0e3015)
  • UI: Change TOGGLE_STEREOSCOPIC icon to cardboard icon (#10311) (e022dbb)
  • UI: consolidate skip, trick-play and statistics buttons into base classes (#10228) (f67489d)
  • UI: Disambiguate video tracks with the same role by language (#10307) (344091f)
  • UI: Improve shaka player UI accessibility (#10023) (f1c0468)
  • UI: Improve VR gesture handling and add configurable wheel zoom (#10312) (5c58398)
  • UI: Map ID3 TPE1 and TALB tags to MediaSession metadata (#10109) (3cc1e77)
  • UI: Modernize the statistics panel (#10144) (686d550)
  • UI: Redesign Document PiP placeholder with blurred backdrop, pulse animation and label (#10140) (7108d22)
  • UI: Reduce size of SVG icon paths (#10313) (274b3cc)
  • UI: Show 'Generated'/'Translated' label for HLS public.machine-generated tracks (#10223) (8b167e2)
  • UI: Support customizing resolution menu labels via customTrackLabel (#10096) (bb18838)
  • UI: Support Document PiP for audio-only playback (#10136) (c433bcb)
  • UI: Support embedded APIC artwork blobs in MediaSession (#10107) (066ca5f)
  • UI: Support repeat modes in loop button when using QueueManager (#10027) (24ab2be)
  • UITextDisplayer: add suspendRenderingWhenHidden config (#10043) (27ed71e)
  • UI: Update playback rate menu with slider and preset pills (#10134) (f2de748)
  • UI: Use UI language to display languages names (#10036) (18af32c)

Bug Fixes

  • ABR: Fix playbackRate calculation when using droppedFrames (#10011) (62ea2f6)
  • ABR: Removed unused droppedFrameProtection type (#10302) (67f6b75)
  • Ads: Prevent pre-roll ads if a previous ad has already played (#10195) (31a120b)
  • Allow use preferredText with external tracks (#10019) (3d11d75)
  • Apply PlayReady fixes on Edge to the rest of the browsers that use Windows (#10205) (c1aaed2)
  • Avoid hang when loading a new asset after DRM playback (#10239) (a3f554c)
  • avoid pts rollover correction for fmp4/cmaf streams (#10021) (c2ad355), closes #10020
  • Avoid race condition in concurrent getAllThumbnails calls (#10022) (12179a2)
  • Avoid uncaught TypeError when destroying player during DRM key status change (#9992) (281b7c4)
  • Bail out on initial text preference when a user selected one manually. (#10010) (09b6c94)
  • Cast: Proxy missing ad events through CastProxy (#10142) (ad4b624)
  • Cast: Use cast platform APIs in MediaCapabilties polyfill (#10170) (38dca5a)
  • CEA: Fix CEA-608 multi-line vertical positioning (#10296) (10a49d2)
  • CEA: Read each trun from its own data offset in shared mdat (#10295) (97ec2b2)
  • Clamp playback rate to 16x and improve playhead movement behavior (#9996) (9d8b383)
  • Correct device detection for PlayStation 4 Pro to enable 4K resolution (#10269) (1f896f8)
  • dash-json: XML-escape text content and attributes in jsonToMpd (#10131) (ca356e4)
  • demo: Fix audio-only animated poster (#9986) (d64ff80)
  • Demo: Fix audio-only animated poster on custom content (#9995) (b0de223)
  • demo: Re-enable lazy localization (#10137) (1841e3a)
  • Emit ratechange event when playbackRate stays at 0 (#10130) (a479eae)
  • Fix getOrInsertComputed is not available at the init, so not used at the init (#10202) (1c63e75)
  • fix opus transmux sample duration (#10090) (e19506b)
  • Fix XML node attribute externs (#10111) (1977e2f)
  • force gap jump when stalled at the end of a buffer (#10086) (e328ca2)
  • handle AC-4 immersive stereo (IMSA) in HLS and DASH spatial audio detection (#10007) (b113cad)
  • HLS: Fix LL-HLS stall on live playlist updates after #9998 (#10154) (2e13ea2)
  • HLS: Fix SAMPLE-AES identity stall at waitingforkey event on track switch (#10000) (bce50f0)
  • HLS: Fix timeline sync gaps on discontinuity sequences (#10087) (589131f)
  • HLS: recognize binary/octet-stream as generic binary MIME type (#10294) (bb7accc)
  • Map the "audio/x-mpegurl" MIME type as HLS (#10114) (ce7ee4b)
  • MSF: Fix namespace handling (#9988) (ef2bd7f)
  • MSF: handle WebTransport.closed rejection to avoid Safari unhandled promise error (#10056) (b84c35d)
  • MSF: Support MSF draft-1 and CMSF draft-1 (#10176) (c09ddc6)
  • Offline: Only request the license on download when usePersistentLicense is true (#10074) (ad8e734)
  • preload: Restore adaptation on reused Player with preloaded variant (#10151) (2e509da)
  • Queue: Fix usage with RepeatMode.OFF (#10164) (6e0599a)
  • Queue: Support relative URLs in M3U playlists (#10161) (821a639)
  • Retry the stall-breaking action when a stall persists (#10327) (c17708c)
  • Set Default robustness on Android for Widevine key system (#10289) (d3421ba)
  • Support negative playback rate (reverse trick play) correctly (#10323) (ce6a869)
  • text: include regionAnchorX/Y in region cache key (#10073) (99fb7e4)
  • text: use valid CSS value 'line-through' for LINE_THROUGH (#10249) (5cb876e)
  • TS: Fix timestamps when a segment straddles the 33-bit PTS/DTS rollover (#10324) (4fda54a)
  • UI: Add mute_volume composite element to fix hover jank between mute button and volume bar (#10214) (cae7b3e)
  • UI: check if ad is linear before updating mute label and icon (#10044) (038b3ce)
  • UI: Close context menu on left click outside the player bounds (#10213) (cf336ef)
  • UI: Fix ad marker alignment regression (#10193) (47b3c0a)
  • UI: Fix blurry seek bar marks (#10097) (ab8699b)
  • UI: Fix parent param type in shaka.ui.Icon constructor (#10014) (82e9147)
  • UI: Fix visibility of the ad statistics panel (#10203) (a92699f)
  • UI: Fix wrong wheel directions on volume bar (#10001) (e0808e7)
  • UI: Handle Document PiP resize events in overflow and settings menus (#10125) (1007dd2)
  • UI: Hide volume slider on Smart TV and mobile after mute_volume change (#10287) (da4d4ae)
  • UI: Remove buffered bar delay after seeking (#10071) (26970ae)
  • UI: Sync Document PiP placeholder with video poster changes (#10135) (d295a0a)
  • UITextDisplayer: re-apply visibility on configure so suspended rendering resumes (#10250) (2f4cc0e)
  • UI: Update play button state on shaka.ads.Utils.AD_PLAYING (#10143) (ee9436b)
  • UI: Use consistent font throughout UI (#10138) (66ba6e3)

Performance Improvements

  • DASH: lazy segment reference creation (#10050) (8d4ac31)
  • Disable ContentWorkarounds on Safari >=26.4 (#10204) (697816d)
  • HLS: Improve startup time with SGAI Streams with long DVR (#10113) (2970cd4)
  • HLS: skip merging known segments on live playlist updates (#9998) (b460575)
  • HLS: skip rebuilding known refs on live playlist refresh (#10075) (af30680)
  • media: replace slice with in-place array truncation (#10070) (ad2df90)
  • Mp4Generator: assemble segment data in a single allocation (#10101) (5492f31)
  • player: avoid full configuration deep-clone in time update callback (#10098) (96e6f63)
  • Remove unnecessary allocations in Mp4Generator (#10059) (71ccb11)
  • Remove unnecessary Uint8Array allocations in Mp4Generator (#10069) (b5ad8cc)
  • Remove unnecessary Uint8ArrayUtils.concat calls in Mp4Generator (#10047) (f730953)
  • segments: use binary search for segment lookup in more hot paths (#9997) (44dfab1)
  • transmuxer: Avoid repeatedly creating empty Uint8Arrays (#10100) (de30b70)
  • transmuxer: Merge consecutive Uint8Arrays in h265 transmuxer (#10046) (84e24c7)
  • transmuxer: Reduce per-frame object allocations for h265, ac-3 and ec-3 (#10094) (5c836b1)
  • transmuxer: Write nalu lengths directly into combined buffer in h265 (#10119) (3e002b6)
  • ts: derive start time from PES headers (#10132) (0f39ee2)
  • UI: Skip touch listeners when maxTouchPoints is 0 (#9981) (d07037b)

Don't miss a new shaka-player release

NewReleases is sending notifications on new releases.