Spotify for the terminal written in Rust πŸš€

Overview

Spotify TUI

Continuous Integration Crates.io

All Contributors

Follow Alexander Keliris (Rigellute)

A Spotify client for the terminal written in Rust.

Demo

The terminal in the demo above is using the Rigel theme.

Installation

The binary executable is spt.

Homebrew

For both macOS and Linux

brew install spotify-tui

To update, run

brew upgrade spotify-tui

Snap

For a system with Snap installed, run

snap install spt

The stable version will be installed for you automatically.

If you want to install the nightly build, run

snap install spt --edge

AUR

For those on Arch Linux you can find the package on AUR here. If however you're using an AUR helper you can install directly from that, for example (in the case of yay), run

yay -S spotify-tui

Nix

Available as the package spotify-tui. To install run:

nix-env -iA nixpkgs.spotify-tui

Where nixpkgs is the channel name in your configuration. For a more up-to-date installation, use the unstable channel. It is also possible to add the package to environment.systemPackages (for NixOS), or home.packages when using home-manager.

Void Linux

Available on the official repositories. To install, run

sudo xbps-install -Su spotify-tui

Fedora/CentOS

Available on the Copr repositories. To install, run

sudo dnf copr enable atim/spotify-tui -y && sudo dnf install spotify-tui

Cargo

Use this option if your architecture is not supported by the pre-built binaries found on the releases page.

First, install Rust (using the recommended rustup installation method) and then

cargo install spotify-tui

This method will build the binary from source.

To update, run the same command again.

Note on Linux

For compilation on Linux the development packages for libssl are required. For basic installation instructions, see install OpenSSL. In order to locate dependencies, the compilation also requires pkg-config to be installed.

If you are using the Windows Subsystem for Linux, you'll need to install additional dependencies.

Windows 10

Scoop installer

First, make sure scoop installer is on your windows box, for instruction please visit scoop.sh

Then open powershell and run following two commands:

scoop bucket add scoop-bucket https://github.com/Rigellute/scoop-bucket
scoop install spotify-tui

After that program is available as: spt or spt.exe

Manual

  1. Download the latest binary for your OS.
  2. cd to the file you just downloaded and unzip
  3. cd to spotify-tui and run with ./spt

Connecting to Spotify’s API

spotify-tui needs to connect to Spotify’s API in order to find music by name, play tracks etc.

Instructions on how to set this up will be shown when you first run the app.

But here they are again:

  1. Go to the Spotify dashboard
  2. Click Create an app
    • You now can see your Client ID and Client Secret
  3. Now click Edit Settings
  4. Add http://localhost:8888/callback to the Redirect URIs
  5. Scroll down and click Save
  6. You are now ready to authenticate with Spotify!
  7. Go back to the terminal
  8. Run spt
  9. Enter your Client ID
  10. Enter your Client Secret
  11. Press enter to confirm the default port (8888) or enter a custom port
  12. You will be redirected to an official Spotify webpage to ask you for permissions.
  13. After accepting the permissions, you'll be redirected to localhost. If all goes well, the redirect URL will be parsed automatically and now you're done. If the local webserver fails for some reason you'll be redirected to a blank webpage that might say something like "Connection Refused" since no server is running. Regardless, copy the URL and paste into the prompt in the terminal.

And now you are ready to use the spotify-tui πŸŽ‰

You can edit the config at anytime at ${HOME}/.config/spotify-tui/client.yml.

Usage

The binary is named spt.

Running spt with no arguments will bring up the UI. Press ? to bring up a help menu that shows currently implemented key events and their actions. There is also a CLI that is able to do most of the stuff the UI does. Use spt --help to learn more.

Here are some example to get you excited.

spt --completions zsh # Prints shell completions for zsh to stdout (bash, power-shell and more are supported)

spt play --name "Your Playlist" --playlist --random # Plays a random song from "Your Playlist"
spt play --name "A cool song" --track # Plays 'A cool song'

spt playback --like --shuffle # Likes the current song and toggles shuffle mode
spt playback --toggle # Plays/pauses the current playback

spt list --liked --limit 50 # See your liked songs (50 is the max limit)

# Looks for 'An even cooler song' and gives you the '{name} from {album}' of up to 30 matches
spt search "An even cooler song" --tracks --format "%t from %b" --limit 30

