Transfer your iPod music library to Spotify playlists easily. This tool scans your iPod for music files, extracts their metadata, and creates a matching Spotify playlist.
- 🎵 Automatic iPod detection and music scanning
- 📝 Smart metadata extraction from audio files
- 🔍 Intelligent title/artist parsing for files with combined metadata
- 🎯 Fuzzy matching with Spotify tracks
- 📊 Detailed upload reports and statistics
- ⚡ Batch processing for faster uploads
- 🔄 Resume capability with existing scans
- 🔎 Metadata validation without uploading
- Python 3.8 or higher
- Poetry (Python package manager)
- A Spotify account
- An iPod connected in disk mode
-
Clone the repository:
git clone https://github.com/jonathan/ipod-to-spotify.git cd ipod-to-spotify
-
Install dependencies using Poetry:
poetry install
-
Set up your Spotify credentials:
- Go to Spotify Developer Dashboard
- Create a new application
- Get your Client ID and Client Secret
- Add
http://127.0.0.1:8888/callback
to your app's Redirect URIs
-
Create a
.env
file in the project root with your Spotify credentials:SPOTIFY_CLIENT_ID=your_client_id_here SPOTIFY_CLIENT_SECRET=your_client_secret_here SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888/callback
-
Connect your iPod in disk mode
-
Run the transfer script:
poetry run start
-
Choose from the available options:
- Use existing song data: Upload previously scanned songs to Spotify
- Check metadata only: Validate song metadata without uploading
- Rescan iPod: Perform a fresh scan of your iPod
- Exit: Close the application
The tool now includes a metadata validation feature that helps identify problematic files before uploading to Spotify. When using "Check metadata only":
- Scans all songs for missing or invalid metadata
- Identifies songs with unknown titles or artists
- Shows the raw file title for comparison
- Saves detailed results to
metadata_check_results.json
- Helps troubleshoot why certain songs might fail to upload
ipod_songs.json
: Cached song metadata from iPodupload_results.json
: Detailed upload results and statisticsmetadata_check_results.json
: Metadata validation resultsplaylist_cache.json
: Spotify playlist information.cache
: Spotify authentication cache
Use poetry run cleanup
to remove all cache files and start fresh.
- iPod Detection: The tool automatically looks for an iPod mounted in disk mode
- Music Scanning: Scans the iPod's music directory for audio files
- Metadata Extraction: Reads metadata from each audio file
- Smart Parsing: Handles various metadata formats and separators
- Metadata Validation: Checks for missing or invalid metadata
- Spotify Matching: Searches Spotify for matching tracks
- Playlist Creation: Creates or updates a Spotify playlist with found tracks
- Progress Tracking: Maintains logs of successful uploads and any issues
-
iPod Not Detected:
- Ensure iPod is connected and in disk mode
- Try manually entering the iPod path
-
Spotify Authentication Errors:
- Verify your credentials in
.env
file - Check that redirect URI matches your Spotify app settings
- Verify your credentials in
-
Missing Metadata:
- Use the "Check metadata only" option to identify problematic files
- Check
metadata_check_results.json
for detailed information - Common issues include:
- Missing artist information
- Unknown or malformed titles
- Incomplete metadata tags
-
Graphical User Interface:
- Modern, user-friendly interface
- Drag-and-drop functionality
- Visual progress indicators
- Interactive playlist management
- Real-time upload status
- Dark/light theme support
-
Enhanced Matching:
- Improved fuzzy matching algorithm
- Manual matching for unmatched songs
- Batch correction tools
-
Additional Features:
- Multiple playlist support
- Playlist organization options
- Cover art matching
- Export/import capabilities
- Backup functionality
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.