Skip to content

Releases: FastPix/web-player-component

v1.0.19

19 May 09:47

Choose a tag to compare

Version - [1.0.19]

Domain migration: fastpix.iofastpix.com

All first-party endpoints baked into the player have moved from the .io TLD to .com. No attribute changes are required — existing integrations that rely on the built-in defaults will start hitting the new hosts on upgrade.

  • HLS playback host – default stream base changed from https://stream.fastpix.io to https://stream.fastpix.com for both on-demand and live streams, and for episode switching in the playlist flow.
  • DRM endpoints – Widevine license, FairPlay license, and FairPlay certificate URLs now resolve under https://api.fastpix.com/v1/on-demand/drm/... (previously api.fastpix.io).
  • Spritesheet / poster hostspritesheet-src default updated from images.fastpix.io to images.fastpix.com. Consumers that explicitly set spritesheet-src are unaffected.
  • Shoppable cart fallback – when cart-goto-link is not provided, the cart CTA now links to https://www.fastpix.com instead of https://www.fastpix.io.

Note: the .io hosts continue to serve traffic for now and existing integrations will keep working, but they are slated for deprecation — please migrate to .com. The images.fastpix.io default referenced in the 1.0.18 entry below is now images.fastpix.com.

v1.0.18

15 May 10:32

Choose a tag to compare

Version - [1.0.18]

Spritesheet hover previews

  • spritesheet-src – overrides the host that serves the hover-preview spritesheet and poster thumbnail.jpg. Defaults to images.fastpix.io. Accepts a bare host (e.g. images.fastpix.co) or a full URL; trailing slashes are stripped and https:// is added when no scheme is supplied. Previously a bare host was concatenated as a relative path against the page origin, producing 404s like http://<your-site>/images.fastpix.co/<id>/thumbnail.jpg.
  • enable-advanced-spritesheet – boolean. Switches hover previews from the default sheet to the higher-density advanced sheet (advanced-spritesheet.json/.jpg). More frame-accurate scrubbing at the cost of a larger image download.
  • advanced-spritesheet-interval – integer 110. Seconds between consecutive tiles on the advanced spritesheet (passed as ?interval=N on the JSON and JPG requests). Out-of-range or non-numeric values are ignored and the API default of 10 is used. Has no effect unless enable-advanced-spritesheet is also present.

Hover preview reliability

  • Instant interactivity – the seekbar's hover/scrub listeners now attach as soon as the spritesheet JSON arrives, instead of waiting for the entire spritesheet image (which can be several megabytes for the advanced variant) to finish downloading. The timestamp pill follows the cursor immediately; the frame fills in as the image streams.
  • Tile dimensions derived from JSONbackgroundSize is now computed from the sheet's declared dimensions rather than image.naturalWidth, so previews render correctly the first time, not only after the image fully decodes.
  • Two JSON schemas supportedfetchThumbnailJson now normalizes both the legacy tiles[] response and the newer grid response (columns, rows, interval, tileWidth, tileHeight) into a single shape. The grid variant was previously rejected as malformed and fell back to timestamp-only previews.
  • Deterministic image URL – the spritesheet image URL is reconstructed from the playback ID and variant rather than trusted from the JSON's url field, working around upstream responses that occasionally return a mis-cased filename (advanced-Spritesheet.jpg) that 404s on the CDN.
  • Cache key includes variant and interval – switching between normal and advanced spritesheets, or between intervals, no longer serves a stale cached JSON.
  • Safer tile lookupfindCurrentTile guards against missing or empty tiles so an unexpected response shape can no longer throw Cannot read properties of undefined (reading 'length') during hover.

v1.0.17

19 Apr 21:29

Choose a tag to compare

Version - [1.0.17]

Custom quality API

  • getQualityLevels() – returns all available renditions (id, label, height, width, bitrate, frameRate).
  • setQualityLevel(id) – locks playback to a specific rendition (manual mode).
  • setQualityAuto() – re-enables ABR; clears any manual lock.
  • getPlaybackQuality() – snapshot of current state: { mode, lockedLevel, loadedLevel }.
  • --resolution-selector: none – CSS variable to hide the built-in quality button when using a custom menu.

Quality events

  • fastpixqualitylevelsready – fires after manifest parse; detail.levels is the full rendition ladder. Build your quality menu here.
  • fastpixqualitychange – fires on every ABR or manual switch; detail includes mode, lockedLevel, loadedLevel, and previousLoadedLevel.
  • fastpixqualityfailed – fires on invalid levelId or rendition load error; detail.reason describes the failure.

Named overlay slots

  • Eight slot regions (top-left, top-center, top-right, center-left, center-right, bottom-left, bottom-center, bottom-right) let you place any HTML over the video as light-DOM children of <fastpix-player>.
  • --user-slot-z – controls stacking order of the slot layer (default 6).
  • --user-slot-bottom-clearance – space between bottom-row slots and the seek bar (default 64px).
  • Shadow part part="user-slots" exposed for page-level ::part styling.

v1.0.16

26 Mar 10:21