Configuration

A configuration file is located at ${HOME}/.config/spotify-tui/config.yml, for snap ${HOME}/snap/spt/current/.config/spotify-tui/config.yml (not to be confused with client.yml which handles spotify authentication)

The following is a sample config.yml file:

# Sample config file

# The theme colours can be an rgb string of the form "255, 255, 255" or a string that references the colours from your terminal theme: Reset, Black, Red, Green, Yellow, Blue, Magenta, Cyan, Gray, DarkGray, LightRed, LightGreen, LightYellow, LightBlue, LightMagenta, LightCyan, White.
theme:
  active: Cyan # current playing song in list
  banner: LightCyan # the "spotify-tui" banner on launch
  error_border: Red # error dialog border
  error_text: LightRed # error message text (e.g. "Spotify API reported error 404")
  hint: Yellow # hint text in errors
  hovered: Magenta # hovered pane border
  inactive: Gray # borders of inactive panes
  playbar_background: Black # background of progress bar
  playbar_progress: LightCyan # filled-in part of the progress bar
  playbar_progress_text: Cyan # song length and time played/left indicator in the progress bar
  playbar_text: White # artist name in player pane
  selected: LightCyan # a) selected pane border, b) hovered item in list, & c) track title in player
  text: "255, 255, 255" # text in panes
  header: White # header text in panes (e.g. 'Title', 'Artist', etc.)

behavior:
  seek_milliseconds: 5000
  volume_increment: 10
  # The lower the number the higher the "frames per second". You can decrease this number so that the audio visualisation is smoother but this can be expensive!
  tick_rate_milliseconds: 250
  # Enable text emphasis (typically italic/bold text styling). Disabling this might be important if the terminal config is otherwise restricted and rendering text escapes interferes with the UI.
  enable_text_emphasis: true
  # Controls whether to show a loading indicator in the top right of the UI whenever communicating with Spotify API
  show_loading_indicator: true
  # Determines the text icon to display next to "liked" Spotify items, such as
  # liked songs and albums, or followed artists. Can be any length string.
  # These icons require a patched nerd font.
  liked_icon: β™₯
  shuffle_icon: πŸ”€
  repeat_track_icon: πŸ”‚
  repeat_context_icon: πŸ”
  playing_icon: β–Ά
  paused_icon: ⏸

keybindings:
  # Key stroke can be used if it only uses two keys:
  # ctrl-q works,
  # ctrl-alt-q doesn't.
  back: "ctrl-q"

  jump_to_album: "a"

  # Shift modifiers use a capital letter (also applies with other modifier keys
  # like ctrl-A)
  jump_to_artist_album: "A"

  manage_devices: "d"
  decrease_volume: "-"
  increase_volume: "+"
  toggle_playback: " "
  seek_backwards: "<"
  seek_forwards: ">"
  next_track: "n"
  previous_track: "p"
  copy_song_url: "c"
  copy_album_url: "C"
  help: "?"
  shuffle: "s"
  repeat: "r"
  search: "/"
  audio_analysis: "v"
  jump_to_context: "o"
  basic_view: "B"
  add_item_to_queue: "z"

Limitations

This app uses the Web API from Spotify, which doesn't handle streaming itself. So you'll need either an official Spotify client open or a lighter weight alternative such as spotifyd.

If you want to play tracks, Spotify requires that you have a Premium account.

Using with spotifyd

Follow the spotifyd documentation to get set up.

After that there is not much to it.

  1. Start running the spotifyd daemon.
  2. Start up spt
  3. Press d to go to the device selection menu and the spotifyd "device" should be there - if not check these docs

Libraries used

Development

  1. Install OpenSSL
  2. Install Rust
  3. Install xorg-dev (required for clipboard support)
  4. Clone or fork this repo and cd to it
  5. And then cargo run

Windows Subsystem for Linux

You might get a linking error. If so, you'll probably need to install additional dependencies required by the clipboard package

sudo apt-get install -y -qq pkg-config libssl-dev libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev

Contributors

Thanks goes to these wonderful people (emoji key):


Alexander Keliris

πŸ’» πŸ“– 🎨 πŸ“ πŸ€” πŸš‡ 🚧 πŸ“¦ πŸ‘€

Mickael Marques

πŸ’΅

Grzegorz Koperwas

πŸ“–

