Skip to content
Contact

How can I help?

Support is available in both English (Hello!) and German (Moin!). I'll get back to you ASAP during my business hours (Mo-Fr, 10:00-17:00 CET).

Listening Post icon Home Listening Post

Listening Post › The Basics

Listening Post hears what you hear. Every minute, it quickly uses the microphone to check for playing music; when it detects a song (using Apple's ShazamKit), it'll verify the recognition a few seconds later. If it's successful in that, the recognized track is saved to its internal database.

No audio leaves your Mac! Only a tiny "digital fingerprint" is created, which can't ever be reversed into audio. It's entirely safe to keep this app running. To verify this claim, feel free to check LP's network traffic.

Then, it continues to …

Track enrichment is the process of adding extra metadata to a song after Shazam identifies it. When Listening Post recognizes a track, Shazam provides basic information like artist, title, and Apple Music details. Enrichment fills in the gaps by querying external services for additional identifiers and links that Shazam doesn't provide — things like album title, release year, MusicBrainz recording IDs, and service-specific URLs (like Last.fm's track link).

Enrichment happens in two phases. First, a Spotify baseline lookup runs automatically for every recognized track (regardless of which channels you've enabled). It uses the track's ISRC code to find it on Spotify, filling in album title, release date, duration, artwork, and artist data. (You do not need a Spotify account for this.)

After that, per-channel enrichment kicks in for enabled channels: ListenBrainz provides MusicBrainz recording IDs, Last.fm provides direct links to the track's Last.fm page, and Deezer provides its own track URL and ID. Each source is only queried when its corresponding channel is enabled and configured. For example, if you haven't set up Last.fm, the app won't bother asking Last.fm for data.

Enrichment happens asynchronously in the background after a track is recognized, once per unique track (not per recognition!), so repeat plays of the same song don't trigger redundant lookups. If an enrichment request fails, the system retries a few times before giving up.

Once a track is enriched and good to go, it's added to an outbox queue, waiting for the end of the so-called …

When a track is recognized, it gets added to a queue for each enabled channel. The app waits for the configured publish delay (default: 5 mins) before sending tracks to any channel — this gives you time to skip false positives (or tell the app to forget particularly awful songs) before they're recorded anywhere. If publishing fails for a particular channel, the track stays in the queue for retry.

After the delay, the track is sent to the channels you've configured.

Global actions are actions like Like, Unlike, and Forget track. When you like a track, and have remote channels enabled (Last.fm and/or ListenBrainz), then this info will be relayed to those channels, meaning your like will propagate to Last.fm or ListenBrainz.

Then there are so-called channel track actions which only become available when a channel is enabled, and is properly configured, and the track is fully recognized and enriched.

For example, once you've enabled the Last.fm channel, and have authenticated the app there, and the track is ready to go, then the channel's track actions will let you open the track on the site, let you copy the track's link to your clipboard:

Track menu with channel actions