Plugins & Metadata Providers
"Plugins" in streamarr.media covers two things today:
- Metadata providers — external services (TMDB, TheTVDB, IGDB, Spotify, MusicBrainz, Shazam) that supply titles, artwork, descriptions, and identification. These are configured in the admin UI.
- The plugin package registry — a metadata-only record of plugin repositories and package lifecycle state, managed via the API and displayed read-only in the admin UI.
No executable plugins
streamarr.media does not download or execute plugin code. The plugin registry stores repository, lifecycle, capability, and notification metadata only. Library types (movies, shows, music, games, books, photos) are built into the server and cannot be installed or removed.
Metadata Providers
Navigate to Admin → Metadata Providers. Each provider appears as an expandable entry with a status chip: Configured, Not Configured, or No Config Needed.
| Provider | Supplies metadata for | Credentials required |
|---|---|---|
| TMDB | Movies & TV shows | API Key (Bearer token) |
| TheTVDB | TV shows | API Key, optional Subscriber PIN |
| IGDB | Games | Twitch Client ID + Client Secret |
| Spotify | Music (artists, albums, tracks) | Client ID + Client Secret |
| MusicBrainz | Music | None |
| Shazam | Song identification from audio | None |
Books
Book metadata comes from OpenLibrary, which needs no API key and therefore does not appear on this page. See Books for the reader experience.
Getting credentials
Create an API key at themoviedb.org/settings/api and paste it into the API Key field. TMDB powers movie and show metadata, including translations and trending lists.
Get an API key from your TheTVDB dashboard. The Subscriber PIN is optional and only needed for subscriber features.
IGDB authenticates through Twitch. Create an application at dev.twitch.tv/console/apps and enter its Client ID and Client Secret.
Create an app in the Spotify Developer Dashboard and enter its Client ID and Client Secret. This is metadata only — it is separate from the Spotify downloader service.
Configuring and testing
- Expand the provider and fill in its fields (secrets are masked; use the eye icon to reveal them).
- Click Test Connection to verify the credentials.
- Click Save.
Tip
Test Connection uses the values currently in the form, so you can verify credentials before saving. With an empty form it tests the stored configuration instead.
When you create a library, you choose a metadata provider compatible with its media type; providers that are not yet configured are flagged in the selection, so set up your providers first. See Libraries.
Plugin Package Registry
Superusers can record plugin repositories and package metadata through the REST API under /api/plugins. The admin UI shows this data in the Plugin Runtime Metadata section of Admin → Packages (shared with subscription packages): installed/enabled counts, the runtime scope, configured repositories with a per-repository sync action, and a table of packages with status, version, runtime kind, capabilities, and notification events.
Package statuses are: Installed, Disabled, Update available, Restart required, Failed, Uninstalled.
Key endpoints (superuser only):
| Endpoint | Purpose |
|---|---|
GET/PUT /api/plugins/repositories |
List or replace repository entries |
POST /api/plugins/repositories/{id}/sync |
Queue a repository metadata refresh |
GET/PUT /api/plugins/installed |
List or replace package metadata |
POST /api/plugins/installed/{id} |
Create/replace one package's metadata (plus /enable, /disable, /update) |
GET /api/plugins/runtime-policy |
The server's runtime contract (metadata-only) |
GET /api/plugins/validation |
Validate stored metadata |
Validation enforces that plugin-advertised notification event types use the plugin. prefix, don't collide with the core notification catalog or other plugins, and that capability tokens are lowercase. All registry changes are recorded in the activity log.
What is not a plugin
Indexers and download clients have their own configuration pages — see Indexers and Download Clients.