Quick Start
Install MusicSeed, connect Plex, and follow the guide that matches your setup.
Install MusicSeed
Run these steps on the computer where you want MusicSeed to run. Plex can live on a different machine.
Check the prerequisites
You need macOS or Linux, Python 3.12 or newer with venv support, Node.js with npm, and Git for the source download below. You also need a Plex music library.
python3 --version node --version npm --version git --versionNode.js is used to build the website during installation. Starting MusicSeed afterward only needs Python.
Download and install
git clone https://github.com/dafevara/musicseed.git musicseed cd musicseed ./scripts/install.shPrefer a release archive? Download and unpack one from GitHub Releases. Open the source or release directory and run
./scripts/install.sh. The installer creates a Python environment, installs the app, and builds the web UI. Installation needs internet access.Start the app
musicseed --openKeep the terminal running. The app opens at
http://127.0.0.1:8789on this computer. If your browser does not open, enter that address yourself.Command not found, missing venv, or port already in use?
If
musicseedis not on your PATH, run./.venv/bin/musicseed --openfrom the source directory.On Debian or Ubuntu, a missing venv error may require
sudo apt install python3-venv python3-pip; then rerun the installer with Python 3.12 or newer.If port 8789 is occupied, use
musicseed --port 8790 --open.
Next: connect to Plex.
Back to guides ↑Connect to Plex
The Plex connection lets MusicSeed save playlists. Database access, configured in the next guide, lets it import your library.
Choose your server
After starting MusicSeed, open
http://127.0.0.1:8789on that computer and select your Plex server in the setup wizard. If discovery does not find it, enter its address in Plex server URL, for examplehttp://nas.local:32400.For Plex on another computer, use that computer's reachable hostname or IP address.
127.0.0.1refers to the computer running MusicSeed.Add a Plex token if one was not detected
In Plex Web, sign in and open your library. Open your browser's developer tools, select the Network tab, and find a Plex request containing
X-Plex-Tokenin its headers or URL. Copy only the token value into Plex token.Use a token that can access this server and library. Keep it private; MusicSeed stores it locally and does not display the saved value.
Confirm your music library
Enter the exact name shown in Plex under Music library name, then choose Save & re-check. A successful connection takes you to Review & initialize.
If a readable database is already available, Continue without Plex connection lets you import and recommend locally. You can add the Plex connection in Settings before saving playlists.
Next: choose local Plex, a remote server, or a database copy.
Back to guides ↑Plex on this computer
Use this guide when Plex and MusicSeed run on the same computer.
Review the detected database
In the wizard's Review & initialize step, check that Plex library database is found. MusicSeed checks common macOS and Linux Plex locations automatically.
Supply a path if it was not found
In Finish your setup, leave Plex is on another machine (fetch the database over SSH) unchecked. Set Plex database path to the full path of
com.plexapp.plugins.library.dbin Plex'sPlug-in Support/Databasesfolder. The user running MusicSeed must be able to read it.On macOS, start in
~/Library/Application Support/Plex Media Server/. On Linux, check your Plex installation's data directory.Save and check the results
Choose Save & re-check. For sonic similarity, the companion
com.plexapp.plugins.library.blobs.dbshould be beside the library database. You can import metadata even if the blobs file is missing.
Next: import your library.
Back to guides ↑Plex on a server or NAS
MusicSeed can fetch consistent database snapshots over SSH while Plex keeps running. You do not need to copy your music files.
Prepare the Plex host
Enable SSH on the server or NAS. Your SSH user needs permission to read Plex's databases and run commands. The remote host needs
python3with itssqlite3module and enough temporary disk space for backups of both databases. Allow space on the MusicSeed computer for the downloaded snapshots too.Find the directory containing
com.plexapp.plugins.library.dband, when available,com.plexapp.plugins.library.blobs.db. For Plex in a container, use the path visible to your SSH session on the host.Verify SSH access from the MusicSeed computer
Replace the example user, host, and port below. Run this as the same local OS user who runs MusicSeed. Verify the server fingerprint through a trusted channel before accepting it; this records the host in
~/.ssh/known_hosts.ssh -p 22 your-user@nas.localIn that remote session, check Python's SQLite support, then return to your computer:
python3 -c 'import sqlite3; print(sqlite3.sqlite_version)' exitConfigure the remote database source
Connect to Plex first. In Review & initialize → Finish your setup, check Plex is on another machine (fetch the database over SSH). Enter an SSH target using this format:
your-user@nas.local:/path/to/Plex Media Server/Plug-in Support/DatabasesReplace the path with the actual directory on the remote host, not a database filename. Paste it without surrounding quotes, even when it contains spaces. Use the actual hostname; MusicSeed does not read aliases from
~/.ssh/config.Set SSH port if it is not 22. Use SSH password for password authentication. If no password is saved, MusicSeed uses standard SSH keys or your SSH agent. Leaving the password field blank keeps any previously saved password.
Re-check, then import
Choose Save & re-check. Once the library database is found, continue to initialize and import. The import creates and downloads fresh SQLite snapshots, including committed changes from Plex's WAL files. Later imports refresh the snapshots.
SSH works in a terminal, but the import fails?
Check the actual host and port, host trust for the user running MusicSeed, saved password or available keys, database read permissions, Python's SQLite support, and free space on both computers. Unknown or changed host keys must be verified before reconnecting.
If a backup times out, retry when Plex is less busy. A failed transfer keeps the last published snapshot. Do not copy live WAL or SHM files into the cache to repair it.
No SSH command access or Python on the host? Use a database copy.
Back to guides ↑Use a database copy
Use this route when you already have consistent Plex database backups, or cannot use SSH snapshots.
Prepare a consistent backup
Use a standalone SQLite backup of the library database and, if available, the blobs database. Avoid copying just the main database files while Plex is running: recent changes may still be in WAL files.
For a manual file copy, shut down Plex cleanly first, copy the databases once it has stopped, then restart Plex. Keep the originals on the server.
Place the files on the MusicSeed computer
Keep
com.plexapp.plugins.library.dband the optionalcom.plexapp.plugins.library.blobs.dbtogether in a readable folder. A mounted folder containing consistent backups also works. Paths refer to the computer running MusicSeed, even if you open the UI from another device.Select the local copy in setup
In Review & initialize → Finish your setup, leave the SSH checkbox unchecked. Enter the full local library file path in Plex database path and choose Save & re-check.
This is your import source. Keep MusicSeed database path separate; its default is
~/.local/share/musicseed/musicseed.db.Refresh the copy when your Plex library changes
After any running import finishes, supply a new consistent backup and run import again. MusicSeed cannot fetch updates automatically from a manually copied database.
Next: import your library.
Back to guides ↑Import and make a playlist
Create MusicSeed’s local database
Return to Setup, review the source and destination, and choose Initialize database if it is shown. This creates MusicSeed's own database; Plex's source databases are only read.
Import your library
Choose Start import and keep MusicSeed running while the job completes. If an import stops early, use Resume import; completed batches are kept. Wait for active jobs to finish before changing settings.
Add optional recommendation signals
You can skip enrichment to start listening sooner. To add popularity data later, configure a ListenBrainz user token or Spotify credentials in Settings, then start enrichment from Library.
For sonic similarity, Plex must already have analyzed your music. In Settings → Sonic vectors, choose Import from Plex to bring its existing analysis into MusicSeed.
Preview your first playlist
Open Recommend, choose seed tracks from your imported library, and review the suggestions. Use Playlists to preview a new playlist, then confirm the tracks before saving it to Plex. Saving requires a working Plex connection and token.
Keep MusicSeed running and return to its setup wizard at http://127.0.0.1:8789. If you chose a different port, use that port instead.