Extensibility
Plugins with a real contract.
Implement LifecycleInterface, ship a manifest.json, drop it in the plugins directory. Phlix does the rest.
How it works
Lifecycle hooks
Plugins hook into the server lifecycle through defined phases. Each plugin declares which phases it responds to in its manifest.
Called once when the server process starts. Use for dependency injection setup and initialisation.
Called after each library scan pass. Use to enrich items with additional metadata from external sources.
Called before transcoding. Use to register custom codec profiles or pre-process the input stream.
Called before playback starts. Use for session initialisation, analytics, or access control checks.
Called when the server process stops. Use for graceful cleanup, state persistence, and resource release.
Manifest schema
plugin.json
Minimal manifest
{
"name": "my-metadata-provider",
"version": "1.0.0",
"description": "Fetches artwork from Fanart.tv",
"lifecycle": ["onScan"],
"apiVersion": "1.0",
"author": "Your Name <your@email.com>"
}
That's the smallest valid Phlix plugin. Drop it into plugins/, and Phlix
loads it on the next boot.