New Random Album Extension

In Roon style, a big tease on what I’m working on (but may not come to anything for a few months :rofl:)

Might include video too :scream:

Whilst I’m happy to put this out as an update and for the most part, it works and is quite effective it’s still a WIP build, an Early Access build.

What’s new since v1.6.15

Fixed: duplicate extension authorizations (v1.6.16) — the Roon pairing token now lives on the persistent data volume, so updates reconnect with the same authorization instead of piling up ghost entries in Roon → Settings → Extensions. (Remove the old duplicates once by hand.)

New: Wall display (v1.6.17–v1.6.21) — a Roon-style always-on screen at http://<server-ip>:3399/display for any tablet or TV browser:

• Follows the playing zone automatically (or pin one with ?zone=), with a Nest-Hub-style progress strip along the bottom — track, artist · album, elapsed/total.
• Rotates between album art, artist photos (FanArt.tv), an album review, an artist bio, and “More from this artist” / “More on this label” cover grids drawn from your own library — tap a cover to Play now or Queue it straight to the display’s zone.
• Official music videos (optional — needs a free YouTube API key, see below): when the playing track has an official video or official live performance on the artist’s own channel, the display opens straight to it, muted and synced to the track’s live position, and stays on it. Strict matching means no chat-show clips, fan uploads, or lyric videos — a wrong video never beats no video.
• On-screen mode chips — tap the screen to reveal Auto / Art / Photos / Bio / Review / Library / Video and pin any view; a pinned video plays through in full.
• On/off toggle and rotation-speed slider (5–60s) in Settings. When off, the page fetches nothing.

Optional: Getting a YouTube Data API v3 key (free)

  1. Go to console.cloud.google.com and sign in with any Google account.
  2. Create a project: click the project dropdown (top bar) → New project → name it anything (e.g. “MusicD Display”) → Create, and make sure it’s selected.
  3. Enable the API: menu → APIs & Services → Library → search “YouTube Data API v3” → open it → Enable.
  4. Create the key: APIs & Services → Credentials → + Create credentials → API key. Copy the key shown.
  5. (Recommended) Click Edit API key → under “API restrictions” choose Restrict key → tick only YouTube Data API v3 → Save. This makes the key useless for anything else if it ever leaks.
  6. Paste the key into MusicD → Settings → YouTube API key → Save.

No billing account is needed — the free quota (10,000 units/day) comfortably covers a home display: each new track costs about 100 units, and results are cached, so that’s roughly 90+ fresh tracks per day before it would ever pause until midnight (Pacific time), when the quota resets.

3 Likes

Hello @MusicD
Thanks for your work and for this new version.
While using your extension, I noticed a few minor errors regarding the identification of an artist or an album.
Would you like me to report all of these errors to you?
I don’t have a Git account and I’m not sure I know how to use it properly; that said, if you prefer using Git for this, I can give it a try…

Hi @Dirk-Pitt

Thank you :folded_hands:

You can raise the issues here :+1: and Screenshots will also help me.

I had a few issues similar to what you’ve encountered, but it turned out that Roon was reporting more albums than are in my library. If you head to the Roon remote and the albums page, does it show more albums, e.g. 6228 of 6104

If this is the case, it’s a Roon bug and has been around for a few years now. It affects some more than others. It hasn’t occurred to me for about a week now and it can happen at random.

The way the extension shows the albums is a direct mirror to what’s in Roon, but this could be a true bug and I’m happy to check it out.

1 Like

Thanks @MusicD

Regarding the number of albums, this is what I have:

  • if the “Show hidden tracks and albums” option is checked: Roon Remote displays 6321 albums
  • if the “Show hidden tracks and albums” option is not checked: Roon Remote displays 5912 albums
  • via API: 5912 too
16:57:08.295 [INFO] -> REQUEST 3 com.roonlabs.browse:1/browse {"hierarchy":"albums","input":null,"item_key":null,"multi_session_key":null,"pop_all":true,"pop_levels":null l,"refresh_list":false,"set_display_offset":null,"zone_or_output_id":"160187bc7745777c31d9035b57893eea2a0a"}
16:57:08.409 [INFO] <- COMPLETE 3 Success {"action":"list","list":{"level":0,"title":"Albums","subtitle":null,"image_key":null,"count":5912,"display_offset":null}}

