A modern Spotify playlist synchronization tool with YouTube Music Premium support.
- Download and sync public Spotify playlists
- Modern GUI interface with PySide6 (Qt)
- YouTube Music Premium support (256kbps)
- Automatic playlist updates
- Multiple audio format support
- Selective playlist syncing with checkboxes
- Rate limit protection with automatic retries
- Persistent settings stored in JSON format
- Python 3.8+
- Spotify Developer Account (free)
- YouTube Music Premium subscription (optional, for 256kbps quality)
- Clone the repository:
git clone https://github.com/yourusername/spoti-sync.git
cd spoti-sync- Install dependencies:
pip install -r requirements.txt- Run the application:
python gui.py- Open the application and click the settings button (⚙)
- Click "Open Spotify Developer Dashboard"
- Create a new app:
- App name:
Spoti-Sync(or any name) - App description:
Personal playlist sync tool - Check "Web API" under APIs used
- App name:
- Copy your Client ID and Client Secret
- Enter them in the settings dialog
For 256kbps audio quality:
- Enable "YouTube Music Premium" in settings
- Either:
- Click your browser button to auto-extract cookies
- Or use "Get cookies.txt LOCALLY" extension and browse for the file
- Configure: Enter your Spotify credentials and username in settings
- Authenticate: The app will automatically connect when credentials are provided
- Select Playlists: Use checkboxes to select which playlists to sync
- Use "Select All" / "Deselect All" buttons for convenience
- Sync: Click "Start Sync" to download selected playlists
- Each playlist has a checkbox for selection
- Only checked playlists will be synced
- "Select All" and "Deselect All" buttons for batch operations
- Downloads run at maximum speed with no artificial delays
- Automatic retry on rate limit errors
- Configurable delays if needed (edit settings.json):
PLAYLIST_DELAY: seconds between playlists (default: 0)RATE_LIMIT_WAIT: seconds to wait on 429 errors (default: 0)
- Per-playlist error handling
- Automatic M4A format selection
- Bitrate disabled to preserve original 256kbps quality
- Cookie-based authentication for premium access
- All settings are stored in
settings.json - Settings persist between application sessions
- Automatic migration from older
.envformat if found
- Only public Spotify playlists can be accessed with Client Credentials authentication
- Playlists are downloaded to
~/Music/Spoti-Syncby default - The sync folder can be changed in settings
- Settings are saved in
settings.jsonin the application directory
- Ensure Client ID and Secret are correct
- Check that your Spotify username is entered correctly
- Make sure you're logged into YouTube Music in your browser
- Close your browser before attempting cookie extraction
- Use manual cookie export if automatic extraction fails
- The app handles rate limits automatically
- For large collections, consider syncing in smaller batches
This project is for personal use only. Please respect copyright laws and terms of service.