Package Reference
All packages are published under the @xiboplayer scope on npm.
# Install everything
npm install @xiboplayer/core @xiboplayer/renderer @xiboplayer/schedule \
@xiboplayer/xmds @xiboplayer/xmr @xiboplayer/cache @xiboplayer/stats \
@xiboplayer/settings @xiboplayer/utils @xiboplayer/sync @xiboplayer/proxy
# Or individual packages
npm install @xiboplayer/xmds # just the CMS client
npm install @xiboplayer/cache # just the offline cache
Overview
| Package | Description | Key Exports |
|---|---|---|
| @xiboplayer/core | Player orchestration, collection cycle, offline mode | PlayerCore |
| @xiboplayer/renderer | XLF layout rendering, transitions, actions | RendererLite, LayoutPool |
| @xiboplayer/schedule | Campaigns, dayparting, interrupts, overlays | ScheduleManager, InterruptScheduler |
| @xiboplayer/xmds | CMS client (SOAP + REST dual transport) | XmdsClient, RestClient |
| @xiboplayer/xmr | Real-time push commands via WebSocket | XmrWrapper |
| @xiboplayer/cache | Parallel chunk downloads, MD5 verification | StoreClient, DownloadManager |
| @xiboplayer/stats | Proof-of-play tracking, log reporting | StatsCollector, LogReporter |
| @xiboplayer/settings | CMS display settings with reactive updates | DisplaySettings |
| @xiboplayer/crypto | RSA key generation for XMR registration | generateKeyPair |
| @xiboplayer/utils | Logger, EventEmitter, config, fetchWithRetry | EventEmitter, Config, CmsApi |
| @xiboplayer/sw | Service Worker for media caching | SwMediaHandler |
| @xiboplayer/sync | Multi-display video wall synchronization | SyncManager, computeChoreography |
| @xiboplayer/proxy | CORS proxy, PWA server, sync relay | createProxyApp, startServer |
| @xiboplayer/pwa | Complete browser-based player | PwaPlayer |
CMS communication
@xiboplayer/xmds provides two transports with identical API surfaces:
- XmdsClient (SOAP/XML) — compatible with all CMS versions (v3-v7)
- RestClient (REST/JSON) — 30% smaller payloads, ETag 304 caching
Protocol auto-detection selects the best transport at startup. Both converge on the same ContentStore mirror paths.
XMDS methods: RegisterDisplay, RequiredFiles, Schedule, GetResource, NotifyStatus, MediaInventory, BlackList, SubmitStats, SubmitScreenShot, SubmitLog
XMR commands: collectNow, screenshot, changeLayout, overlayLayout, revertToSchedule, purgeAll, dataUpdate, triggerWebhook, commandAction, criteriaUpdate
Downloads and caching
@xiboplayer/cache splits large files into 4 parallel 50MB chunks for fast downloads. Features:
- MD5 verification per chunk
- Download resume from last successful chunk
- CMS-configured download time windows
- Font CSS URL rewriting to local cache paths
Rendering
@xiboplayer/renderer parses XLF (Xibo Layout Format) and renders to DOM:
| Widget type | Implementation |
|---|---|
| Video | <video> with HLS.js fallback |
| Image | <img> with scaleType, align/valign |
| Audio | <audio> with visualization overlay |
| PDF.js canvas (lazy-loaded) | |
| Text/Ticker | iframe via GetResource |
| Web page | <iframe src="..."> |
| All CMS widgets | iframe via GetResource |
Source
- GitHub: xibo-players/xiboplayer
- 1744 tests across 54 suites
- License: AGPL-3.0-or-later
