Soundcloud Rich Presence allows you to show off your Soundcloud listening session to your friends using Discord Rich Presence.
It is a combination of a server, communicating with discord itself, and a user-script, running on your browser to send playback information to the server. Sadly, due to restrictions in the rich presence protocol, it is mandatory to run both the server and the user-script in order for the system to work.
Artwork upload is not available by default due to Discord's asset limit (150). In order to activate it, you need to create a new app on the developer interface, and set the new ClientID and your APIKey of the developer interface. More details at Artwork Upload.
My goal is to bring soundcloud-rpc up to date and bring some features:
✓ Switch from Deprecated Request Module to Axios
✓ Add a Listen on SoundCloud!
Button
✓ Change the Play soundcloud
to Listen to SoundCloud
✗ Custom message from Config (not sure 100%)
✓ Take SoundCloud ID automaticaly
Profile | Popup |
---|---|
Profile | Popup |
---|---|
You will need to install nodejs (v10) and npm (v6) first. Make sure the node
& npm
commands are installed on your PATH.
Server:
- Clone the repository somewhere on your hard drive or unzip this archive if you don't have git installed
- Open a terminal in the soundcloud-rp directory
- Install the dependencies with
npm install
- Start the server with
npm run start
- Additionnaly create a systemd service (linux) or startup shortcut (windows) to start the server on bootup
Browser:
- Install a userscript extension for your browser like Tampermonkey
- Download & install
soundcloud-rp.user.js
- Open soundcloud & enjoy
Here is a step by step guide to activate artwork upload:
- In the
config/default.json
file, changeuploadArtwork
fromfalse
totrue
- Go to the developer interface of Discord
- Create a new app, give it a cool name and save it
- Paste the Client ID (found in App Details on the top of the page) into the
config/default.json
file - Hit save changes just in case
- Retrieve your APIKey
- Hit ctrl+shift+i to open the devtools
- Go to the Network tab
- Filter by
/api/
- Click on the first result. If there is no results, try changing page to trigger some requests
- Scroll down to the Request Headers section
- Look for the authorization field and copy the value
- Paste it in the corresponding field of the
config/default.json
file (do not forget to wrap it in double quotes as in"value"
)
- Restart your server and it should be ok!