The librespot fork that spotatui plays Spotify with: the Spotify session and login, Spotify Connect, audio playback, and the calls spotatui makes to Spotify.
- spotatui needs APIs that upstream does not have. Examples: the reason a session ended, the play request id that
Player::loadreturns,SpClientcalls for the library, playlists, other Connect devices and Pathfinder search, and a session that reports a non-Premium account instead of exiting. Because of these, upstream librespot cannot replace this fork. - Spotify changes things. When playback breaks, a fix can ship in a spotatui release the same week.
The fork follows upstream: it merges upstream dev regularly. The changes made only here are the lines that end with Fork-only. in the changelog; SPOTATUI_FORK.md has the details.
The seven library crates are on crates.io as spotatui-librespot-*, all with the same version. Rename them in Cargo.toml so your code keeps the librespot_* imports:
librespot-core = { package = "spotatui-librespot-core", version = "=0.8.5" }The fork is built for spotatui. Other programs can use it, but its API changes whenever spotatui needs it to. Like librespot, it works only with Spotify Premium.
- Something wrong in spotatui: report it on the spotatui tracker, even when the cause may be here.
- A bug you know is in the library code: open an issue here.
- A security problem: follow spotatui's security policy.
Read CONTRIBUTING.md: the checks, the changelog rule, and how to test your change inside spotatui. A merged PR here counts as a spotatui contribution and puts you on spotatui's contributor list.
All credit for librespot goes to its authors and maintainers. The upstream README is in the repository root. MIT license, as upstream: see LICENSE.
This project is not affiliated with Spotify.