|
| 1 | +# 🎧 RoonCordJS - Show off your tunes! |
| 2 | +#### Want to be able to show your friends what you're listening to through the most sophisticated library management software in the world? Here's the answer to that call. |
| 3 | + |
| 4 | +## ✅ What it does: |
| 5 | + |
| 6 | +- Connects to Roon Core neatly as an extension. One click in Settings->Extensions and you've enabled RoonCord! |
| 7 | + |
| 8 | +- Pulls artist, track, album and cover art from Roon's API for the active zone. |
| 9 | + |
| 10 | +- Provides album art for RPC via one of <b>three</b> methods: |
| 11 | + |
| 12 | + - <b>Imgur:</b> If you signed up [for an OAuth 2 application,](https://api.imgur.com/oauth2/addclient) you can easily add your client ID and start uploading album art |
| 13 | + |
| 14 | + - <b>Self-hosting:</b> If you want to run your own ingest using the cloud or local infrastructure, I've got a sample project with optional Bearer token auth ready to go! It also runs off of NodeJS, with fully self-contained Express.js REST/file serving endpoints. |
| 15 | + |
| 16 | + - <b>MusicBrainz:</b> If you don't want to do any of that nonsense, just let MusicBrainz match your cover art! Not always guaranteed to be accurate though, especially with more niche tracks or self-tagged libraries. |
| 17 | + |
| 18 | + - <b>None of those:</b> That's right, if you don't care and don't mind that others just stare at the Roon logo, we've got you covered there too. |
| 19 | + |
| 20 | +- Caches album art upload URLs to prevent multiple uploads for tracks in the same album. |
| 21 | + |
| 22 | +- Self-validates configurations should you choose to modify them for your own taste. |
| 23 | + |
| 24 | +- Shows a progress bar indicating how far you've made it through a track (sort of reliable, more on that later) |
| 25 | + |
| 26 | +## ❌ What it does NOT do: |
| 27 | + |
| 28 | +- Get track information (including sample rates, devices, and MUSE chains) |
| 29 | + |
| 30 | + - Potentially I may have a workaround for this but will require me using MemoryJS to tap Roon (and RAATServer) for the relevant values. This is going to take a LOT of experimenting. |
| 31 | + |
| 32 | +- Modify your library in any way |
| 33 | + |
| 34 | + - Maybe a Lyrics searcher/embedder as a separate utility? Who knows. |
| 35 | + |
| 36 | +- Let others listen to your music alongside you |
| 37 | + |
| 38 | + - Keep dreaming. |
| 39 | + |
| 40 | +- Break any Terms of Service provided by Discord or Roon Labs. |
| 41 | + |
| 42 | +## 📜 Requirements: |
| 43 | + |
| 44 | +- NodeJS 20 LTS (latest release preferred) |
| 45 | +- npm (should come with NodeJS) |
| 46 | +- A Roon Core to communicate with |
| 47 | +- A Discord account and desktop app |
| 48 | + |
| 49 | +## ▶️ How to run: |
| 50 | + |
| 51 | +1. Clone the repo: |
| 52 | + |
| 53 | + `git clone https://github.com/prolix-oc/RoonCordJS` |
| 54 | + |
| 55 | +2. Install all dependencies: |
| 56 | + |
| 57 | + `npm install` |
| 58 | + |
| 59 | +3. Run it! |
| 60 | + - On Windows, double click or run in Command Prompt/Terminal: |
| 61 | + |
| 62 | + `launch.bat` |
| 63 | + |
| 64 | + - On Linux, first |
| 65 | + |
| 66 | + `chmod +x ./launch.sh`, then run |
| 67 | + |
| 68 | + `./launch.sh` |
| 69 | + |
| 70 | + - Or if you prefer the manual, platform-agnostic way: |
| 71 | + |
| 72 | + `node index` |
| 73 | + |
| 74 | +On first run, it'll download an original copy of the `options.json` file that's configured for MusicBrainz art only. You can explore this file and add your own info! |
| 75 | + |
| 76 | +## 📸 Screenshots |
| 77 | + |
| 78 | + |
| 79 | + |
| 80 | + |
| 81 | + |
| 82 | + |
| 83 | +## ❗ Got an issue? |
| 84 | + |
| 85 | +Feel free to report it in the [repository issues](https://github.com/prolix-oc/RoonCordJS/issues), and I'll see what went wrong for you! |
| 86 | + |
| 87 | +## ⚠️ Known Issues: |
| 88 | + |
| 89 | +- Progress bar seems to get confused when you pause. I've attempted to mitigate this by changing the timestamp when it's paused, but this will need more iteration. |
| 90 | + |
| 91 | +- Sometimes, the RPC won't show data immediately and will require a zone change to update. This could be a simple fix! |
| 92 | + |
| 93 | +- The track, album, artist and zone info layout is not editable at the moment. I'm looking to change this soon, and make it very templateable. |
0 commit comments