pip install -r requirements.txtCopy env_example.txt to .env and fill in your credentials:
cp env_example.txt .envEdit .env with your actual Spotify API credentials:
SPOTIFY_CLIENT_ID: Your Spotify App Client IDSPOTIFY_CLIENT_SECRET: Your Spotify App Client SecretSPOTIFY_REDIRECT_URI: http://localhost:8000/callback (or your preferred URI)
- Go to Spotify Developer Dashboard
- Create a new app
- Add
http://localhost:8000/callbackto Redirect URIs - Copy Client ID and Client Secret to your
.envfile
Option A: One-time collection
python scripts/collect_data.pyOption B: Continuous scheduler (recommended)
python scripts/scheduler.pyThe scheduler will:
- Run initial data collection immediately
- Continue collecting data every 24 hours
- Log all activity to
sonic_sync.log
The system creates these tables:
users: Spotify user information and tokenstracks: Track metadata (name, artist, album, etc.)listening_history: When you listened to each trackaudio_features: Spotify's audio analysis features
- Recent Tracks: Fetches your last 50 played tracks
- Audio Features: Automatically gets mood/energy data for each track
- Time Segmentation: Categorizes listening by morning/afternoon/night
- Deduplication: Won't store duplicate listening records
OAuth Issues:
- Make sure your redirect URI matches exactly
- Check that your Spotify app is properly configured
Database Issues:
- SQLite database will be created automatically
- Check file permissions in your project directory
Rate Limiting:
- Spotify has API limits, but this shouldn't be an issue for personal use
- The system includes error handling for rate limits
Once you have data collecting, we can build:
- Time-of-day mood analysis
- Clustering algorithms
- GPT personality summaries
- Visualization dashboard