{"id":16228855,"url":"https://github.com/kubukoz/spotify-next","last_synced_at":"2025-05-09T01:45:16.217Z","repository":{"id":36895825,"uuid":"230677602","full_name":"kubukoz/spotify-next","owner":"kubukoz","description":"Small CLI app for filtering out music on Spotify.","archived":false,"fork":false,"pushed_at":"2025-05-06T17:23:30.000Z","size":839,"stargazers_count":46,"open_issues_count":2,"forks_count":11,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-09T01:45:06.795Z","etag":null,"topics":["cats-effect","cats-mtl","cats-tagless","cli","decline","http4s","scala","spotify","tagless-final"],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kubukoz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-12-28T23:00:55.000Z","updated_at":"2025-05-06T17:23:34.000Z","dependencies_parsed_at":"2023-12-08T00:26:05.590Z","dependency_job_id":"3742494e-3e2c-4d33-8cdb-89d421825a3e","html_url":"https://github.com/kubukoz/spotify-next","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubukoz%2Fspotify-next","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubukoz%2Fspotify-next/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubukoz%2Fspotify-next/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubukoz%2Fspotify-next/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubukoz","download_url":"https://codeload.github.com/kubukoz/spotify-next/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253176443,"owners_count":21866142,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cats-effect","cats-mtl","cats-tagless","cli","decline","http4s","scala","spotify","tagless-final"],"created_at":"2024-10-10T12:56:41.382Z","updated_at":"2025-05-09T01:45:16.209Z","avatar_url":"https://github.com/kubukoz.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# spotify-next\n\n[![License](http://img.shields.io/:license-Apache%202-green.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt)\n\nA small program making it easier to filter out music on Spotify.\n\n[![asciicast](demo.gif)](https://asciinema.org/a/LuppXgCyKwvpRAtO14yTh8Y2A)\n\n## Installation\n\n1. Create an application in the Spotify API dashboard. Add a redirect URI pointing to `http://localhost:4321/login`.\nThe port `4321` is configured in the `.spotify-next.json` config file (see [usage](#usage)).\n\n1. If you have [coursier](https://get-coursier.io), this will install the app in your current working directory:\n\n```bash\ncoursier bootstrap com.kubukoz:spotify-next_3:1.4.0 -o spotify-next\n\n# now you can run the app like this:\n./spotify-next --help\n```\n\n## Build from source\n\nAlternatively, if you want a fresh-out-of-the-oven version, you can build it from source:\n\n1. `sbt stage`\n\nThis will create a launcher at `./target/universal/stage/bin/spotify-next`.\n\n## Usage\n\nThe application requires some configuration (e.g. the client ID for the Spotify Web API).\nIt's stored in a file at `$XDG_CONFIG_HOME/spotify-next/config.json` or `$HOME/.config/spotify-next/config.json` (whichever works first).\nWhen you first run the application, or if that file is deleted, the application will ask and attempt to create one.\n\nThe 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.\n\n```\n$ ./spotify-next --help\n\nUsage:\n    spotify-next login\n    spotify-next skip\n    spotify-next drop\n    spotify-next forward\n    spotify-next s\n    spotify-next d\n    spotify-next f\n    spotify-next repl\n\nspotify-next: Gather great music.\n\nOptions and flags:\n    --help\n        Display this help text.\n    --version, -v\n        Print the version number and exit.\n\nSubcommands:\n    login\n        Log into Spotify\n    skip\n        Skip to next track without any changes\n    drop\n        Drop current track from the current playlist and skip to the next track\n    forward\n        Fast forward the current track by a percentage of its length (10% by default)\n    s\n        Alias for `skip`\n    d\n        Alias for `drop`\n    f\n        Alias for `forward`\n    repl\n        Run application in interactive mode\n```\n\nYou 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.\n\nThe application automatically saves the token to the configuration file after successful logins.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubukoz%2Fspotify-next","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubukoz%2Fspotify-next","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubukoz%2Fspotify-next/lists"}