#spotify #playlist #playlists #music #organize #command-line

app sortify

A command line application to organize Spotify playlists

4 stable releases

1.0.3 Oct 12, 2024
1.0.2 Aug 8, 2024

#748 in Command line utilities

GPL-3.0-or-later

150KB
781 lines

Sortify

A command line application to organize Spotify playlists.

Using Sortify, you can choose a playlist as the source playlist, and then have the option to sort each track in it. When sorting, you choose destination playlists to add that track to. When sorted, tracks are added to the other playlists, removed from the source, and added to your liked songs.

Screenshot

This is mostly a personal project to help in the very specific way I use Spotify:

  • I have a playlist called buffer to which I add all songs I hear about
  • After a while of listening to buffer, I go through a bunch of the songs in it and for each either
    • Discard it if I didn't like it very much; or
    • Add it to my liked songs and to some playlist which matches its vibe.

So if you'd like to adhere to this Spoti-flow, this app should help out!

Usage

On first usage, the app should redirect you to log into Spotify. If that doesn't happen, follow the link shown. After logging in, paste the URL Spotify redirected you to into the app, and you should be logged in. Subsequent usages shouldn't need the same process.

After the initial log in, the app should be self-explanatory.

Dependencies (Linux only)

Sortify uses rodio to play audio, so it shares its dependencies on Linux.

[Install the] libasound2-dev package on Debian and Ubuntu distributions and alsa-lib-devel on Fedora.

Rodio has an issue that discusses this further.

Installation

Cargo

You must have Rust and Cargo installed.

# Install binary from crates.io
cargo install sortify

# Run the application 
sortify
# (if this doesn't work, your shell might not know to look for the binary in ~/.cargo/bin/)

Build from source

You must have Rust and Cargo installed.

# Clone the repository
git clone https://github.com/franciscunha/sortify

# Navigate to the project directory
cd sortify

# Build the project
cargo build --release

# Run the application
./target/release/sortify

Binary release

Will be added in the future.

Contributing

I wrote this over a week to learn the basics of Rust. There are likely many improvements to be made to the codebase, but since it's just a personal project I'm not setting up a robust contributing system. Let me know if you'd like to contribute to it and we can set something up!

Dependencies

~28–61MB
~1M SLoC