Choose a tag to compare

Version - [1.0.16]

Updated

  • Analytics / Video Data@fastpix/video-data-core dependency range updated to ^1.0.7.

Live playback

  • Cleaner live UI – For stream-type="live-stream", the duration-style time readout stays hidden so the experience matches open-ended live viewing.

On-demand playback

  • Smarter background loading on VOD – On-demand streams use settings tuned for typical recorded playback; live streams use a lighter profile suited to the live edge.

Performance & stability

  • Smoother day-to-day use – Less chance of the browser reporting long scripting tasks during normal actions (timeline updates, audio track changes, subtitle changes, and Chromecast handoff).
  • Programmatic audio – When you switch tracks via setAudioTrack(...), the built-in audio menu stays aligned with fewer redundant updates.

v1.0.15

19 Mar 11:19

Choose a tag to compare

Version - [1.0.15]

Audio & Subtitle UX (tracks + subtitles)

  • New attribute: hide-native-subtitles

    • When present, the internal subtitle container never paints text, so the built‑in overlay stays visually hidden even when a track is enabled.
    • All subtitle APIs still work as usual: fastpixsubtitlecue continues to fire with { text, language, startTime, endTime } and the native TextTrack state is unchanged.
    • Recommended when you render subtitles in your own UI (React overlay, custom HTML) and want to guarantee there is no duplicate text from the built‑in overlay.
  • Clarified behavior: disable-hidden-captions

    • Now applied as an initial state only: on load, the player disables all subtitles/captions without emitting fastpixsubtitlechange.
    • After load, users (or your code) can still turn subtitles on via the built‑in menu or setSubtitleTrack(...); the internal overlay is allowed to show again unless hide-native-subtitles is also set.

Programmatic seek

  • seekForward(seconds) and seekBackward(seconds) – New methods on the <fastpix-player> element to jump the playhead forward or back by a given number of seconds (clamped to the media range). Use them for custom “+10s” / “−10s” buttons or app shortcuts; the built-in skip buttons still follow forward-seek-offset / backward-seek-offset when set. Documented in README (Programmatic playback control and section 1.3 custom-controls example).

v1.0.14

18 Mar 10:50
af3b2bf

Choose a tag to compare

Version - [1.0.14]

Audio & Subtitle Tracks

  • Switch by name (label)setAudioTrack(languageName) / setSubtitleTrack(languageName | null) switch tracks by label/name (no numeric ids required).
  • Set defaults by name – New attributes:
    • default-audio-track="French"
    • default-subtitle-track="English"
  • Cleaner track listsgetAudioTracks() / getSubtitleTracks() now avoid duplicate entries when multiple tracks share the same label.
  • Better events for integrations
    • fastpixtracksready includes the full current track objects (currentAudioTrackLoaded, currentSubtitleLoaded) in addition to the track lists.
    • `fastpixa

v1.0.13

06 Mar 14:21
1d2ed7f

Choose a tag to compare

Version - [v1.0.13] :

_ Updated README.md

v1.0.12

04 Mar 12:58

Choose a tag to compare

Version - [1.0.12]

Changed

  • Build & package – ESM build is now a single bundled file (dist/player.esm.js), so import '@fastpix/fp-player' works in React, Vite, and other bundlers without "Could not resolve ./utils/..." errors. CDN build stays at dist/player.js for backward compatibility with existing script-tag and CDN URLs.
  • Exports"import" resolves to player.esm.js; "require" and main resolve to player.js (IIFE).
  • Build size – Stripped legal comments and debugger statements in both builds for slightly smaller output.

v1.0.11

04 Mar 11:47
c690dce

Choose a tag to compare

Verison -[1.0.11]

Features you can use

  • Programmatic playback control – JavaScript API: play(), pause(), mute(), and unmute() for controlling playback and volume from your code (e.g. custom controls, Shorts-style UI, or framework integrations). mute()/unmute() sync with Chromecast when casting.
  • Seekbar position – Use CSS variable --seekbar-bottom (e.g. 0px) to move the progress bar to the very bottom. Thumbnail preview stays above it.
  • Invisible bar, keep preview & seek – Set --progress-bar-invisible: 1 to hide the bar visually while keeping hover thumbnail/timestamp preview and click-to-seek. Use your own progress bar on top.
  • Style the bar – Use --progress-bar-track-unfilledto style the track.
  • Thumbnail hover on seekbar – Hover or drag on the seekbar to see a frame preview (spritesheet) or timestamp pill when no thumbnails are available.
  • Shorts mode – Attribute autoplay-shorts for muted autoplay, loop, and feed-friendly behavior.
  • Free keyboard keys – Attribute disable-keyboard-controls so your app can use Arrow Up/Down (e.g. next/prev) without the player capturing them.
  • Accent color – Attribute accent-color or CSS --accent-color for theming; your app can read it to match a custom progress bar.

v1.0.10

27 Oct 11:38
bd7690d

Choose a tag to compare

Version - [1.0.10]

Changed

  • Updated npm authentication from Classic token to Granular token for improved security and fine-grained permissions.