⚠ This project will be rewritten at Nerixyz/current-song2.
This application allows users (probably streamers) to show the playing song without worrying too much about the setup. Ideally you'll install the extension, start a service, and you are good to go. Now with Spotify you can't do this, you'll have to manually go in your browser and get the cookie. Maybe I'll change that.
- It's one of the first true realtime clients for Spotify and YouTube (VLC is using the most lightweight option to use all features, a Lua interface). The local server does not constantly poll Spotify and YouTube.
- Watch progress is shown for Spotify, YouTube and VLC (others to come).
- The server can be ran as a Windows Service so won't show up as a window and is started once the PC starts.
- It always tries to show the last updated source so viewers immediately know the song.
- The overlay is fully customizable through the
config.cssfile in theoverlaydirectory.
- Firefox, Chrome, new Safari (and other Browsers implementing the WebExtensions API)
- Spotify (requires a Cookie to work, any device is supported)
- VLC (Lua Interface)
These are known websites, the browser extension works with. Websites not listed here aren't tested yet but might already be supported.
| Website | Title | Progress Bar |
|---|---|---|
| YouTube | ✅ | ✅ * |
| SoundCloud | ✅ | ✅ |
| Neverthink.tv | ✅ | ✅ |
| Twitch | ✅ | ❌ |
| CyTube | ❌ | ❌ |
* Livestreams aren't supported
Extract the build-...zip into some folder.
If you've never used this application, run setup.bat
This application consists of multiple "modules" you can toggle.
The main configuration can be found in config.json.
- Run
create-service.batas Administrator (right click the file and selectRun as Administrator). Note: your AntiVirus might question this action or block it. - Start the service by running
start-service.batas Administrator.
You can restart the service (needed once you've changed .env or config.json).
You are also able to change the appearance of the overlay. To do this, open the config.css in the overlay directory.
You don't have to restart the service. You only need to reload the overlay.
This is how you configure each module:
- Get the
sp_dccookie fromopen.spotify.com(see below for Chrome and Firefox) - Open the
.envfile in the current folder - Paste the value next to
SPOTIFY_COOKIES="sp_dc= - The line should now look like this:
SPOTIFY_COOKIES="sp_dc=AB3DE6...-A2CD5FG..." - Make sure the
spotifymodule is enabled and configured in yourconfig.json:
{
"modules": {
...
"spotify": {
"enabled": true,
"options": {
"cookies": ":env#SPOTIFY_COOKIES"
}
},
...
}
...
}:env#SPOTIFY_COOKIES will read the variable SPOTIFY_COOKIES into cookies
- Open
open.spotify.com(and log in) - Open the Developer Tools (
CTRL + SHIFT + IorF12) - Go to the
Application Tab - In the left pane, in
Storage, selectCookiesand thenhttps://open.spotify.com - In the table, search in the
Namecolumn forsp_dc - Copy the
Value(double-click the cell and pressCTRL + C)
- Open
open.spotify.com(and log in) - Open the Developer Tools (
CTRL + SHIFT + IorF12orSHIFT + F9) - Go to the
StorageTab - In the left pane, select
Cookiesand thenhttps://open.spotify.com - In the table, search in the
Namecolumn forsp_dc - Copy the
Value(double-click the cell and pressCTRL + C)
The addon is available on addons.mozilla.org (click).
Note: Due to this 6 year old bug, the extension will always show the currently playing song as it can't detect a non focused window.
The addon is available on the Chrome WebStore (click).
- Run the file
setup.bat. If you have a regular VLC setup, the vlc module will work. - Make sure
vlcis enabled in your config file
-
Service not available or **cannot run
setup.ps1:- Open a new
powershellwindow as Admin. - Run
Get-ExecutionPolicy -List - If the ExecutionPolicy for CurrentUser says
Undefinedthen runSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - Right click the
build-master-<hash>.zipand open the properties. - At the bottom, check the box saying "Unblock" and click Apply and Close.
- Open a new
-
File not found, in a folder with spaces
- For now, make sure to put this in a folder without spaces (and no spaces in parent folders).
-
Service Output (stdout/stderr) redirection (e.g. when the service isn't starting):
- stdout
.\nssm set CurrentSong AppStdout <path-to-logfile>.log - stderr
.\nssm set CurrentSong AppStderr <path-to-logfile>.log
- stdout
For more details, see dudo24's Error Guide.
-
Client (Overlay)
RunYou can use the server's functionality of hosting the overlay. Define thenpm ioryarnand run the scriptdev. It will automagically rebuild. You can (most of the time) access the overlay onlocalhost:5000.NON_BUILD_ENVenvironment variable (the value doesn't matter, use e.g. 1) and run the server. -
Extension Run
npm iand run the scriptrollup-watch. You can import the extension in Firefox inabout:debugging#/runtime/this-firefox. -
Server Run
deno run --allow-read --allow-net --allow-env server/src/index.ts. It will read the.envfile, however it won't automatically rebuild.


