Libraries
A library is a music source registered by a plugin. Each library exposes a set of tracks to the Pipe Bomb server — the server indexes them, stores their metadata, and streams audio from them.
What is a Library?
Libraries are provided by plugins via registerLibraryHandler(handler). A single plugin can register multiple library handlers (e.g., one per configured source directory). The server identifies each library by a (pluginId, libraryId) pair.
The server does not know or care where the audio comes from - it could be a local directory, a network share, a remote API, or anything else a plugin implements.
Scanning
Scanning is the process of discovering tracks in a library and registering them with the server. It is triggered manually from Settings → Libraries, or automatically via a users/Workflows (e.g., on a cron schedule).
The library plugin walks the source and reports all tracks it finds. After scanning, any tracks that were previously indexed but not reported are checked with the plugin — if they no longer exist, they are removed from the database.
Managing libraries in the UI
Libraries are listed under Settings → System → Libraries. From there you can see all registered libraries and which plugin owns each one.
Library names come from the handler's getName() method - typically the plugin configures this from user-supplied settings (e.g., the name of a configured directory).
Related pages
- development/Plugin-System — how plugins register library handlers
- development/Plugin-Development — implementing
LibraryHandler - users/Attributes — metadata enrichment that runs after scanning
- users/Identifiers — identity linking that runs during/after scanning
- users/Workflows — automating library scans