Official plugin source, examples, build tooling, and release packages for OpenPlayer.
The player repository owns the plugin host API, runtime behavior, and security
model. This repository owns official plugin implementation code and packaged
.opplugin release assets.
The current plugin packages target OpenPlayer SDK 1.6.0. The bundled SDK
types cover host API compatibility checks, capability discovery, runtime event
subscriptions, setting snapshots, scoped storage with bounded prefix scans and
quota metadata, validated network requests, native dialogs, host-mediated
audio/video segment export, custom views with setting-backed side-panel opacity
and a theme-aware .op-* UI Kit, AB loop controls, and permission-gated mpv
playback, filter, OSD, and script-message APIs.
Action icons include tv for TV-like channel browsers such as IPTV plugins,
while stream remains the generic network-stream entry icon.
plugins/
capture-tools/
manifest.json
README.md
iptv-channel-switcher/
manifest.json
README.md
runtime/
plugin.js
view/
index.html
iptv.js
multi-stream-wall/
manifest.json
README.md
runtime/
plugin.js
view/
index.html
network-stream/
manifest.json
README.md
runtime/
plugin.js
segment-export/
manifest.json
README.md
runtime/
plugin.js
view/
index.html
subtitle-typography/
manifest.json
README.md
packages/
sdk/
index.d.ts
index.js
templates/
runtime-plugin/
scripts/
validate-manifest.mjs
package-plugin.mjs
dist/
Each directory under plugins/ is one plugin package. A plugin must include a
root manifest.json. Optional runtime source and assets should live inside the
same plugin directory.
packages/sdk contains TypeScript authoring types for the injected
openplayer runtime API. templates/runtime-plugin is a minimal starter for
worker-based plugins.
Plugin manifests include SDK compatibility and maintenance metadata:
apiVersion, minHostVersion, author, and updateUrl.
Authoring references:
- Host plugin overview
is the source of truth for manifest behavior, custom views, standardized
.op-*UI classes, permissions, and validation rules. - SDK 1.6 developer guide
is the source of truth for the runtime bridge, generic composable media
workflows, and storage lifecycle rules including
contributes.storage, install defaults, upgrade migrations, and uninstall cleanup.
Capture Tools- screenshots and lightweight mpv stream recording with selectable screenshot and recording formats.Subtitle Typography- subtitle font, scale, position, color, outline, and shadow controls.Network Stream- RTSP, RTMP, HTTP(S), and HLS stream playback entry points backed by a plugin-owned runtime command, OpenPlayer's native stream dialog, and recent stream history.IPTV Channel Switcher- TV-style channel browser for best-fan IPTV M3U8 playlists with channel logos, grouped duplicate entries, playlist refresh, and per-channel source switching, plus a plugin setting for side-panel opacity.Multi-Stream Wall- split-screen monitor wall for RTSP, RTMP, HTTP(S), HLS, and WebRTC/WHEP streams with optional latency and bitrate overlays, rounded native tiles, browser WebRTC tiles, and dialog-safe native wall visibility.Segment Export- side-panel controls for exporting selected audio segments aswav,mp3,m4a, orflac, and selected video segments asmp4ormkvthrough OpenPlayer's host-managed export bridge.
npm run buildThe build validates every plugin manifest and writes .opplugin packages to
dist/.
Runtime plugins that persist state use contributes.storage to declare a
plugin-private schema version and small JSON defaults. OpenPlayer initializes
missing defaults during install/upgrade, exposes openplayer.storage.info() for
plugin-owned migrations, accepts openplayer.storage.markMigrated() after the
plugin finishes migration, and removes that storage when the plugin is
uninstalled. Cache-heavy plugins can use
openplayer.storage.list({ prefix, limit }) plus totalBytes and
maxValueBytes from storage.info() to prune private cache chunks without raw
redb access.
Download an .opplugin file from the releases page and install it from
OpenPlayer's Plugins settings page, or drag the package into the player window.
MIT. See LICENSE.