Gets metadata from spotify using a spicetify extension using websockets
I made this mainly for my audio visualizer to have song info display along with it since Windows doesn't offer anyway to do this, on Linux I could use MPRIS, for macOS no idea I don't use it
This will work for all desktop platforms (Windows, Linux, macOS)
Examples can be found in the examples directory
use spotify_info::{SpotifyEvent, TrackListener};
#[tokio::main]
async fn main() {
// Create listener
let listener = TrackListener::bind_default().await.unwrap();
// Listen for incoming connections, if spotify closes, the loop keeps listening
while let Ok(mut connection) = listener.get_connection().await {
while let Some(Ok(event)) = connection.next().await {
match event {
// Gets called when user changed track
SpotifyEvent::TrackChanged(info) => println!("Changed track to {}", info.title),
// Gets called when user changes state (if song is playing, paused or stopped)
SpotifyEvent::StateChanged(state) => println!("Changed state to {}", state),
// Gets called on a set interval, wont get called if player is paused or stopped,
// Value is a percentage of the position between 0 and 1
SpotifyEvent::ProgressChanged(time) => println!("Changed progress to {}", time)
}
}
}
}
spotify_info = "0.5"
- Improve Documentation
- Make instructions easy to understand for regular users
- When the track was created
- What playlist the track is in
Run script to install, uninstall by running it again
Open PowerShell
(Win + S) type powershell and press enter and run this command
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/Ricky12Awesome/spotify_info/main/extension/install_extension.ps1" | Invoke-Expression
Open Terminal
(usually Ctrl + Alt + T on linux) and run this command
curl https://raw.githubusercontent.com/Ricky12Awesome/spotify_info/main/extension/install_extension.sh | sh
You can get the extension from here (right-click -> save as)
Place that file
to %userprofile%\.spicetify\Extensions\
on Windows
or ~/.config/spicetify/Extensions
on Linux / macOS
Run command
spicetify config extensions spotify_info.js && spicetify apply
from the terminal to install the plugin
Run command
spicetify config extensions spotify_info.js- && spicetify apply
from the terminal to uninstall the plugin
More details about install extensions https://spicetify.app/docs/getting-started/extensions