Austin Gassert

πŸ’»

Calen Robinette

πŸ’»

M*C*O

πŸš‡

Andrew Chin

πŸ’»

Sam Naser

πŸ’»

Micha

πŸ’»

neriglissar

πŸ’»

Timon

πŸ’»

echoSayonara

πŸ’»

D-Nice

πŸ“– πŸš‡

Grzegorz Pawlik

πŸ’»

Lennart Bernhardt

πŸ’»

Arnaud Lefebvre

πŸ’»

tem1029

πŸ’»

Peter K. Moss

πŸ’»

Geoff Shannon

πŸ’»

Zachary Mayhew

πŸ’»

jfaltis

πŸ’»

Marcel Schramm

πŸ“–

Fangyi Zhou

πŸ’»

Max

πŸ’»

Sven van der Vlist

πŸ’»

jacobchrismarsh

πŸ’»

Nils Rauch

πŸ’»

Nick Stockton

πŸ’» πŸ› 🚧 πŸ’¬ πŸ“–

Stuart Hinson

πŸ’»

Sam Calvert

πŸ’» πŸ“–

Jeroen Wijenbergh

πŸ“–

Kimberley Cook

πŸ“–

Audrey Baxter

πŸ’»

Norman

πŸ“–

Peter Maatman

πŸ’»

AlexandreS

πŸ’»

Finn Vos

πŸ’»

Carlos Hernandez

πŸ“¦

Pedro Alves

πŸ’»

jtagcat

πŸ“–

Benjamin Kitor

πŸ’»

AleΕ‘ Najmann

πŸ“– πŸ“¦

Jeremy Stucki

πŸ’»

