Skip to main content

Plugin Overview

Plugins let you add custom automation to M3U Editor without modifying the core application. A plugin can react to events, process channels or EPG data, run on a schedule, or expose actions you can trigger manually from the admin UI.

What plugins can do

Each plugin declares one or more capabilities that describe what kind of work it performs:

CapabilityWhat it does
channel_processorProcess or transform channel data after a playlist syncs
epg_processorProcess or transform EPG programme data
stream_analysisAnalyse stream health or metadata
scheduledRun actions on a cron schedule defined in plugin settings

Plugins can also subscribe to hooks — events that M3U Editor fires at key points in its workflow:

HookFires when…
playlist.syncedA playlist finishes syncing
epg.syncedAn EPG source finishes syncing
epg.cache.generatedThe EPG cache has been rebuilt
before.epg.mapJust before an EPG map is applied
after.epg.mapJust after an EPG map is applied
before.epg.output.generateJust before EPG output is generated
after.epg.output.generateJust after EPG output is generated

Security model

M3U Editor does not sandbox plugin PHP code. Instead it puts a review and trust boundary around installation:

  1. Validation — the manifest and entrypoint are inspected statically (without executing the plugin) before any trust decision is made.
  2. Malware scanning — optional ClamAV scanning can run before the plugin is approved.
  3. Explicit trust — an administrator must explicitly trust a plugin. Trusting pins a SHA-256 snapshot of every file in the plugin directory.
  4. Integrity checks — after trust, the system can verify at any time that no files have changed since trust was granted.
  5. Execution gate — a plugin must be installed, enabled, validated, trusted, and have verified integrity before any of its code runs.
warning

Trusting a plugin gives it the same runtime permissions as the Laravel application. Only install plugins from sources you control or fully trust.

Where to find plugins in the UI

All plugin management lives under Plugins in the admin navigation. There are two sections:

  • Plugins — your installed and registered plugins. Use this to view run history, tune settings, enable/disable, trust, verify integrity, or uninstall a plugin.
  • Plugins → Installs — the install review queue. Staged plugins (from an upload, local directory, or GitHub release) appear here waiting for scan, approval, and trust.

The Plugins Dashboard shows a health summary across all installed plugins — validation status, trust state, integrity status, and recent run activity.