Navizzfixer is a Python utility designed to bridge the gap between Spotify and Navidrome when Soundizz fails to find a match due to minor title discrepancies (like those annoying "(feat. Artist)" tags). It searches your local library for the closest match and rebuilds your playlists directly in Navidrome.
This script was generated with the assistance of AI. It is provided "as-is" without warranty of any kind, express or implied. While designed to automate playlist matching, the user assumes all responsibility for any unintended data modifications, API rate-limiting issues, or library errors. Always back up your Navidrome database before running automation scripts against your production environment.
The script takes your Soundizz export and performs a "Clean & Search" logic:
- Stripping Metadata: It removes common suffixes from titles such as
(feat. ...)or[with ...]. - API Search: It queries your Navidrome instance via the Subsonic API using the cleaned title and the primary artist.
- Smart Match: If a match is found in your local library, it grabs the internal Navidrome ID.
- Playlist Sync: It either creates a new playlist or appends the tracks to an existing one.
- Audit Trail: Any songs that truly aren't on your server are exported to a "missing" CSV so you know what you need to go buy/download.
You’ll need Python and two specific libraries:
pip install pandas requestsOpen the script and update the CONFIGURATION block at the top:
CSV_FILE: The path to your Soundizz export (e.g.,results_In the Smoke.csv).PLAYLIST_NAME: The name of the playlist in Navidrome you want to target.
Then create a .env file and update the keys:
NAVIDROME_URL: Your server address (e.g.,http://192.168.1.10:4533).USERNAME/PASSWORD: Your Navidrome login.
python navizzfixer.py- Fuzzy Matching: Handles "Song Title (feat. 50 Cent)" vs "Song Title" effortlessly.
- Non-Destructive: Appends to existing playlists instead of overwriting them.
- Security: Uses Subsonic's token+salt authentication (MD5) so your password isn't sent in plain text.
- Gap Report: Generates
missing_[playlist_name]_from_navidrome.csvfor any tracks that actually don't exist in your library.
Note: This script communicates directly with your Navidrome server and does not require a Spotify Developer API key.