Skip to content

TikkaMasala1/Navizzfixer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Navizzfixer

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.


Disclaimer

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.

How it Works

The script takes your Soundizz export and performs a "Clean & Search" logic:

  1. Stripping Metadata: It removes common suffixes from titles such as (feat. ...) or [with ...].
  2. API Search: It queries your Navidrome instance via the Subsonic API using the cleaned title and the primary artist.
  3. Smart Match: If a match is found in your local library, it grabs the internal Navidrome ID.
  4. Playlist Sync: It either creates a new playlist or appends the tracks to an existing one.
  5. 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.

Quick Start

1. Prerequisites

You’ll need Python and two specific libraries:

pip install pandas requests

2. Configuration

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

3. Run it

python navizzfixer.py

Features

  • 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.csv for 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages