spotlike

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2026 License: MIT

README ΒΆ

golangci-lint release

βšͺ spotlike

Latest Release
Coverage Report
demo

ℹ️ About

spotlike is the CLI tool to LIKE contents in Spotify. This tool uses Spotify Web API with Go wrapper library.

πŸ’» Usage

Available Commands:
  auth,       au,   a  πŸ”‘ Authenticate your Spotify client.
  get,        ge,   g  πŸ“š Get the information of the content on Spotify by ID.
  like,       li,   l  🀍 Like content on Spotify by ID.
  unlike,     un,   u  πŸ’” Unlike content on Spotify by ID.
  search,     se,   s  πŸ” Search for the ID of content in Spotify.
  completion, comp, c  πŸ”§ Generate the autocompletion script for the specified shell.
  version,    ver,  v  πŸ”– Show the version of spotlike.
  help                 🀝 Help for spotlike.

Flags:
  -h, --help     🀝 help for spotlike
  -v, --version  πŸ”– version for spotlike

Search for the ID of content in Spotify.

Flags:
  -A, --artist  🎀 search for artists
  -a, --album   πŸ’Ώ search for albums
  -t, --track   🎡 search for tracks
  -m, --max     πŸ”’ maximum number of search results (default 10)
  -f, --format  πŸ“ format of the output (default "table", e.g: "plain")
  -h, --help    🀝 help for search

Arguments:
  keywords  πŸ”‘ search content by keywords (multiple keywords are separated by a space)
🀍 like

Like content on Spotify by ID.

🀍🎡 like track
Flags:
  -A, --artist  πŸ†” an ID of the artist to like all albums released by the artist
  -a, --album   πŸ†” an ID of the album to like all tracks in the album
  --no-confirm  🚫 do not confirm before liking the track
  -f, --format  πŸ“ format of the output (default "table", e.g: "plain")
  -h, --help    🀝 help for track

Arguments:
  ID  πŸ†” ID of the tracks (e.g: "20q73dOrP7ceLGAJQVtuTq 5A7nqzXUt5IZIOA7oNBv6M")
πŸ€πŸ’Ώ like album
Flags:
  -A, --artist  πŸ†” an ID of the artist to like all albums released by the artist
  --no-confirm  🚫 do not confirm before liking the album
  -f, --format  πŸ“ format of the output (default "table", e.g: "plain")
  -h, --help    🀝 help for album

Arguments:
  ID  πŸ†” ID of the albums (e.g: "1dGzXXa8MeTCdi0oBbvB1J 6Xy481vVb9vPK4qbCuT9u1")
🀍🎀 like artist
Flags:
  --no-confirm  🚫 do not confirm before liking the artist
  -f, --format  πŸ“ format of the output (default "table", e.g: "plain")
  -h, --help    🀝 help for artist

Arguments:
  ID  πŸ†” ID of the artists (e.g: "00DuPiLri3mNomvvM3nZvU 3B9O5mYYw89fFXkwKh7jCS")
πŸ’” unlike

Unlike content on Spotify by ID. Subcommands and flags are the same as the like command.

πŸ“š get

Get the information of the content on Spotify by ID.

πŸ“šπŸ’Ώ get albums
Flags:
  -f, --format  πŸ“ format of the output (default "table", e.g: "plain")
  -h, --help    🀝 help for albums

Argument:
  ID  πŸ†” ID of the albums (e.g: "1dGzXXa8MeTCdi0oBbvB1J")
πŸ“šπŸŽ΅ get tracks
Flags:
  -f, --format  πŸ“ format of the output (default "table", e.g: "plain")
  -h, --help    🀝 help for tracks

Argument:
  ID  πŸ†” ID of the artist or album (e.g: "00DuPiLri3mNomvvM3nZvU")

