-
Notifications
You must be signed in to change notification settings - Fork 50
6. System Notes
This section explains how Explo interacts with different music systems and downloaders. Any known bugs or configuration tips are documented here.
Emby has a minor bug when you're not using persistent mode. It's generated API can't delete items (including playlists). This means that the playlist won't get deleted from Emby (the song files will still be deleted).
- See this forum thread for more context
In Jellyfin → Library Management, ensure:
- Enable real-time monitoring is checked.
- Under both Album and Artist Metadata Downloaders, MusicBrainz is listed first and enabled.
It's recommended to set USE_SUBDIRECTORY to false and use Path templating in .env, Jellyfin expects a specific folder structure for music, which the above variable disrupts.
Using weekly-jams and daily-jams with download skipping enabled will not work.
This is because Explo generates playlists based on filenames, and there’s currently no reliable way in Go (to my knowledge) to read the raw file metadata to match tracks.
If you know a solution, feel free to open an issue!
Plex supports both authentication methods:
-
Username & Password - recommended, unless using 2FA
-
API Key - Works even when using 2FA
Here is an article on how to find the API Key
Make sure your library (which Explo uses) has Prefer local metadata checked (under Manage Library > Edit...)
Explo does not currently support managing multiple users within a single instance.
However, you can run multiple Explo instances, each with its own configuration file.
Configure administrative credentials using:
ADMIN_SYSTEM_USERNAMEADMIN_SYSTEM_PASSWORD
Also configure regular account credentials:
SYSTEM_USERNAMESYSTEM_PASSWORD
Explo will use these credentials for privileged operations while creating and managing playlists for the configured (SYSTEM_USERNAME) user. For non-privileged operations the regular account will be used.
PS! If you use MFA with Plex, use ADMIN_API_KEY and API_KEY instead
Configure:
- An
ADMIN_API_KEY -
SYSTEM_USERNAMEset to the user who should receive the playlist
Explo will perform actions using the API key while creating playlists for the specified user.
Youtube can be run two ways:
- With the official API (API key set in
.env) - using ytmusicapi (will be used as fallback if API key is not set)
When requesting tracks via Slskd, Explo will wait until all tracks are processed (either downloaded or skipped).
By default tracks are skipped when they can't be found in the download queue, there has been no download progress for the last 15 minutes or the track wasn't downloaded within 2 hours. The timings are configurable
It is recommended to share your music library. Some Soulseek users block you from downloading if you haven't shared anything, this can result Explo downloading fewer files.
Explo can search for and request complete albums for tracks in your playlists through Lidarr. It monitors album progress using Lidarr's Queue and History APIs (the same information shown in Lidarr's UI).
By default, Explo skips an album if it has made no download progress for 20 minutes straight or has not finished downloading within 2 hours. The timings are configurable.
If you want albums requested by Explo to end up in Explo's download folder instead of Lidarr's library, you have two options.
Option 1: Use a dedicated Root Folder
-
Mount Explo's download directory in Lidarr's container (
docker-compose.yaml) -
Create a dedicated Root Folder for Explo in Lidarr that points to the mounted directory (usually the container path)
-
Set
LIDARR_ROOT_FOLDERin Explo's.env(or through the setup wizard) to the name of that Root Folder
Lidarr will then download albums directly into Explo's directory.
This also allows you to configure separate quality profiles and release profiles specifically for albums requested by Explo
Option 2: Migrate downloads
-
Mount Lidarr's download path in Explo's container (
docker-compose.yml) -
Set
LIDARR_MIGRATE_DOWNLOADStotrue
Explo will move completed downloads into its own download directory after Lidarr finishes processing them
Explo uses notify to send notifications.
Not all services supported by notify are implemented in Explo. If you want support for an additional service, open an issue.
Explo currently supports sending notifications to:
- Discord
- HTTP (Webhook)
- Matrix
A successful Explo run sends a POST request with a JSON payload:
{
"time": "2026-01-31T19:21:03.342952249+02:00",
"level": "INFO",
"message": "playlist created successfully",
"attributes": {
"playlistName": "Weekly-Exploration",
"system": "subsonic"
}
}