Alternative Spotify client implementation via Far Manager plugin. The plugin itself is just a UI facade for the Spotify Web API, using Far Manager API to draw panels and dialogs for a user to perform some basic manipulations with the current playback and his spotify collection.
- simple minimalistic way to control your music
- possibility to customize what you see in the app, on a contrary to the overloaded Spotify client
- global hotkeys support
- control and customize featuring releases and artists
For plugin to work as expected the user should have a Spotify account with active Premium subscription. Without one a playback functions will be forbidden, throwing 403 response. Beside the premium account, the user should obtain an authorisations token from Spotify developers dashboard.
For now, only Far Manager of version 3.0 and higher is supported.
Starting from November 27, 2024 Spotify blocked some of their web endpoints, mainly related to their internal algorythms. In practise for the third parties it means no accees to:
- all kind of recommendations and featurings: similar artists, freshly released albums, playlists created for you and etc.
- audio analysis features
- Download plugin's binaries
- Unpack the archive into your %FARHOME%\Plugins\ folder
- If everything was right, you'll see a dedicated plugin's menu in the "Plugin Commands" dialogs in Far Manager (F11)
- Open a Spotify developers dashboard
- Click "Create App" button, input your information
- "App name" and "App description" are up to you
- "Redirect URIs" - http://127.0.0.1:5000/auth/callback
- "Which API/SDKs are you planning to use?" - pick "Web API" and "Web Playback SDK"
- Consent an agreement with Spotify's terms and save your data
- Open up plugin's configuration dialog in Far Manager (Shift+Alt+F9) and select corresponded Spotifar option
- In the dialog menu proceed with "General" option
- In the "Spotify API" settings block input your freshly obtained "Client ID" and "Client Secret"
- Leave "Port" data unchanged, or put the one you like, not forgetting to edit accordingly your callback url, used in the Spotify dashboard
Plugin uses the following great 3rd-parties, without which it wouldn't be even possible to think of this implementation:
- cpp-httplib with openssl support - for executing all the http Spotify API requests
- spdlog - for logging
- bshoshany-thread-pool - for parallelizing big collections fetching
- rapidjson - for parsing and processing Spotify API responses data
- wintoast - for showing up beautiful Windows tray notification toasts with the changing tracks and others
- librespot - for doing all the playback heavy lifting
- ObserverManager
- generator
Thanks guys