πŸ“ Preparation

  1. Login Spotify Developer.
  2. Open Dashboard.
  3. Press Create App button and input below.
    1. App name (e.g. spotlike)
    2. App description (e.g. spotlike is a CLI tool to LIKE the contents in Spotify.)
    3. Redirect URIs (recommended: http://localhost:8080/callback)
    4. Which API/SDKs are you planning to use (check Web API)
  4. Open Basic Information from created app in Dashboard.
  5. Get Client ID and Client secret.
  6. Set environments below.
    1. SPOTIFY_ID
    2. SPOTIFY_SECRET
    3. SPOTIFY_REDIRECT_URI
  7. Now, you're ready for authenticate in spotlike!

🌍 Environments

πŸ†” Spotify client ID
export SPOTIFY_ID=your_client_id
πŸ”‘ Spotify client secret
export SPOTIFY_SECRET=your_client_secret
πŸ”— Spotify redirect URI

Default : http://localhost:8080/callback

export SPOTIFY_REDIRECT_URI=http://localhost:8080/callback
πŸ”„ Spotify refresh token

This is automatically obtained after running spotlike auth.

export SPOTIFY_REFRESH_TOKEN=your_refresh_token

πŸ”§ Installation

🐭 Using go
go install github.com/yanosea/spotlike/app/presentation/cli/spotlike@latest
🍺 Using homebrew
brew tap yanosea/tap
brew install yanosea/tap/spotlike
πŸ“¦ Download from release

Go to the Releases and download the latest binary for your platform.

✨ Update

🐭 Using go

Reinstall spotlike!

go install github.com/yanosea/spotlike/app/presentation/cli/spotlike@latest
🍺 Using homebrew
brew update
brew upgrade spotlike
πŸ“¦ Download from release

Download the latest binary from the Releases page and replace the old binary in your $PATH.

🧹 Uninstallation

🐭 Using go
rm $GOPATH/bin/spotlike
# maybe you have to execute with sudo
rm -fr $GOPATH/pkg/mod/github.com/yanosea/spotlike*
🍺 Using homebrew
brew uninstall spotlike
brew untap yanosea/tap/spotlike
πŸ“¦ Download from release

Remove the binary you downloaded and placed in your $PATH.

πŸ“ƒ License

πŸ”“MIT

πŸ–ŠοΈ Author

🏹 yanosea

πŸ”₯ Motivation

  • Spotify's smartphone app or web app does not have the way below.
    • LIKE all tracks in one album.
    • LIKE all albums from one artist.
  • I wanted to LIKE them at once, so I created it!!

🀝 Contributing

Feel free to point me in the right directionπŸ™

Directories ΒΆ

Path Synopsis
app
application/spotlike
Package spotlike provides usecases for the spotlike cli.
Package spotlike provides usecases for the spotlike cli.
config
Package config provides the configuration of the spotlike application.
Package config provides the configuration of the spotlike application.
domain/spotify/album
Package album is a generated GoMock package.
Package album is a generated GoMock package.
domain/spotify/artist
Package artist is a generated GoMock package.
Package artist is a generated GoMock package.
domain/spotify/track
Package track provides the domain of the track.
Package track provides the domain of the track.
infrastructure/spotify/api
Package api is a generated GoMock package.
Package api is a generated GoMock package.
infrastructure/spotify/repository
Package repository provides a repository for using the Spotify API.
Package repository provides a repository for using the Spotify API.
presentation/cli/spotlike command
Package main provides the entry point of the spotlike cli application.
Package main provides the entry point of the spotlike cli application.
presentation/cli/spotlike/command
Package command is a generated GoMock package.
Package command is a generated GoMock package.
presentation/cli/spotlike/command/spotlike
Package spotlike provides the sub commands for the spotlike.
Package spotlike provides the sub commands for the spotlike.
presentation/cli/spotlike/command/spotlike/completion
Package completion provides the sub commands for the spotlike completion.
Package completion provides the sub commands for the spotlike completion.
presentation/cli/spotlike/command/spotlike/get
Package get provides the get sub commands for the spotlike cli.
Package get provides the get sub commands for the spotlike cli.
presentation/cli/spotlike/command/spotlike/like
Package like provides the like sub commands for the spotlike cli.
Package like provides the like sub commands for the spotlike cli.
presentation/cli/spotlike/command/spotlike/unlike
Package unlike provides the sub unlike commands for the spotlike cli.
Package unlike provides the sub unlike commands for the spotlike cli.
presentation/cli/spotlike/config
Package config provides the configuration for the spotlike cli.
Package config provides the configuration for the spotlike cli.
presentation/cli/spotlike/formatter
Package formatter is a generated GoMock package.
Package formatter is a generated GoMock package.
presentation/cli/spotlike/presenter
Package presenter provides the presenter for the spotlike.
Package presenter provides the presenter for the spotlike.
pkg
proxy
Package proxy is a generated GoMock package.
Package proxy is a generated GoMock package.
utility
Package utility is a generated GoMock package.
Package utility is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL