[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5607":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":39,"readmeContent":40,"aiSummary":41,"trendingCount":16,"starSnapshotCount":16,"syncStatus":42,"lastSyncTime":43,"discoverSource":44},5607,"spotify-player","aome510\u002Fspotify-player","aome510","A Spotify player in the terminal with full feature parity","",null,"Rust",6839,354,21,115,0,10,43,140,42,113.65,"MIT License",false,"master",true,[27,28,29,30,31,32,33,34,35,36,37,38],"cli","music","music-player","player","rust","spotify","spotify-api","spotify-tui","terminal","terminal-based","tui","vim","2026-06-12 04:00:25","# spotify_player\n\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Examples](#examples)\n- [Installation](#installation)\n- [Features](#features)\n  - [Spotify Connect](#spotify-connect)\n  - [Streaming](#streaming)\n  - [Audio Visualization](#audio-visualization)\n  - [Media Control](#media-control)\n  - [Image](#image)\n  - [Notify](#notify)\n  - [Mouse support](#mouse-support)\n  - [Daemon](#daemon)\n  - [Fuzzy search](#fuzzy-search)\n  - [CLI commands](#cli-commands)\n- [Commands](#commands)\n- [Configurations](#configurations)\n- [Caches](#caches)\n  - [Logging](#logging)\n- [Acknowledgement](#acknowledgement)\n\n## Introduction\n\n`spotify_player` is a fast, easy to use, and configurable terminal music player.\n\n**Features**\n\n- Minimalist UI with an intuitive paging and popup system.\n- Highly [configurable](https:\u002F\u002Fgithub.com\u002Faome510\u002Fspotify-player\u002Fblob\u002Fmaster\u002Fdocs\u002Fconfig.md)\n- Feature parity with the official Spotify application.\n- Support remote control with [Spotify Connect](#spotify-connect).\n- Support [streaming](#streaming) songs directly from the terminal.\n- Support [audio visualization](#audio-visualization).\n- Support synced lyrics.\n- Support [cross-platform media control](#media-control).\n- Support [image rendering](#image).\n- Support [desktop notification](#notify).\n- Support running the application as [a daemon](#daemon)\n- Offer a wide range of [CLI commands](#cli-commands)\n\n## Examples\n\nA demo of `spotify_player` `v0.5.0-pre-release` on [youtube](https:\u002F\u002Fwww.youtube.com\u002Fwatch\u002FJbfe9GLNWbA) or on [asciicast](https:\u002F\u002Fasciinema.org\u002Fa\u002F446913):\n\nCheckout [examples\u002FREADME.md](https:\u002F\u002Fgithub.com\u002Faome510\u002Fspotify-player\u002Fblob\u002Fmaster\u002Fexamples\u002FREADME.md) for more examples.\n\n## Installation\n\nBy default, the application's installed binary is `spotify_player`.\n\n### Requirements\n\nA Spotify Premium account is **required**.\n\n#### Dependencies\n\n##### Windows and MacOS\n\n- [Rust and cargo](https:\u002F\u002Fwww.rust-lang.org\u002Ftools\u002Finstall) as the build dependencies\n\n##### Linux\n\n- [Rust and cargo](https:\u002F\u002Fwww.rust-lang.org\u002Ftools\u002Finstall) as the build dependencies\n- install `openssl`, `alsa-lib` (`streaming` feature), `libdbus` (`media-control` feature).\n  - For example, on Debian based systems, run the below command to install application's dependencies:\n\n    ```shell\n    sudo apt install libssl-dev libasound2-dev libdbus-1-dev\n    ```\n\n  - On RHEL\u002FFedora based systems, run the below command to install application's dependencies :\n\n    ```shell\n    sudo dnf install openssl-devel alsa-lib-devel dbus-devel\n    ```\n\n    or if you're using `yum`:\n\n    ```shell\n    sudo yum install openssl-devel alsa-lib-devel dbus-devel\n    ```\n\n### Binaries\n\nApplication's prebuilt binaries can be found in the [Releases Page](https:\u002F\u002Fgithub.com\u002Faome510\u002Fspotify-player\u002Freleases).\n\n**Note**: to run the application, Linux systems need to install additional dependencies as specified in the [Dependencies section](#linux).\n\n### Homebrew\n\nRun `brew install spotify_player` to install the application.\n\n### Scoop\n\nRun `scoop install spotify-player` to install the application.\n\n### Cargo\n\nInstall via Cargo:\n\n```\ncargo install spotify_player --locked\n```\n\n### Arch Linux\n\nInstall via Arch Linux:\n\n```\npacman -S spotify-player\n```\n\n**Note**: Defaults to PulseAudio\u002FPipewire. For a different backend, modify the [official PKGBUILD](https:\u002F\u002Fgitlab.archlinux.org\u002Farchlinux\u002Fpackaging\u002Fpackages\u002Fspotify-player) and rebuild manually. See [Audio Backends](#audio-backend).\n\n### Void Linux\n\nInstall via Void Linux:\n\n```\nxbps-install -S spotify-player\n```\n\n### FreeBSD\n\nInstall via FreeBSD:\n\n```\npkg install spotify-player\n```\n\n### NetBSD\n\nInstall via NetBSD:\n\n```\npkgin install spotify-player\n```\n\nBuild from source on NetBSD:\n\n```\ncd \u002Fusr\u002Fpkgsrc\u002Faudio\u002Fspotify-player\nmake install\n```\n\n### NixOS\n\n[spotify-player](https:\u002F\u002Fsearch.nixos.org\u002Fpackages?channel=unstable&show=spotify-player&from=0&size=50&sort=relevance&type=packages&query=spotify-player) is available as a Nix package. Install via:\n\n```\nnix-shell -p spotify-player\n```\n\nTo build from source locally, run `nix-shell` in the root of the source checkout. The provided `shell.nix` will install prerequisites.\n\n### Docker\n\n**Note**: The streaming feature is disabled in the Docker image.\n\nDownload the latest Docker image:\n\n```\ndocker pull aome510\u002Fspotify_player:latest\n```\n\nRun the Docker container:\n\n```\ndocker run --rm -it aome510\u002Fspotify_player:latest\n```\n\nTo use your local config and cache folders:\n\n```\ndocker run --rm \\\n-v $APP_CONFIG_FOLDER:\u002Fapp\u002Fconfig\u002F \\\n-v $APP_CACHE_FOLDER:\u002Fapp\u002Fcache\u002F \\\n-it aome510\u002Fspotify_player:latest\n```\n\n## Features\n\n### Spotify Connect\n\nControl Spotify remotely with [Spotify Connect](https:\u002F\u002Fsupport.spotify.com\u002Fus\u002Farticle\u002Fspotify-connect\u002F). Press **D** to list devices, then **enter** to connect.\n\n### Streaming\n\nStream music directly from the terminal. The streaming feature is enabled by default and uses the `rodio-backend` audio backend unless otherwise specified.\n\nThe app uses [librespot](https:\u002F\u002Fgithub.com\u002Flibrespot-org\u002Flibrespot) to create an integrated Spotify client, registering a `spotify-player` device accessible via Spotify Connect.\n\n#### Audio backend\n\nDefault audio backend is [rodio](https:\u002F\u002Fgithub.com\u002FRustAudio\u002Frodio). Available backends:\n\n- `alsa-backend`\n- `pulseaudio-backend`\n- `rodio-backend`\n- `portaudio-backend`\n- `jackaudio-backend`\n- `rodiojack-backend`\n- `sdl-backend`\n- `gstreamer-backend`\n\nTo use a different audio backend, specify the `--features` option when building. For example:\n\n```shell\ncargo install spotify_player --no-default-features --features pulseaudio-backend\n```\n\n**Notes**:\n\n- Use `--no-default-features` to disable the default `rodio-backend`.\n- Additional dependencies may be required for some backends. See [Librespot documentation](https:\u002F\u002Fgithub.com\u002Flibrespot-org\u002Flibrespot\u002Fwiki\u002FCompiling#general-dependencies).\n\nTo disable streaming, build with:\n\n```shell\ncargo install spotify_player --no-default-features\n```\n\n### Audio Visualization\n\nReal-time audio visualization is displayed in the playback window as a frequency-band bar chart (64 log-scale bands from bass (left) to treble (right)) while music is streamed locally via the integrated [librespot](https:\u002F\u002Fgithub.com\u002Flibrespot-org\u002Flibrespot) player. The visualization area is hidden when playback is on an external Spotify Connect device or when the playback is not playing.\n\nSet `enable_audio_visualization` to `true` in your config to enable this feature. See [config docs](https:\u002F\u002Fgithub.com\u002Faome510\u002Fspotify-player\u002Fblob\u002Fmaster\u002Fdocs\u002Fconfig.md).\n\n![Audio Visualization](https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F8c21c1b0-5276-4a9e-b719-e0c2bd555537)\n\n### Media Control\n\nMedia control is enabled by default. Set `enable_media_control` to `true` in your config to use it. See [config docs](https:\u002F\u002Fgithub.com\u002Faome510\u002Fspotify-player\u002Fblob\u002Fmaster\u002Fdocs\u002Fconfig.md#media-control).\n\nMedia control uses [MPRIS DBus](https:\u002F\u002Fwiki.archlinux.org\u002Ftitle\u002FMPRIS) on Linux and OS window events on Windows and macOS.\n\n### Image\n\nTo enable image rendering, build with the `image` feature (disabled by default):\n\n```shell\ncargo install spotify_player --features image\n```\n\nFull-resolution images are supported in [Kitty](https:\u002F\u002Fsw.kovidgoyal.net\u002Fkitty\u002Fgraphics-protocol\u002F) and [iTerm2](https:\u002F\u002Fiterm2.com\u002Fdocumentation-images.html). Other terminals display images as [block characters](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBlock_Elements).\n\nTo use sixel graphics, build with the `sixel` feature (also enables `image`):\n\n```shell\ncargo install spotify_player --features sixel\n```\n\n**Notes**:\n\n- Not all terminals supported by [libsixel](https:\u002F\u002Fgithub.com\u002Fsaitoha\u002Flibsixel) are supported by `spotify_player` (see [viuer supported terminals](https:\u002F\u002Fgithub.com\u002Fatanunq\u002Fviuer\u002Fblob\u002Fdc81f44a97727e04be0b000712e9233c92116ff8\u002Fsrc\u002Fprinter\u002Fsixel.rs#L83-L95)).\n- Sixel images may scale oddly; adjust `cover_img_scale` for best results.\n\nImage rendering examples:\n\n- iTerm2:\n\n![iTerm2](https:\u002F\u002Fuser-images.githubusercontent.com\u002F40011582\u002F172966798-0aadc431-b0c3-4433-adf3-7526684fc2a0.png)\n\n- Kitty:\n\n![kitty](https:\u002F\u002Fuser-images.githubusercontent.com\u002F40011582\u002F172967028-8cfb2daa-1642-499a-a5bf-8ed77f2b3fac.png)\n\n- Sixel (`foot` terminal, `cover_img_scale=1.8`):\n\n![sixel](https:\u002F\u002Fuser-images.githubusercontent.com\u002F40011582\u002F219880331-58ac1c30-bbb0-4c99-a6cc-e5b7c9c81455.png)\n\n- Others:\n\n![others](https:\u002F\u002Fuser-images.githubusercontent.com\u002F40011582\u002F172967325-d2098037-e19e-440a-a38a-5b076253ecb1.png)\n\n#### Pixelate\n\nFor a pixelated look, enable the `pixelate` feature (also enables `image`):\n\n```shell\ncargo install spotify_player --features pixelate\n```\n\nAdjust the pixelation with the `cover_img_pixels` config option.\n\n| `cover_img_pixels` | `8`                                                                                                                 | `16`                                                                                                                  | `32`                                                                                                                  | `64`                                                                                                                  |\n| ------------------ | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |\n| example            | \u003Cimg width=\"100\" alt=\"8x8\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F4137aaea-ce28-4019-8cd5-2d14327e72e4\" \u002F> | \u003Cimg width=\"100\" alt=\"16x16\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F0ca94748-093a-468c-8fb3-1f5639666eb6\" \u002F> | \u003Cimg width=\"100\" alt=\"32x32\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ff5d0f2da-0439-47e4-91c9-3a2aa73ac90c\" \u002F> | \u003Cimg width=\"100\" alt=\"64x64\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fd06ef731-38fa-424d-9672-313f56c193d0\" \u002F> |\n\nTo temporarily disable pixelation, set `cover_img_pixels` to a high value (e.g., `512`).\n\n### Notify\n\nTo enable desktop notifications, build with the `notify` feature (disabled by default):\n\n```shell\ncargo install spotify_player --features notify\n```\n\n**Note**: Notification support is limited on macOS and Windows compared to Linux.\n\n### Mouse support\n\nMouse support: You can seek to a position in the playback by left-clicking the progress bar.\n\n### Daemon\n\nTo enable daemon mode, build with the `daemon` feature (disabled by default):\n\n```shell\ncargo install spotify_player --features daemon\n```\n\nRun as a daemon with `-d` or `--daemon`: `spotify_player -d`.\n\n**Notes**:\n\n- Daemon mode is not supported on Windows.\n- Daemon mode requires streaming and an audio backend.\n- On macOS, daemon mode does not work with media control (enabled by default). To use daemon mode on macOS, disable media control:\n\n  ```shell\n  cargo install spotify_player --no-default-features --features daemon,rodio-backend\n  ```\n\n### Fuzzy search\n\nTo enable [fuzzy search](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FApproximate_string_matching), build with the `fzf` feature (disabled by default).\n\n### CLI Commands\n\n`spotify_player` provides several CLI commands for interacting with Spotify:\n\n- `get`: Get Spotify data (playlist\u002Falbum\u002Fartist data, user's data, etc)\n- `playback`: Interact with the playback (start a playback, play-pause, next, etc)\n- `search`: Search spotify\n- `connect`: Connect to a Spotify device\n- `like`: Like currently playing track\n- `authenticate`: Authenticate the application\n- `playlist`: Playlist editing (new, delete, import, fork, etc)\n\nFor more details, run `spotify_player -h` or `spotify_player {command} -h`.\n\n**Notes**\n\n- On first use, run `spotify_player authenticate` to authenticate the app.\n- CLI commands communicate with a client socket on port `client_port` (default: `8080`). If no instance is running, a new client is started, which may increase latency.\n\n#### Scripting\n\nThe command-line interface is script-friendly. Use the `search` subcommand to retrieve Spotify data in JSON format, which can be processed with tools like [jq](https:\u002F\u002Fjqlang.github.io\u002Fjq\u002F).\n\nExample: Start playback for the first track from a search query:\n\n```sh\nread -p \"Search spotify: \" query\nspotify_player playback start track --id $(spotify_player search \"$query\" | jq '.tracks.[0].id' | xargs)\n```\n\n## Commands\n\nPress `?` or `C-h` to open the shortcut help page (default for `OpenCommandHelp`).\n\n**Tips**:\n\n- Use the `Search` command to search in the shortcut help page and other pages.\n- `RefreshPlayback` manually updates playback status.\n- `RestartIntegratedClient` is useful for switching audio devices without restarting the app.\n\nList of supported commands:\n\n| Command                         | Description                                                                                        | Default shortcuts  |\n| ------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------ |\n| `NextTrack`                     | next track                                                                                         | `n`                |\n| `PreviousTrack`                 | previous track                                                                                     | `p`                |\n| `ResumePause`                   | resume\u002Fpause based on the current playback                                                         | `space`            |\n| `PlayRandom`                    | play a random track in the current context                                                         | `.`                |\n| `Repeat`                        | cycle the repeat mode                                                                              | `C-r`              |\n| `Shuffle`                       | toggle the shuffle mode                                                                            | `C-s`              |\n| `VolumeChange`                  | change playback volume by an offset (default shortcuts use 5%)                                     | `+`, `-`           |\n| `Mute`                          | toggle playback volume between 0% and previous level                                               | `_`                |\n| `SeekStart`                     | seek start of current track                                                                        | `^`                |\n| `SeekForward`                   | seek forward by a duration in seconds (defaults to `seek_duration_secs`)                           | `>`                |\n| `SeekBackward`                  | seek backward by a duration in seconds (defaults to `seek_duration_secs`)                          | `\u003C`                |\n| `Quit`                          | quit the application                                                                               | `C-c`, `q`         |\n| `ClosePopup`                    | close a popup                                                                                      | `esc`              |\n| `SelectNextOrScrollDown`        | select the next item in a list\u002Ftable or scroll down (supports vim-style count: 5j)                 | `j`, `C-n`, `down` |\n| `SelectPreviousOrScrollUp`      | select the previous item in a list\u002Ftable or scroll up (supports vim-style count: 10k)              | `k`, `C-p`, `up`   |\n| `PageSelectNextOrScrollDown`    | select the next page item in a list\u002Ftable or scroll a page down (supports vim-style count: 3C-f)   | `page_down`, `C-f` |\n| `PageSelectPreviousOrScrollUp`  | select the previous page item in a list\u002Ftable or scroll a page up (supports vim-style count: 2C-b) | `page_up`, `C-b`   |\n| `SelectFirstOrScrollToTop`      | select the first item in a list\u002Ftable or scroll to the top                                         | `g g`, `home`      |\n| `SelectLastOrScrollToBottom`    | select the last item in a list\u002Ftable or scroll to the bottom                                       | `G`, `end`         |\n| `ChooseSelected`                | choose the selected item                                                                           | `enter`            |\n| `RefreshPlayback`               | manually refresh the current playback                                                              | `r`                |\n| `RestartIntegratedClient`       | restart the integrated client (`streaming` feature only)                                           | `R`                |\n| `ShowActionsOnSelectedItem`     | open a popup showing actions on a selected item                                                    | `g a`, `C-space`   |\n| `ShowActionsOnCurrentTrack`     | open a popup showing actions on the current track                                                  | `a`                |\n| `ShowActionsOnCurrentContext`   | open a popup showing actions on the current context                                                | `A`                |\n| `AddSelectedItemToQueue`        | add the selected item to queue                                                                     | `Z`, `C-z`         |\n| `FocusNextWindow`               | focus the next focusable window (if any)                                                           | `tab`              |\n| `FocusPreviousWindow`           | focus the previous focusable window (if any)                                                       | `backtab`          |\n| `SwitchTheme`                   | open a popup for switching theme                                                                   | `T`                |\n| `SwitchDevice`                  | open a popup for switching device                                                                  | `D`                |\n| `Search`                        | open a popup for searching in the current page                                                     | `\u002F`                |\n| `BrowseUserPlaylists`           | open a popup for browsing user's playlists                                                         | `u p`              |\n| `BrowseUserFollowedArtists`     | open a popup for browsing user's followed artists                                                  | `u a`              |\n| `BrowseUserSavedAlbums`         | open a popup for browsing user's saved albums                                                      | `u A`              |\n| `CurrentlyPlayingContextPage`   | go to the currently playing context page                                                           | `g space`          |\n| `TopTrackPage`                  | go to the user top track page                                                                      | `g t`              |\n| `RecentlyPlayedTrackPage`       | go to the user recently played track page                                                          | `g r`              |\n| `LikedTrackPage`                | go to the user liked track page                                                                    | `g y`              |\n| `LyricsPage`                    | go to the lyrics page of the current track                                                         | `g L`, `l`         |\n| `LibraryPage`                   | go to the user library page                                                                        | `g l`              |\n| `SearchPage`                    | go to the search page                                                                              | `g s`              |\n| `BrowsePage`                    | go to the browse page                                                                              | `g b`              |\n| `Queue`                         | go to the queue page                                                                               | `z`                |\n| `OpenCommandHelp`               | go to the command help page                                                                        | `?`, `C-h`         |\n| `PreviousPage`                  | go to the previous page                                                                            | `backspace`, `C-q` |\n| `OpenLogs`                      | go the the application logs page                                                                   | `g o`              |\n| `OpenSpotifyLinkFromClipboard`  | open a Spotify link from clipboard                                                                 | `O`                |\n| `SortTrackByTitle`              | sort the track table (if any) by track's title                                                     | `s t`              |\n| `SortTrackByArtists`            | sort the track table (if any) by track's artists                                                   | `s a`              |\n| `SortTrackByAlbum`              | sort the track table (if any) by track's album                                                     | `s A`              |\n| `SortTrackByAddedDate`          | sort the track table (if any) by track's added date                                                | `s D`              |\n| `SortTrackByDuration`           | sort the track table (if any) by track's duration                                                  | `s d`              |\n| `SortLibraryAlphabetically`     | sort the library alphabetically                                                                    | `s l a`            |\n| `SortLibraryByRecent`           | sort the library (playlists and albums) by recently added items                                    | `s l r`            |\n| `ReverseOrder`                  | reverse the order of the track table (if any)                                                      | `s r`              |\n| `MovePlaylistItemUp`            | move playlist item up one position                                                                 | `C-k`              |\n| `MovePlaylistItemDown`          | move playlist item down one position                                                               | `C-j`              |\n| `CreatePlaylist`                | create a new playlist                                                                              | `N`                |\n| `JumpToCurrentTrackInContext`   | jump to the current track in the context                                                           | `g c`              |\n| `JumpToHighlightTrackInContext` | jump to the currently highlighted search result in the context                                     | `C-g`              |\n\nTo add or modify shortcuts, see the [keymaps section](https:\u002F\u002Fgithub.com\u002Faome510\u002Fspotify-player\u002Fblob\u002Fmaster\u002Fdocs\u002Fconfig.md#keymaps).\n\n### Actions\n\nNot all actions are available for every Spotify item. To see available actions, use `ShowActionsOnCurrentTrack` or `ShowActionsOnSelectedItem`, then press enter to trigger the action. Some actions may not appear in the popup but can be bound to shortcuts.\n\nList of available actions:\n\n- `GoToArtist`\n- `GoToAlbum`\n- `GoToRadio`\n- `AddToLibrary`\n- `AddToPlaylist`\n- `AddToQueue`\n- `AddToLiked`\n- `DeleteFromLiked`\n- `DeleteFromLibrary`\n- `DeleteFromPlaylist`\n- `ShowActionsOnAlbum`\n- `ShowActionsOnArtist`\n- `ShowActionsOnShow`\n- `ToggleLiked`\n- `CopyLink`\n- `Follow`\n- `Unfollow`\n\nActions can also be bound to shortcuts. To add new shortcuts, see the [actions section](https:\u002F\u002Fgithub.com\u002Faome510\u002Fspotify-player\u002Fblob\u002Fmaster\u002Fdocs\u002Fconfig.md#actions).\n\n### Search Page\n\nWhen entering the search page, focus is on the search input. Enter text, use `backspace` to delete, and `enter` to search.\n\nTo move focus from the search input to other windows (track results, album results, etc.), use `FocusNextWindow` or `FocusPreviousWindow`.\n\n## Configurations\n\nBy default, configuration files are located in `$HOME\u002F.config\u002Fspotify-player`. Change this with `-c \u003CFOLDER_PATH>` or `--config-folder \u003CFOLDER_PATH>`.\n\nIf no configuration file is found, one will be created with default values.\n\nSee [configuration documentation](https:\u002F\u002Fgithub.com\u002Faome510\u002Fspotify-player\u002Fblob\u002Fmaster\u002Fdocs\u002Fconfig.md) for details on available options.\n\n## Caches\n\nBy default, cache files are stored in `$HOME\u002F.cache\u002Fspotify-player` (logs, credentials, audio cache, etc.). Change this with `-C \u003CFOLDER_PATH>` or `--cache-folder \u003CFOLDER_PATH>`.\n\n### Logging\n\nLogs are stored in `$APP_CACHE_FOLDER\u002Fspotify-player-*.log`. For debugging or issues, check the backtrace file in `$APP_CACHE_FOLDER\u002Fspotify-player-*.backtrace`.\n\nSet the `RUST_LOG` environment variable to control [logging level](https:\u002F\u002Fdocs.rs\u002Flog\u002F0.4.14\u002Flog\u002Fenum.Level.html). Default is `spotify_player=INFO`.\n\n## Acknowledgement\n\n`spotify_player` is written in [Rust](https:\u002F\u002Fwww.rust-lang.org) and built on top of libraries like [ratatui](https:\u002F\u002Fgithub.com\u002Fratatui\u002Fratatui), [rspotify](https:\u002F\u002Fgithub.com\u002Framsayleung\u002Frspotify), [librespot](https:\u002F\u002Fgithub.com\u002Flibrespot-org\u002Flibrespot), and more. It is inspired by [spotify-tui](https:\u002F\u002Fgithub.com\u002FRigellute\u002Fspotify-tui) and [ncspot](https:\u002F\u002Fgithub.com\u002Fhrkfdn\u002Fncspot).\n","`spotify_player` 是一个在终端中运行的全功能 Spotify 播放器。它使用 Rust 语言开发，具有直观的分页和弹出系统、高度可配置性以及与官方 Spotify 应用程序相同的功能特性。支持 Spotify Connect 远程控制、直接从终端流媒体播放歌曲、音频可视化、同步歌词显示、跨平台媒体控制、图像渲染、桌面通知等功能，并且可以作为守护进程运行。适用于喜欢在命令行环境中享受音乐的用户，特别是那些需要高效管理和控制音乐播放体验的开发者和技术爱好者。",2,"2026-06-11 03:04:19","top_language"]