Spotify Playlist Maker
Automate Spotify playlist creation using Rust.
This project includes:
- A CLI tool (published on crates.io)
- A full Desktop UI built with Tauri
- OAuth2 authentication with Spotify
- Automated playlist creation from a song list
Overview
Spotify Playlist Maker allows you to:
- Authenticate securely with Spotify
- Search for songs
- Create playlists automatically
- Manage songs through a desktop interface
The project is structured as:
spotify-playlist-maker/
│
├── src/ # Core Spotify logic (library + CLI)
│
└── desktop/ # Tauri desktop application
CLI Installation (Crates.io)
If you only want the command-line tool:
cargo install spotify_playlist_maker
Verify installation:
spotify_playlist_maker --help
Spotify Developer Setup
- Visit: https://developer.spotify.com/dashboard
- Create a new application
- Add the following Redirect URI:
http://127.0.0.1:8888/callback
-
Copy your:
- Client ID
- Client Secret
CLI Configuration
Create a .env file in the directory where you will run the CLI:
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret
SPOTIFY_REDIRECT_URI=http://127.0.0.1:8888/callback
SPOTIFY_SCOPES=playlist-modify-public playlist-modify-private user-library-read
Do not wrap values in quotes.
Running the CLI
From the directory containing .env:
spotify_playlist_maker
You will:
- Receive an authorization URL
- Open it in your browser
- Approve access
- The playlist will be created automatically
Desktop Application (Tauri)
The desktop UI is not included in the crates.io binary. It requires cloning the repository.
Clone the project:
git clone https://github.com/SkyeVault/spotify-playlist-maker.git
cd spotify-playlist-maker/desktop
Install Linux dependencies (Ubuntu/Debian):
sudo apt install \
libwebkit2gtk-4.1-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev
Run in development mode:
cargo tauri dev
The desktop app allows you to:
- Edit your song list
- Save songs locally
- Create playlists from the UI
Building the Desktop App for Distribution
From the desktop/ directory:
cargo tauri build
Production builds will be generated in:
desktop/src-tauri/target/release/bundle/
You can distribute the generated .deb, .AppImage, or other platform-specific packages.
Running from Source (CLI)
If you cloned the repository and want to run the CLI version:
cd spotify-playlist-maker
cargo run
Make sure .env exists in the project root.
Troubleshooting
Port 8888 Already in Use
If you see:
Address already in use
Run:
sudo ss -ltnp | grep ':8888'
sudo kill <pid>
Then try again.
Built With
- Rust
- rspotify
- tiny_http
- Tauri