⚠ 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.css
file in theoverlay
directory.
- 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.bat
as 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.bat
as 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_dc
cookie fromopen.spotify.com
(see below for Chrome and Firefox) - Open the
.env
file 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
spotify
module 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 + I
orF12
) - Go to the
Application Tab
- In the left pane, in
Storage
, selectCookies
and thenhttps://open.spotify.com
- In the table, search in the
Name
column 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 + I
orF12
orSHIFT + F9
) - Go to the
Storage
Tab - In the left pane, select
Cookies
and thenhttps://open.spotify.com
- In the table, search in the
Name
column 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
vlc
is enabled in your config file
-
Service not available or **cannot run
setup.ps1
:- Open a new
powershell
window as Admin. - Run
Get-ExecutionPolicy -List
- If the ExecutionPolicy for CurrentUser says
Undefined
then runSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- Right click the
build-master-<hash>.zip
and 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 i
oryarn
and run the scriptdev
. It will automagically rebuild. You can (most of the time) access the overlay onlocalhost:5000
.NON_BUILD_ENV
environment variable (the value doesn't matter, use e.g. 1) and run the server. -
Extension Run
npm i
and 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.env
file, however it won't automatically rebuild.