I’ve pushed out v1.6.29, 8 builds of general under the hood improvements.

I’m working on something else at the moment to add to this extension, but it’ll be several weeks before another release. A family holiday/vacation is coming up where I maybe able to test the development builds (which might give you a clue to what it could be)

2 Likes

Very nice work @MusicD and for once maybe you have earned your holiday :rofl:

Very nice random album of the day as well :+1:

1 Like

Is anyone running this on a Mac using Docker Desktop? I’m a Docker novice, and not able to get things up and working…

Apologies @Mark_McClusky1 , I had overlooked the requirements for MacOS users. My OP cannot be edited but I also need to edit my GitHub page.

MacOS installs as follows

For macOS, the main requirement is to install Docker Desktop first, since Docker is not included with the operating system.

1. Install Docker Desktop

  1. Download Docker Desktop for Mac from:
    https://www.docker.com/products/docker-desktop/
    (Ensure you’re installing the correct version for Mac or Intel chips)
  2. Open the downloaded .dmg.
  3. Drag Docker.app into your Applications folder.
  4. Launch Docker from Applications.
  5. Grant any permissions macOS requests.
  6. Wait until Docker Desktop reports Engine running (the whale icon in the menu bar will stop animating).

Verify Docker is installed:

docker --version
docker compose version

You should see version information for both commands.

2. Download and build the extension

Open Terminal and run:

mkdir -p ~/roon-random-albums
cd ~/roon-random-albums
curl -L -o roon-random-albums-v1.6.29-docker.tar.gz \
https://github.com/meltface-80/Roon-Random-Albums-Extension/releases/download/v1.6.29/roon-random-albums-v1.6.29-docker.tar.gz
tar -xzf roon-random-albums-v1.6.29-docker.tar.gz
docker build -t roon-random-albums:1.6.29 .

3. Run the container

If you use local music replace /Users/yourusername/Music with the folder containing your music library.

docker run -d \
  --name roon-random-albums \
  --restart unless-stopped \
  -p 3399:3399 \
  -v roon-random-albums-data:/app/data \
  -v /Users/yourusername/Music:/music:ro \
  roon-random-albums:1.6.29

Or if you only use Qobuz or TIDAL


docker run -d \
  --name roon-random-albums \
  --restart unless-stopped \
  -p 3399:3399 \
  -v roon-random-albums-data:/app/data \
  roon-random-albums:1.6.29

4. Open the extension

In your browser, go to: (don’t forget to use your Roon server IP address)

http://<your.server.IP>:3399

Please let me know if you run into any trouble.

1 Like

I was listening to the Sopwith Camel album *The Miraculous Hump Returns from the Moon*, but the biography section is showing me information about J. Geils, who has nothing to do with the band Sopwith Camel. Is this a bug?

I’ll look into it :+1:

Edit: it’s confusion over names of “Sopwith Camel” from San Francisco and “Snoopy and the Sopwith Camels” from Worcester, Massachusetts.

https://en.wikipedia.org/wiki/The_J._Geils_Band#:~:text=The%20band%20started,Salwitz%20("Magic%20Dick")

Good spot and it’s this kind of inaccuracy I can easily fix :+1:

1 Like

Hmmm… that’s not the same band i was listening. And i noticed it happens at every track i listen to. Never the bio is related to the artist i am listening…

Please can you post some screenshots of what’s playing and then what you are seeing so I can be accurate in what I think is going on

I understand you were listening to Sopwith Camel and the artist bio was incorrect

For example…

1 Like

Hmmm….. I’m seeing a regression as I’m seeing a few incorrect artist bios.

What’s strange is an album I listened to last night which correctly displayed the correct artist bios now doesn’t.

I’ll jump straight on this.

1 Like

Thanks for the instructions – we’re almost there. All installed, and launches in the web browser. But doesn’t show up in the Extensions menu to enable it, so I’m stuck at waiting for Roon Core…

Seems like it might be a networking limitation on Docker Desktop. Troubleshooting here.

Please could you run the below and post back the output :folded_hands:

docker inspect roon-random-albums

Also, is your Roon server running on the same Mac as the Docker container, or on another computer on your network?

It’s running on the same Mac as the Docker container. Claude helped me find a solve by adding a variable to pass through the IP address of the Roon Core. I’ll DM you with the change it suggested, which now allows it to connect to the Roon Core.

1 Like