#spotify #applications #credentials #command #file #authenticate #quickly

app spotify-quickauth

Quickly authenticate librespot-based applications with Spotify

6 releases

0.1.6 Oct 7, 2024
0.1.5 Oct 6, 2024

#72 in Authentication

Download history 213/week @ 2024-10-01 144/week @ 2024-10-08 4/week @ 2024-10-15

295 downloads per month

MIT/Apache

29KB
207 lines

spotify-quickauth

Build Status Testing Status Crates.io Crates.io MSRV GitHub last commit

A simple CLI-based application for creating a credentials.json file, used by librespot derived applications, such as spotify-player, spotifyd, and raspotify.

  • One command, no compilation, all platforms (Windows, Linux, MacOS), ARM included
  • Automatically places configuration files
  • No dependencies, no installation, no fuss

Quickstart

You can run this application without installing anything by using the following commands.

curl -sSL https://xevion.github.io/spotify-quickauth/run.sh | sh -s --

The default invocation is likely fine for most users, it will try to understand the available paths for credentials.json to be written to, and allow you to select them.

Automatic detection is dependent on the related software being installed and/or relevant configuration files being present.

For Windows, you can paste this command into PowerShell:

iex (irm "https://xevion.github.io/spotify-quickauth/run.ps1")

Usage

This application is dead simple to use. Just run the command, and it'll tell you to connect to a fake 'device' in your Spotify interface.

You must be connected to the same network running spotify-quickauth, as the zeroconf technology does not work across networks nor proxies.

Once you connect, the credentials file will be created, and you'll be prompted to select which location(s) to place it in. Even if none of the relevant librespot applications are detected or installed, you can specify manual locations, or the current working directory.

Installation

Installation is not necessary to use this application, but if you're having trouble, want to compile it yourself, or are using it frequently, you might want to install it.

The scripts above can be given the -K or --keep flag to keep the downloaded binary. This will prevent repeated API calls to GitHub if you're using the script frequently within a short period.

Pre-built Binaries

Binaries are always available for download from the releases page, and they're the same ones used by the shell scripts above.

Currently, the following targets are available for download:

  • x64 Linux (MUSL) x86_64-unknown-linux-musl
  • ARM64 Linux (MUSL) aarch64-unknown-linux-musl
  • ARMv7 Linux armv7-unknown-linux-musleabihf
  • Intel MacOS x86_64-apple-darwin
  • Apple Silicon MacOS aarch64-apple-darwin
  • x64 Windows x86_64-pc-windows-msvc
  • ARM64 Windows aarch64-pc-windows-msvc

Please file an issue if you are on a platform that is not supported, or if you encounter issues with the binaries.

Via cargo-binstall

If the package cannot be found for your target or fails to be downloaded for any reason, cargo-binstall will automatically fall back to building the package from source.

cargo-binstall is a tool that allows you to install binaries from crates.io without needing to compile them yourself.

cargo binstall spotify-quickauth

If you're curious where the binary comes from, cargo-binstall will likely pull the binary directly from the latest release by this repository, selecting the most appropriate target for your host.

Manual Installation

If you'd like to use the shell script above to install the binary, you can use the -S/--stop flag to prevent the script from running the binary after downloading it. It implicitly applies the --keep flag too.

You'll need to move the binary yourself though:

curl -sSL https://xevion.github.io/spotify-quickauth/run.sh | sh -s -- -S
mv spotify-quickauth /usr/local/bin

Make sure your directory of choice is in your $PATH though!

Building from Source

Don't want to run my funky shell script? No problem! You can build the application from source easily.

  • You'll need cargo, the Rust build system and package manager. It's included with the Rust toolchain, which you can install from rustup.rs
  • This is an early project, so the minimum supported version of Rust is not known. I'm developing on 1.81.0 though.
git clone https://github.com/Xevion/spotify-quickauth.git
cd spotify-quickauth
cargo install --path .
spotify-quickauth --help

If you have any troubles building the project

  • Make sure you're using a target that's supported by the project (see above).
  • Certain targets may require specfic linkers. For example,

Dependencies

~15–25MB
~377K SLoC