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).