(´⌣`ΚƒΖͺ)

πŸ’»

Artem Polishchuk

πŸ“¦

Chris Sosnin

πŸ’»

Ben Buhse

πŸ“–

Sean Li

πŸ’»

TimotheeGerber

πŸ’» πŸ“–

Ferdinand Ratajczak

πŸ’»

Sheel Choksi

πŸ’»

Michael Hellwig

πŸ“–

Oliver Daniel

πŸ’»

Drew Fisher

πŸ’»

ncoder-1

πŸ“–

Macguire Rintoul

πŸ“–

Ricardo Holguin

πŸ’»

Keisuke Toyota

πŸ’»

Craig Astill

πŸ’»

Onielfa

πŸ’»

usrme

πŸ“–

Sergey A.

πŸ’»

Hideyuki Okada

πŸ’»

kepae

πŸ’» πŸ“–

Γ‰rico Nogueira Rolim

πŸ’»

Alexander Meinhardt Scheurer

πŸ’»

OndΕ™ej KinΕ‘t

πŸ’»

Kryan90

πŸ“–

n-ivanov

πŸ’»

bi1yeu

πŸ’» πŸ“–

May

πŸ’»

Bruno A. MuciΓ±o

πŸ’»

Finn Hediger

πŸ’»

dp304

πŸ’»

Marco Micera

πŸ“–

Marco Ieni

πŸš‡

ArtΓΊr KovΓ‘cs

πŸ’»

Antony Kellermann

πŸ’»

Rasmus Pedersen

πŸ’»

noir-Z

πŸ“–

David Bailey

πŸ“–

This project follows the all-contributors specification. Contributions of any kind welcome!

Roadmap

The goal is to eventually implement almost every Spotify feature.

High-level requirements yet to be implemented

  • Add songs to a playlist
  • Be able to scroll through result pages in every view

This table shows all that is possible with the Spotify API, what is implemented already, and whether that is essential.

API method Implemented yet? Explanation Essential?
track No returns a single track given the track's ID, URI or URL No
tracks No returns a list of tracks given a list of track IDs, URIs, or URLs No
artist No returns a single artist given the artist's ID, URI or URL Yes
artists No returns a list of artists given the artist IDs, URIs, or URLs No
artist_albums Yes Get Spotify catalog information about an artist's albums Yes
artist_top_tracks Yes Get Spotify catalog information about an artist's top 10 tracks by country. Yes
artist_related_artists Yes Get Spotify catalog information about artists similar to an identified artist. Similarity is based on analysis of the Spotify community's listening history. Yes
album Yes returns a single album given the album's ID, URIs or URL Yes
albums No returns a list of albums given the album IDs, URIs, or URLs No
search_album Yes Search album based on query Yes
search_artist Yes Search artist based on query Yes
search_track Yes Search track based on query Yes
search_playlist Yes Search playlist based on query Yes
album_track Yes Get Spotify catalog information about an album's tracks Yes
user No Gets basic profile information about a Spotify User No
playlist Yes Get full details about Spotify playlist Yes
current_user_playlists Yes Get current user playlists without required getting his profile Yes
user_playlists No Gets playlists of a user No
user_playlist No Gets playlist of a user No
user_playlist_tracks Yes Get full details of the tracks of a playlist owned by a user Yes
user_playlist_create No Creates a playlist for a user Yes
user_playlist_change_detail No Changes a playlist's name and/or public/private state Yes
user_playlist_unfollow Yes Unfollows (deletes) a playlist for a user Yes
user_playlist_add_track No Adds tracks to a playlist Yes
user_playlist_replace_track No Replace all tracks in a playlist No
user_playlist_recorder_tracks No Reorder tracks in a playlist No
user_playlist_remove_all_occurrences_of_track No Removes all occurrences of the given tracks from the given playlist No
user_playlist_remove_specific_occurrenes_of_track No Removes all occurrences of the given tracks from the given playlist No
user_playlist_follow_playlist Yes Add the current authenticated user as a follower of a playlist. Yes
user_playlist_check_follow No Check to see if the given users are following the given playlist Yes
me No Get detailed profile information about the current user. Yes
current_user No Alias for me Yes
current_user_playing_track Yes Get information about the current users currently playing track. Yes
current_user_saved_albums Yes Gets a list of the albums saved in the current authorized user's "Your Music" library Yes
current_user_saved_tracks Yes Gets the user's saved tracks or "Liked Songs" Yes
current_user_followed_artists Yes Gets a list of the artists followed by the current authorized user Yes
current_user_saved_tracks_delete Yes Remove one or more tracks from the current user's "Your Music" library. Yes
current_user_saved_tracks_contain No Check if one or more tracks is already saved in the current Spotify user’s β€œYour Music” library. Yes
current_user_saved_tracks_add Yes Save one or more tracks to the current user's "Your Music" library. Yes
current_user_top_artists No Get the current user's top artists Yes
current_user_top_tracks No Get the current user's top tracks Yes
current_user_recently_played Yes Get the current user's recently played tracks Yes
current_user_saved_albums_add Yes Add one or more albums to the current user's "Your Music" library. Yes
current_user_saved_albums_delete Yes Remove one or more albums from the current user's "Your Music" library. Yes
user_follow_artists Yes Follow one or more artists Yes
user_unfollow_artists Yes Unfollow one or more artists Yes
user_follow_users No Follow one or more users No
user_unfollow_users No Unfollow one or more users No
featured_playlists No Get a list of Spotify featured playlists Yes
new_releases No Get a list of new album releases featured in Spotify Yes
categories No Get a list of categories used to tag items in Spotify Yes
recommendations Yes Get Recommendations Based on Seeds Yes
audio_features No Get audio features for a track No
audios_features No Get Audio Features for Several Tracks No
audio_analysis Yes Get Audio Analysis for a Track Yes
device Yes Get a User’s Available Devices Yes
current_playback Yes Get Information About The User’s Current Playback Yes
current_playing No Get the User’s Currently Playing Track No
transfer_playback Yes Transfer a User’s Playback Yes
start_playback Yes Start/Resume a User’s Playback Yes
pause_playback Yes Pause a User’s Playback Yes
next_track Yes Skip User’s Playback To Next Track Yes
previous_track Yes Skip User’s Playback To Previous Track Yes
seek_track Yes Seek To Position In Currently Playing Track Yes
repeat Yes Set Repeat Mode On User’s Playback Yes
volume Yes Set Volume For User’s Playback Yes
shuffle Yes Toggle Shuffle For User’s Playback Yes
Issues
  • Exceeded API request limit

    Exceeded API request limit

    I keep getting

    Error: Exceeded API request limit - please wait x seconds 
    

    when interacting with the tui or through spt pb. Am I doing something wrong?

    opened by AckslD 27
  • no device is found

    no device is found

    installed spotifyd and spt. run spotifyd

     ps -ef | grep spotify
    jose     11868     1  0 12:40 ?        00:00:00 spotifyd
    jose     11885 11656  0 12:40 pts/4    00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn spotify
    

    run spt (installed via snap)

    2020-02-24_12-42

    opened by verajosemanuel 20
  • Extremely slow

    Extremely slow

    The app barely responds for me. I'll type ? and it will take a minute or more before anything happens. It seems to work, e.g. connect to Spotify and has all my music, but it is delayed heavily with every action. I'm not sure if this is known, it might be the same bug as #92 but for me it was never "unfrozen".

    I got spotifyd and spotify-tui from the AUR.

    Versions: Operating System: Arch Linux Kernel: Linux 5.4.8-arch1-1 spotifyd 0.2.20 spotify-tui 0.11.0

    help wanted 
    opened by gcantieni 15
  • Provide a cli arg based interface

    Provide a cli arg based interface

    I want to trigger commands that goes through spotify-tui but doesn't open the UI. For starters support for search/play/pause through command line would be really good to have.

    spt -s --search "a man of wire" // returns top n results spt -p --play "song name" // based on closest match, start playing this song spt -t --toggle // toggle play pause

    opened by clearnote01 14
  • Enable github workflow for snaps.

    Enable github workflow for snaps.

    Please add secrets to repo before accepting pull request. See email. If you have any question please fee free to contact me via email.

    opened by hurricanehrndz 14
  • thread '<unnamed>' panicked at 'called `Result::unwrap()`

    thread '' panicked at 'called `Result::unwrap()`

    thread '' panicked at 'called Result::unwrap() on an Err value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/libcore/result.rs:999:5 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace.

    opened by tamert 13
  • Using cossterm for windows support.

    Using cossterm for windows support.

    Fixes: https://github.com/Rigellute/spotify-tui/issues/69

    This app can support windows very easily. TUI has the crossterm backend which is made to support cross-platform.

    I tried to move this library over to crossterm just to experiment to how easy it was to swap termion. It was very easy. Please have a look at this fork.

    Although...

    Their implementation uses crossterm 0.9 and 0.12 is already out and they didn't even release my latest patch - done a few months ago - with 0.10 yet. This old version of crossterm has some problems and ideally it should use 0.12 it's way better performance-wise as well.

    However, I encountered problems:

    -. KeyEvent (replacement for Key) does not implement Copy however, this is going to be fixed in 0.12.2.

    • TUI uses crossterm ^0.9, therefore, use crossterm ^12 because TUI requires types from ^0.9
    • You probably don't want to have a dependency to git branch of TUI

    The real blocker here was that crossterm::KeyEvent did not implement Copy and therefore it has to be wrapped in order for it to be used.

    Introduced:

    1. Key enum, this enum is used in the library and should be used instead of the termion::Key or crossterm::KeyEvent or others toughtout the crates. You probably don't want to depend on a certain library restricted to linux but have a small abstraction so that crossterm, for example, can be implemented with more ease.
    2. CrosstermBackend this uses crossterm for its implementation and is crossplatform.

    Qustions:

    This is just an experiment because I wanted to listen to Spotify on windows, however, there are some concerns with git dependencies and old versions of crossterm. Do you think crossterm should be behind a feature flag, the only supported implementation, or not used at all?

    opened by TimonPost 13
  • Add to Queue command

    Add to Queue command

    Would it be possible to add a command for "Add to Queue"? I use this feature all the time on my Android phone. I love spotify-tui, thanks for allowing me to live in my terminal even more!

    opened by mikeboiko 11
  • Simple change of layout

    Simple change of layout

    draw_input_and_help_box moved to draw_user_block so the search and help bar is reduced and the main panel is adjusted to fill that space. The constraints of size of both functions were tweaked as well to better fit the new layout.

    I feel this new layout does a better job at taking advantage of space as the strings we search are usually not that long and after some use of the client the help bar becomes more or less irrelevant.

    Here some screenshots

    Fullscreen in a 1080p monitor Screenshot_full

    Halfscreen in a 1080p monitor Screenshot_half

    Current layout for comparison old

    opened by mucinoab 11
  • Playlist window doesn't show all songs

    Playlist window doesn't show all songs

    The playlist window only shows about 40 songs no matter how resize the terminal and /or restart. I did have a problem when I first tried spotify-tui where is wouldn't show all my playlists but that resolved itself after a few restarts.

    I don't know if the playlists get paged but Ctrl-u/d doesn't do anything.

    Tried in UXTerm, URXVT and ST with the same behaviour.

    Making the terminal smaller actually shows less songs, by that i mean I scroll to the bottom of the playlist listing (showing 15 songs instead of 40) and it will jump back to the first song instead of still scrolling down. Making the terminal larger that the UI just shows the 40 ish songs with a gap at the bottom but still goes to the top once I scroll to the bottom song.

    Spotify says there's 147 songs. It happens with all long playlists. Am i missing a command to show the next set of songs?

    2019-10-26-100110_3840x1200_scrot

    opened by GarthTheChicken 11
  • UI Regression: Jump to Search results

    UI Regression: Jump to Search results

    Songs section does not activate if it was activated before search

    Steps to repro

    1. /
    2. Search for something and hit enter
    3. Songs section activates
    4. / again. (Notice at this point, the songs section does not go out of focus)
    5. Search for something else and hit enter
    6. Songs section does not activate.
    opened by DhruvaSambrani 1
  • Add CI caching to make it faster

    Add CI caching to make it faster

    null

    opened by Milo123459 0
  • Snap does not install the latest stable

    Snap does not install the latest stable

    it is currently not possible to install 0.25.0 through snap, only 0.24.0.

    (and I would really like to have #852 please :) )

    opened by mherczeg 0
  • Progress bar

    Progress bar "overlapping" track length

    I've noticed since I've updated the track length indicator no longer changes its color when intercepting the progress bar. I used the word overlapping in the title to try to explain it. image

    opened by MCT32 1
  • Fixed: failed Spotify’s API setup -  Invalid client: Invalid URI

    Fixed: failed Spotify’s API setup - Invalid client: Invalid URI

    Hi there πŸ‘‹

    I got stucked during configuration process. I was basically copy-pasting the documentation, but it took me about 2 hours to pass the whitelisting tui's url. What I've noted is:

    • when I clicked the generated url to open it in the browser it was it was incomplete in the browsers tab, like cut in half. This was seen on Visual Studio Code integrated terminal on Mac OS 10.15, fixed when I've switched to different terminal emulator (iTerm2) it worked fine
    • other API data (client_id, client_secret) was fine
    • generated callback url contains the redirect_uri parameter pointing to http://localhost:8888

    Solved by whitelisting both http://localhost:8888 and http://localhost:8888/, worked as a charm.

    Hope it save some of your time, gl

    tui installed via brew on OSX 10.15.7

    opened by aleksanderwalczuk 0
  • not all Playlists showing up in the playlist tab

    not all Playlists showing up in the playlist tab

    only 16 playlists are showing up in the playlist tab and i cannot scroll down or up

    opened by nicrieser 0
  • "D" to delete playlist does not work

    Pressing shift+D according to the keybindings shown in the ? menu does not successfully delete a playlist.

    To reproduce:

    1. Start spt
    2. Enter the Playlists section
    3. Select a playlist
    4. Press shift+D to delete the selected playlist
    5. Observe that nothing happens

    I'm running spt 0.25.0 on Arch Linux with i3 wm, tried in both tmux and in a straight xfce4-terminal.

    opened by tommyalatalo 0
  • API response: convert result failed, progress_ms is negative instead of u32

    API response: convert result failed, progress_ms is negative instead of u32

    spotify-tui 0.25.0-1 spotifyd 0.3.2-1

    When I launch `spt' and try to advance a track or change to a new song I'm getting this error. After pressing 'q' the problem goes away for a few songs and then starts happening again. If '^C' is used instead of 'q' the problem starts again straight after launching spotify-tui again. Not sure if this is something I've done or an issue with spt/spotifyd, etc.

    Spotifyd_SPT_Issue

    opened by HoneyTubes 0
  • client.yml resets

    client.yml resets

    client.yml keeps resetting to default from time to time, deleting all modifications done to it.

    opened by Katzenwerfer 0
  • increase limit beyond 50

    increase limit beyond 50

    Is there a reason why tracklists are limited to 50? Many playlists and some albums/collections have many more than 50 entries.

    opened by human-blip 2
Releases(v0.25.0)
Owner
Alexander Keliris
Author of spotify-tui. Lover of Rust πŸš€, vim, Javascript, Typescript, React, React Native, GraphQL, ReasonML, AWS, Serverless, Postgres and more!
Alexander Keliris
A spotify daemon

Spotifyd An open source Spotify client running as a UNIX daemon. Spotifyd streams music just like the official client, but is more lightweight and sup

null 5.3k Sep 17, 2021
Gtk/Rust native Spotify client for the GNOME desktop.

Gtk/Rust native Spotify client for the GNOME desktop.

Alexandre Trendel 1.1k Sep 20, 2021
A song analysis library for making playlists

bliss-rs is the Rust improvement of bliss, a library used to make playlists by analyzing songs, and computing distance between them.

null 22 Sep 18, 2021
Your musical pokedex, Plex for music

Musidex Your musical pokedex, Plex for music. Add songs from youtube videos or youtube playlist to your library, or import them from your local files.

PΓ’ris DOUADY 10 Sep 6, 2021
Procedural engine sound generator controlled via GUI or CLI

enginesound GUI Application used to generate purely synthetic engine sounds with advanced options written in Rust loosely based on this paper Reading

null 116 Sep 18, 2021
A music theory guide written in Rust.

Rust Music Theory A library and executable that provides programmatic implementation of the basis of the music theory. Table of Contents Overview Usag

Ozan Kaşıkçı 436 Sep 16, 2021
Implements the free and open audio codec Opus in Rust.

opus-native Overview Implements the free and open audio codec Opus in Rust. Status This crate is under heavy development. Most functionality is not wo

Nils Hasenbanck 6 Jul 26, 2021
The open source musician's digital music stand

DiNoScore* A digital music stand written with GTK in Rust using WoAB. Includes an editor to import your sheet. Touch-friendly thanks to Libhandy. Ever

null 4 Aug 23, 2021
PortAudio bindings and wrappers for Rust.

rust-portaudio PortAudio bindings and wrappers for Rust. PortAudio is a free, cross-platform, open-source, audio I/O library. rust-portaudio is still

null 293 Sep 12, 2021
A rust binding for the FMOD library

rust-fmod This is a rust binding for FMOD, the library developped by FIRELIGHT TECHNOLOGIES. FMOD website : www.fmod.org You can also find it on crate

Guillaume Gomez 51 Sep 15, 2021
A Rust environment for sound synthesis and algorithmic composition.

Sorceress A Rust environment for sound synthesis and algorithmic composition, powered by SuperCollider. Overview Sorceress is a Rust crate that provid

Wesley Merkel 59 Aug 15, 2021
Rust bindings for the soloud audio engine library

soloud-rs A crossplatform Rust bindings for the soloud audio engine library. Supported formats: wav, mp3, ogg, flac. The library also comes with a spe

Mohammed Alyousef 27 Jul 4, 2021
Cross-platform audio I/O library in pure Rust

CPAL - Cross-Platform Audio Library Low-level library for audio input and output in pure Rust. This library currently supports the following: Enumerat

null 1.2k Sep 16, 2021
Easy Api in Rust to play Sounds

ears ears is a simple library to play sounds and music in Rust. Provides an access to the OpenAL spatialization functionality in a simple way. Accepts

Jan Niklas Hasse 77 Jun 10, 2021
Idiomatic Rust bindings for OpenAL 1.1 and extensions (including EFX).

alto alto provides idiomatic Rust bindings for OpenAL 1.1 and extensions (including EFX). WARNING Because Alto interacts with global C state via dynam

null 77 Jul 15, 2021
Rust audio playback library

Audio playback library Rust playback library. Playback is handled by cpal. MP3 decoding is handled by minimp3. WAV decoding is handled by hound. Vorbi

null 791 Sep 8, 2021
A collection of filters for real-time audio processing

Audio Filters A collection of filters for real-time audio processing Feature Progress #![no_std] (via libm) f32 & f64 capable (via num-traits) SIMD Do

null 10 Aug 8, 2021
A discord.py experimental extension for audio recording

discord-ext-audiorec This project is currently under development. We do not guarantee it works.

Tomoya Ishii 4 Sep 2, 2021
mpc, but implemented in Rust.

rsmpc mpc, but implemented in Rust. Note: This is not meant to be a direct implementation, there will be some differences. For example: I moved the op

Cpt.Howdy 8 Jun 8, 2021