Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Music Spider - a selfhosted tool for finding concerts based on your listening history (Plex, Spotify, etc.)

Featured Replies

Screenshot-EventsTab-2026-08-19.png

What is Music Spider

Music Spider finds concerts for music you like. It does this by building a list of your most-listened-to artists (Plex via Tautulli and/or Spotify), searching event APIs (Ticketmaster, Resident Advisor) to find upcoming shows near you, and (optionally) notifying you by email, calendar, or a generic webhook. It only finds events based on the artists you listen to - never recommending X because you like Y.

This incarnation of the project is about a month old as of writing. I wrote the first incarnation of it in Google Apps Script in 2023. It came about because I almost missed out on a concert I would've regretted missing - and I don't want to use some service that's going to sell my data and send me spam mail. This version is the same idea adapted as a selfhosted tool. Obviously there are services out there that do this so this is just meant to be a version of that which you control.

At the time of writing, it has just been me testing this. So If you have suggestions or questions let me know. Create an issue or reply here.

Features

  • Top Artists tracking: from Plex (via Tautulli), Spotify, both, or manual-only (no API fetching, just artists added to custom list); ranks your top artists in short term, medium term, and long-term windows; optional scheduled auto-refresh.

  • Custom list: manually pin artists to always include

  • Ignore list: exclude specific artists from top-artists and event search entirely (e.g. artists who are not alive, not touring, or you're just not going to see them live)

  • Event search: Ticketmaster and/or Resident Advisor matched against your list of artists - schedule weekly event searches to update the list or start the search manually

  • Events UI: Peruse the discovered events in card and list views, sortable columns, per-event delete/ignore

  • Notification Methods:

    • Weekly event digest email

    • Google Calendar sync - via a connected Google account (OAuth) or a GCP service account (no OAuth consent screen or HTTPS needed),

    • generic JSON webhook (e.g. Discord, Home Assistant)

  • Settings UI: Supply API keys, set your location, and set up any notification methods

  • Theming: Grayscale and Catppuccin Mocha themes

Tech Stack

  • Framework: Next.js 16 (App Router) with React 19

  • Styling: Tailwind CSS 4

  • Runtime: Node 20, packaged as a Docker image

  • Storage: flat JSON files on disk (no database) - settings, event store, artist lists, and caches, managed through a small file-store module

  • Auth: OAuth flows for Spotify and Google, using popup windows for the consent step

  • External APIs:

    • Tautulli API,

    • Spotify Web API,

    • Ticketmaster Discovery API,

    • Resident Advisor's public GraphQL API,

    • Google Gmail/Calendar APIs

  • Deployment: Docker / Docker Compose, instructions for Unraid as well

Requirements

  • Docker

  • Artists Source Options:

    • Tautulli: API key (from Tautulli settings)

    • Spotify: create an API key from developer.spotify.com (and an HTTPS connection for OAuth if not viewing WebUI from 127.0.0.1)

  • Event Search options:

  • Options for Notifications:

    • Weekly email events digest (connect using SMTP, Google OAuth)

    • Add events to a calendar (connect to calendar using CalDAV, Google OAuth, Google Cloud Project service account)

    • Custom webhook - can be used to send event summary to Discord, Slack, etc.

Installation

  • Unraid: It is not in CA yet so follow these to get the :latest from the Docker Hub repository

  • Docker Compose

Configuring the app

Edited by vxlx

  • vxlx changed the title to Music Spider - a selfhosted tool for finding concerts based on your listening history (Plex, Spotify, etc.)

Hi

Thanks for your app !

Two comments :

The Tautulli URL must not end with a "/", otherwise it won’t work. Perhaps this should be mentioned in the documentation or in the field’s placeholder

Resident Advisor’s suggestions aren’t displaying

To display them, you need to either:

- remove the ‘absolute’ class from the list, but in that case the box will expand to fit the content

- remove the ‘overflow-hidden’ class from both parent divs

  • Author
8 hours ago, deadnote said:

The Tautulli URL must not end with a "/", otherwise it won’t work. Perhaps this should be mentioned in the documentation or in the field’s placeholder

Thanks for the heads up. I'll patch this so that it's more flexible.

8 hours ago, deadnote said:

Resident Advisor’s suggestions aren’t displaying

To display them, you need to either:

- remove the ‘absolute’ class from the list, but in that case the box will expand to fit the content

- remove the ‘overflow-hidden’ class from both parent divs

Did you specify what region you're in in the settings? If so, can you clarify or send a screenshot? If you don't mind, in events.json can you see if Resident Advisor shows up there. I want to figure out if it is not searching Resident Advisor or if its finding them and not displaying them properly.

I think I understand what you mean now - the region search dropdown for RA. I'll implement a fix for this as well.

Edited by vxlx

  • Author

Patched both issues. Thanks for the heads up @deadnote . Let me know if you have any other issues (edit: or if either of these persists).

Edited by vxlx

image.png

Can you tell me where can I find the tricketmaster api key ?

Edited by deadnote

  • Author

Consumer key. I'll rename this in the settings.

Edit: Patched in 0.2.3.

Edited by vxlx

Another question about ticketmaster settings : what is the expected format for lat/lng ? With space "45.764042 4.835659" ? With separator "45.764042/4.835659" ? Another one ?
Is it possible to add more than one location ?

Thanks

  • Author

Separated by a comma. E.g. "45.764042, 4.835659". I'll patch it so that it is more flexible and will accept multiple ways.

At the moment it's not possible to add another location for Ticketmaster. I can make it possible like with Resident Advisor.

Edited by vxlx

  • Author

Added a mutli-line text area for the Ticketmaster latitude/longitude parameter. So now you can add one per line if you want to search multiple locations. It's also much more flexible about how you write the coordinates - can be separated by comma, space, slash, semicolon, etc.

Edited by vxlx

  • 3 weeks later...

Hi

I think, I missing something in my configuration.

Example with "Placebo".

The group is present in the artist list.

A show is sheduled https://www.ticketmaster.fr/fr/manifestation/placebo-billet/idmanif/653390 at Decine Charpieu. Is less than 10km from Lyon (45.764042-4.835659)

image.png

But nothing appears in the events list.

The logs shows "Ticketmaster Search complete - Results: []"

  • Author

The first thing that jumps out is the way you're writing the latitute/longitude. Using a - dash as a separator is confusing because there are negative longitudes. So it could be turning that into a different location than you intend. It might work better if you use a comma or a space between them.

I tried this myself though and I'm not getting results either so I'm going to dig into it more and see what I can figure out. I'll get back once I learn some more.

Edited by vxlx

  • Author

I figured out what caused it. If you don't force it to include all locales, the API assumed English-only locales and dropped all other event results. I've added something to force it to accept all locales by adding locale: "*" to the API request. I'll push this patch and that update should fix it for you. Let me know if not though.

Edited by vxlx

  • Author

This also highlighted a different issue. Placebo, in this case, came up with multiple results that are different "hospitality packages" (VIP, etc). The app was only accepting the first result it found and ignoring the rest, which sometimes was a hospitality package.

Now, I've added an option to include these package tickets if one wants. When off, it will only drop these if it also finds the original source event. So no events will be hidden unless it finds a source event that isn't a "hospitality package". It defaults to being off (hiding hospitality package listings).

Edited by vxlx

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.