Automatically download all your liked songs on Spotify, without paying a dime.
- Automatically fetches and downloads your Spotify Liked Songs.
- Downloads audio from YouTube using
yt-dlp. - Fast, Concurrent Downloading: Uses multi-threading to download up to 8 songs simultaneously.
- Audio Normalization & Metadata: Embeds thumbnails, metadata, and normalizes audio volume using
ffmpeg. - Organized Storage: Stores downloaded MP3s logically in a
Songs/Artist/Album/folder structure on your desktop, and tracks progress in asongs.csvfile.
- The script uses the Spotify API to get all your Liked Songs.
- It checks against
songs.csvand existing files to prevent re-downloading. - New songs are searched on YouTube and downloaded concurrently in MP3 format using
yt-dlp. - The downloaded songs are saved, normalized, and tagged before being placed in the Songs folder on your desktop.
git clone https://github.com/aneeb02/SpotiFlopy.git
cd SpotiFlopyMake sure you have Python 3 installed. Then install the required packages:
pip install -r requirements.txtImportant: You also need to install ffmpeg on your system and ensure it's available in your system's PATH, as it is required for audio extraction, volume normalization, and metadata embedding.
- Create a
.envfile in the root directory of the project. - Add your Spotify API credentials in the
.envfile:
SPOTIPY_CLIENT_ID=your_spotify_client_id
SPOTIPY_CLIENT_SECRET=your_spotify_client_secret
SPOTIPY_REDIRECT_URI=http://localhost:8888/callback/python main.pyThe first time you run the script, it will open a browser for you to authenticate with Spotify. After that, it will handle token refreshes automatically.