{"id":26847828,"url":"https://github.com/nerixyz/current-song-overlay","last_synced_at":"2025-04-30T22:23:49.797Z","repository":{"id":40812578,"uuid":"281506505","full_name":"Nerixyz/current-song-overlay","owner":"Nerixyz","description":"Display the currently playing song/audio from the Browser, VLC or Spotify","archived":false,"fork":false,"pushed_at":"2023-03-05T07:22:09.000Z","size":837,"stargazers_count":53,"open_issues_count":17,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-30T20:33:33.795Z","etag":null,"topics":["hacktoberfest","javascript","spotify","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nerixyz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-21T21:18:52.000Z","updated_at":"2025-03-25T05:49:57.000Z","dependencies_parsed_at":"2023-01-25T21:31:24.852Z","dependency_job_id":null,"html_url":"https://github.com/Nerixyz/current-song-overlay","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nerixyz%2Fcurrent-song-overlay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nerixyz%2Fcurrent-song-overlay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nerixyz%2Fcurrent-song-overlay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nerixyz%2Fcurrent-song-overlay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nerixyz","download_url":"https://codeload.github.com/Nerixyz/current-song-overlay/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251790399,"owners_count":21644214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","javascript","spotify","typescript"],"created_at":"2025-03-30T20:31:55.140Z","updated_at":"2025-04-30T22:23:49.761Z","avatar_url":"https://github.com/Nerixyz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Current Song\n\n## ⚠ This project will be rewritten at [Nerixyz/current-song2](https://github.com/Nerixyz/current-song2).\n\nThis application allows users (probably streamers) to show the playing song\nwithout worrying too much about the setup. Ideally you'll install the extension, start\na 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.\nMaybe I'll change that.\n\n# Sections\n\n- [Main Features](#main-features)\n- [Supported Interfaces](#supported-interfaces)\n- [How to set it up](#how-to-set-it-up)\n  - [Error Guide](#error-guide)\n- [Examples](#examples)\n- [Developing](#developing)\n\n### Main Features\n\n- 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).\n  The local server **does not** constantly poll Spotify and YouTube.\n- Watch progress is shown for Spotify, YouTube _and_ VLC (others to come).\n- The server can be ran as a **Windows Service** so won't show up as a window and is started once the PC starts.\n- It always tries to show the last updated source so viewers immediately know the song.\n- The overlay is _fully customizable_ through the `config.css` file in the `overlay` directory.\n\n# Supported Interfaces\n\n- Firefox, Chrome, new Safari (and other Browsers implementing the [WebExtensions API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs))\n- Spotify (requires a Cookie to work, any device is supported)\n- VLC (Lua Interface)\n\n## Supported Websites\n\nThese are **known** websites, the browser extension works with.\nWebsites not listed here aren't tested yet but **might** already be supported.\n\n| Website       | Title              | Progress Bar          |\n| ------------- | ------------------ | --------------------- |\n| YouTube       | :white_check_mark: | :white_check_mark: \\* |\n| SoundCloud    | :white_check_mark: | :white_check_mark:    |\n| Neverthink.tv | :white_check_mark: | :white_check_mark:    |\n| Twitch        | :white_check_mark: | :x:                   |\n| CyTube        | :x:                | :x:                   |\n\n\\* Livestreams aren't supported\n\n# How to set it up\n\nExtract the `build-...zip` into some folder.\n\n**If you've never used this application, run `setup.bat`**\n\nThis application consists of multiple \"modules\" you can toggle.\nThe main configuration can be found in `config.json`.\n\n1. Run `create-service.bat` **as Administrator** (right click the file and select `Run as Administrator`).\n   _Note:_ your AntiVirus might question this action or block it.\n2. Start the service by running `start-service.bat` **as Administrator**.\n\nYou can restart the service (needed once you've changed `.env` or `config.json`).\n\nYou are also able to change the appearance of the overlay. To do this, open the `config.css` in the `overlay` directory.\nYou don't have to restart the service. You only need to **reload** the overlay.\n\n**This is how you configure each module:**\n\n## Spotify\n\n1. Get the `sp_dc` cookie from `open.spotify.com` (see below for Chrome and Firefox)\n2. Open the `.env` file in the current folder\n3. Paste **the value** next to `SPOTIFY_COOKIES=\"sp_dc=`\n4. The line should now look like this: `SPOTIFY_COOKIES=\"sp_dc=AB3DE6...-A2CD5FG...\"`\n5. Make sure the `spotify` module is enabled and configured in your `config.json`:\n```json\n{\n  \"modules\": {\n    ...\n    \"spotify\": {\n      \"enabled\": true,\n      \"options\": {\n        \"cookies\": \":env#SPOTIFY_COOKIES\"\n      }\n    },\n    ...\n  }\n  ...\n}\n```\n`:env#SPOTIFY_COOKIES` will read the variable `SPOTIFY_COOKIES` into `cookies`\n\n### Chrome\n\n1.  Open `open.spotify.com` (and log in)\n2.  Open the Developer Tools (`CTRL + SHIFT + I` or `F12`)\n3.  Go to the `Application Tab`\n4.  In the left pane, in `Storage`, select `Cookies` and then `https://open.spotify.com`\n5.  In the table, search in the `Name` column for `sp_dc`\n6.  Copy the `Value` (**double-click** the cell and press `CTRL + C`)\n\n### Firefox\n\n1.  Open `open.spotify.com` (and log in)\n2.  Open the Developer Tools (`CTRL + SHIFT + I` or `F12` or `SHIFT + F9`)\n3.  Go to the `Storage` Tab\n4.  In the left pane, select `Cookies` and then `https://open.spotify.com`\n5.  In the table, search in the `Name` column for `sp_dc`\n6.  Copy the `Value` (**double-click** the cell and press `CTRL + C`)\n\n## Browser\n\n### Firefox\n\nThe addon is available on [addons.mozilla.org (click)](https://addons.mozilla.org/firefox/addon/current-song-overlay/).\n\n### Chrome\n\n_Note:_ Due to [this 6 year old bug](https://bugs.chromium.org/p/chromium/issues/detail?id=387377),\n the extension will **always** show the currently playing song as it can't detect a _non focused_ window. \n\nThe addon is available on the [Chrome WebStore (click)](https://chrome.google.com/webstore/detail/currentsong/alanjgmjccmkkpmpejgdhaodfjlmcone).\n\n## VLC\n\n1. Run the file `setup.bat`. If you have a regular VLC setup, the vlc module will work.\n2. Make sure `vlc` is enabled in your config file\n\n## Error Guide\n\n* **Service not available** or **cannot run `setup.ps1`:\n  * Open a new `powershell` window as **Admin**. \n  * Run `Get-ExecutionPolicy -List`\n  * If the _ExecutionPolicy_ for **CurrentUser** says `Undefined` then run `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser`\n  * Right click the `build-master-\u003chash\u003e.zip` and open the properties.\n  * At the bottom, check the box saying \"_Unblock_\" and click _Apply_ and _Close_.\n* **File not found**, in a folder with spaces\n  * For now, make sure to put this in a folder without spaces (and no spaces in parent folders).\n\n* **Service Output (stdout/stderr) redirection** (e.g. when the service isn't starting):\n  * **stdout** `.\\nssm set CurrentSong AppStdout \u003cpath-to-logfile\u003e.log`\n  * **stderr** `.\\nssm set CurrentSong AppStderr \u003cpath-to-logfile\u003e.log`\n\n_For more details, see [dudo24's Error Guide](https://github.com/dudo24/current-song-overlay/wiki#error-guide)._\n\n# Examples\n\n### YouTube Player\n\n![YouTube Player](images/default-youtube.png)\n\n### Spotify Player\n\n![Spotify Player](images/default-spotify.png)\n\n### Styled Player\n\n![Styled Player](images/custom-style.png)\n\n# Developing\n\n- **Client (Overlay)**\n  ~~Run `npm i` or `yarn` and run the script `dev`. It will automagically rebuild.\n  You can (most of the time) access the overlay on `localhost:5000`.~~\n  You can use the server's functionality of hosting the overlay.\n  Define the `NON_BUILD_ENV` environment variable (the value doesn't matter, use e.g. 1) and run the server.\n\n- **Extension**\n  Run `npm i` and run the script `rollup-watch`.\n  You can import the extension in Firefox in `about:debugging#/runtime/this-firefox`.\n\n- **Server**\n  Run `deno run --allow-read --allow-net --allow-env server/src/index.ts`.\n  It will read the `.env` file, however it _won't_ automatically rebuild.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerixyz%2Fcurrent-song-overlay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnerixyz%2Fcurrent-song-overlay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnerixyz%2Fcurrent-song-overlay/lists"}