{"id":22866852,"url":"https://github.com/insomnimus/libman","last_synced_at":"2025-05-05T17:59:02.587Z","repository":{"id":48578735,"uuid":"386980883","full_name":"insomnimus/libman","owner":"insomnimus","description":"A spotify shell client in go.","archived":false,"fork":false,"pushed_at":"2022-08-18T20:22:33.000Z","size":124,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T22:41:46.259Z","etag":null,"topics":["cli","go","golang","shell","spotify","terminal"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/insomnimus.png","metadata":{"files":{"readme":"readme.md","changelog":"history/history.go","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-17T15:57:56.000Z","updated_at":"2022-10-16T13:56:56.000Z","dependencies_parsed_at":"2022-09-26T20:00:47.464Z","dependency_job_id":null,"html_url":"https://github.com/insomnimus/libman","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insomnimus%2Flibman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insomnimus%2Flibman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insomnimus%2Flibman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/insomnimus%2Flibman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/insomnimus","download_url":"https://codeload.github.com/insomnimus/libman/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252548566,"owners_count":21766201,"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":["cli","go","golang","shell","spotify","terminal"],"created_at":"2024-12-13T12:17:42.193Z","updated_at":"2025-05-05T17:59:02.568Z","avatar_url":"https://github.com/insomnimus.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libman\n\nLibman is an interactive spotify shell.\n\n# Features\n\n-\tControl your spotify playback.\n-\tEdit playlists.\n-\tFully complies to the spotify web api terms of usage.\n-\tSet aliases for commands.\n-\tExecute commands from a file during startup.\n-\tNo need for premium.\n-\tSimple to get started, comfortable to use.\n-\tHas context aware in-application tab completions!\n-\tImport and export your playlists as json.\n\n## Authors Note\n\nLibman is still in development stages, the usage won't change but a lot of new features are on their way, so if you can't do `X` yet, just wait for it.\n\n# Installation\n\nLibman is written in `go`, and will work only with go1.16 and above so get an up to date go compiler.\n\nYou can either clone the repo or install directly with the go command:\n\n```sh\n# recommended:\ngit clone https://github.com/insomnimus/libman\ncd libman\ngit checkout main\ngo install\n\n# you can also do this:\n# go install github.com/insomnimus/libman@latest\n```\n\n# Getting Started\n\nYou don't need a premium account, but you need to get an app token; visit [this link](https://developer.spotify.com/documentation/web-api/).\n\nAfter registering an application, note down your client id, secret and redirect uri (you configure your own redirect uri).\n\nThe redirect URI should be a loopback (localhost); for example:\n\n`http://localhost:8080/callback`\n\nNow you can either launch libman to generate a config file and save your credentials there, or you can \nset some env variables:\n\n-\t`LIBMAN_ID`: Set it to your spotify client ID.\n-\t`LIBMAN_SECRET`: Set it to your spotify client secret.\n-\t`LIBMAN_REDIRECT_URI`: Set it to the redirect URI you configured from the spotify developer portal.\n-\t`LIBMAN_CACHE_PATH`:  This is not necessary but helpful, set it to a file where your session token will be saved so you won't have to authorize each time you launch libman.\n\nThese can be accomplished from the command line as well:\n\n```sh\nlibman config id \u003cclient_id\u003e\nlibman config secret \u003cclient_secret\u003e\nlibman config redirect-uri \u003credirect_uri\u003e\n# there are more configuration options\n# run the command below to see them all:\n# libman config --list\n```\n\nThat's it! Just launch libman and enjoy some music.\n\n# Tips \u0026 Tricks\n\n-\tCreate a `~/.libmanrc` file and write any valid libman command to be ran at startup (define your aliases here).\n-\tYou can change the prompt! run `libman config prompt \"my new prompt\u003e\"`.\n-\tThe config file is located at `~/.config/libman.toml` on unix, and `C:\\Users\\username\\AppData\\Roaming` on windows.\n-\tConfigure a history file either from the config file or with `$LIBMAN_HIST_FILE` env var for search history auto completions.\n-\tWant to view every album of an artist? Simple, run: `salb *::michael jackson`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finsomnimus%2Flibman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finsomnimus%2Flibman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finsomnimus%2Flibman/lists"}