All Projects → kubukoz → spotify-next

kubukoz / spotify-next

Licence: other
Small CLI app for filtering out music on Spotify.

Programming Languages

scala
5932 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects
HTML
75241 projects

Projects that are alternatives of or similar to spotify-next

classy-optics
🔎 Source code shown at my talks at Scale by the Bay 2018 and Scalar 2019
Stars: ✭ 25 (-44.44%)
Mutual labels:  http4s, cats-effect, cats-mtl
tagless-final-jam
Workshop On Tagless Final Interpreters
Stars: ✭ 37 (-17.78%)
Mutual labels:  tagless-final, cats-effect
cats-helper
Helpers for cats & cats-effect
Stars: ✭ 19 (-57.78%)
Mutual labels:  tagless-final, cats-effect
influencer-stats
Playground for measuring performance of functional programming tools in Scala. Gathers statistics about videos.
Stars: ✭ 24 (-46.67%)
Mutual labels:  http4s, cats-effect
pfps-examples
🏮 Standalone examples shown in the book "Practical FP in Scala: A hands-on approach"
Stars: ✭ 167 (+271.11%)
Mutual labels:  cats-effect, cats-mtl
typelevel-stack.g8
📚 Unofficial Giter8 template for the Typelevel Stack (Http4s / Doobie / Circe / Cats Effect / Fs2) based on Cats v1.x.x
Stars: ✭ 63 (+40%)
Mutual labels:  http4s, cats-effect
telegram-bot-fs2
Example telegram bot implementation using fs2 and http4s client (no akka)
Stars: ✭ 41 (-8.89%)
Mutual labels:  http4s, tagless-final
pfhais
Source code of the book Pure functional HTTP APIs in Scala including a chapter about upgrading to Scala 3.
Stars: ✭ 48 (+6.67%)
Mutual labels:  http4s, cats-effect
scala-functional-programming-tutorial
Functional Programming in Scala Tutorial
Stars: ✭ 23 (-48.89%)
Mutual labels:  http4s, cats-effect
zio-http4s-example
For anyone who's struggling to put an http4s server together with ZIO
Stars: ✭ 19 (-57.78%)
Mutual labels:  http4s, cats-effect
tradeio
A disciplined way to purely functional domain models in Scala
Stars: ✭ 19 (-57.78%)
Mutual labels:  http4s, cats-effect
idealingua-v1
IdeaLingua RPC for Scala, TypeScript, C#, Go
Stars: ✭ 13 (-71.11%)
Mutual labels:  http4s, cats-effect
Cukatify
Cukatify is a music social media project
Stars: ✭ 21 (-53.33%)
Mutual labels:  spotify
flex-originals
🎧 A video and audio streaming web application
Stars: ✭ 36 (-20%)
Mutual labels:  spotify
Discord-Spotify-RPC
Spotify Rich Presence for Discord made in NodeJS
Stars: ✭ 48 (+6.67%)
Mutual labels:  spotify
spotify-song-recommender
A Spotify song recommendation engine built with the power of graph analytics.
Stars: ✭ 34 (-24.44%)
Mutual labels:  spotify
whichone
A personalised Spotify quiz based on the music you listen to
Stars: ✭ 14 (-68.89%)
Mutual labels:  spotify
winampify
⚡ A Spotify web client with an OS-looking interface and a reimplementation of the classic audio player Winamp.
Stars: ✭ 180 (+300%)
Mutual labels:  spotify
Lyricsx
🎶 Ultimate lyrics app for macOS.
Stars: ✭ 3,251 (+7124.44%)
Mutual labels:  spotify
Singlespotify
🎵 Create Spotify playlists based on one artist through the command line
Stars: ✭ 254 (+464.44%)
Mutual labels:  spotify

spotify-next

License

A small program making it easier to filter out music on Spotify.

asciicast

Installation

  1. Create an application in the Spotify API dashboard. Add a redirect URI pointing to http://localhost:4321/login. The port 4321 is configured in the .spotify-next.json config file (see usage).

  2. If you have coursier, this will install the app in your current working directory:

coursier bootstrap com.kubukoz:spotify-next_3:1.4.0 -o spotify-next

# now you can run the app like this:
./spotify-next --help

Build from source

Alternatively, if you want a fresh-out-of-the-oven version, you can build it from source:

  1. sbt stage

This will create a launcher at ./target/universal/stage/bin/spotify-next.

Usage

The application requires some configuration (e.g. the client ID for the Spotify Web API). It's stored in a file at $XDG_CONFIG_HOME/spotify-next/config.json or $HOME/.config/spotify-next/config.json (whichever works first). When you first run the application, or if that file is deleted, the application will ask and attempt to create one.

The configuration defines the port for the embedded HTTP server used for authentication. The server will only start when the login flow is triggered, and stop afterwards.

$ ./spotify-next --help

Usage:
    spotify-next login
    spotify-next skip
    spotify-next drop
    spotify-next forward
    spotify-next jump
    spotify-next s
    spotify-next d
    spotify-next f
    spotify-next j
    spotify-next repl

spotify-next: Gather great music.

Options and flags:
    --help
        Display this help text.
    --version, -v
        Print the version number and exit.

Subcommands:
    login
        Log into Spotify
    skip
        Skip to next track without any changes
    drop
        Drop current track from the current playlist and skip to the next track
    forward
        Fast forward the current track by a percentage of its length (10% by default)
    jump
        Fast forward the current track to the next section
    s
        Alias for `skip`
    d
        Alias for `drop`
    f
        Alias for `forward`
    j
        Alias for `jump`
    repl
        Run application in interactive mode

You can run the login command to be prompted for authorization, or you can rely on the fallback mechanism of all API calls - when one fails with 401 Unauthorized, you'll see the response and be prompted to log in. The call will be retried once after you successfully log in.

The application automatically saves the token to the configuration file after successful logins.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].