Privacy · No tracking

Privacy at MusicHoarder

What musichoarder.app collects (privacy-friendly self-hosted analytics and a session cookie) and what a self-hosted MusicHoarder instance does with your music, metadata and credentials.

The short version

MusicHoarder does not sell data, does not run advertising, and has no third-party trackers beyond the self-hosted analytics described below. Your music never leaves your machine: the software runs entirely on your own hardware, and this website does not receive, store or process any audio file. There is no public sign-up, so there is no user database of visitors to leak.

This website (musichoarder.app)

This site is the project home page plus a read-only demo of the application. It processes the following:

  • Analytics: a self-hosted Umami instance (umami.jeffreyyvdb.com), operated by the maintainer rather than by an advertising company. It records page views and basic performance timings — on a shared-song page, also which shared song or album was opened and played — and it includes a session recorder with moderate input masking and a five-minute cap so UI problems can be diagnosed. Umami does not use tracking cookies and does not build cross-site profiles.
  • Session cookie: starting the demo sets a single first-party cookie named mh_session, which identifies your demo session and nothing else. It is removed when you sign out and expires on its own.
  • Server and edge logs: the site is served through Cloudflare, so requests carry the usual technical data — IP address, user agent, requested path — which is used for delivery, abuse prevention and debugging.
  • Email: an address is only ever processed if you enter one to request a magic sign-in link, in which case it is passed to Resend to deliver that one email. The demo does not require an email address.

The demo account is read-only and shared: anything you type into it may be visible to other people trying the demo, and it is reset from a fixed seed. Do not put personal information into it.

The phone app (iOS and Android)

The MusicHoarder app is the same web app in a native frame: it loads the pages of whichever MusicHoarder server you connect it to, and has no pages or data of its own. It ships with no server built in, and the address you enter is stored on your phone and in its own backups, nowhere else. Because it shows that server’s pages, everything described above for the website (analytics, the session cookie, email for sign-in links) applies inside the app as well, and for a self-hosted server whatever that server does. The app itself adds nothing on top:

  • No tracking, analytics, crash-reporting or advertising SDK of its own.
  • Music plays through the phone’s own media player, which shows what is playing on the lock screen and in the notification. Audio streams straight from your server and goes nowhere else.
  • Permissions: internet access, plus what Android needs to keep music playing in the background (a media-playback foreground service and a wake lock). No location, contacts, microphone or file access.
  • Signing in with an email link hands a one-time token to the app through a musichoarder:// link; it is used only to sign you in.

Your self-hosted instance

When you run MusicHoarder yourself, you are the data controller and the maintainer has no access to anything. Your audio files, your PostgreSQL database and your API credentials stay on your infrastructure. The maintainer receives no telemetry from installed instances — there is no phone-home, no usage beacon and no crash reporting built into the application.

Your instance does talk to third parties on your behalf, and only for metadata:

  • Fingerprints and track durations go to AcoustID, and release lookups go to MusicBrainz, to identify songs.
  • Spotify, Deezer, Apple Music and the Cover Art Archive are queried for metadata, artwork and album details. Connecting your own Spotify account through OAuth is optional and only used to import your liked songs and playlists.
  • LRCLIB is queried for synced lyrics.
  • If you enable AI match grading or AI lyrics transcription, the corresponding request is sent to whichever OpenAI-compatible endpoint you configured, using your own key.

Every one of those providers is optional, and each can be turned off in configuration. With them all disabled, MusicHoarder makes no outbound requests at all.

Your choices and contact

You can browse this site with an ad or tracker blocker and everything except the demo will work normally; the analytics script fails closed. To remove the demo session cookie, sign out or clear cookies for this domain. Browsing this site creates no account and no stored profile, and the analytics are anonymous and not tied to anyone, so there is nothing per person in them to export or delete. If you have an account on musichoarder.app, you can ask for it, or some of its data, to be deleted: the delete-account page below says how, what is removed and what is kept.

Last updated 2026-11-14 · Read as Markdown