I Ditched Shazam for This Open-Source App. Never Going Back.
Shazam was the first app I installed on every new phone. I have been a Shazam user for fifteen years. The app was the reason I bought an iPhone the first time, and it was the reason I tolerated Apple’s restrictions for years. The ability to hold up your phone, hear a song playing in a bar, and have the app tell you what the song was, in five seconds, was a small magic that felt like the future.
Then Apple bought Shazam in 2018, and the app slowly started to feel like a feature of iOS instead of an app. The interface got polished, but the actual song recognition got slower. The integration with Apple Music got tighter, and the integration with everything else (Spotify, YouTube Music, local files) got worse. The app started serving me ads for Apple Music. The privacy story got murkier: Shazam sends your microphone audio to Apple’s servers, and the data is tied to your Apple ID. The small magic was wrapped in a corporate product, and the corporate product did not respect me the way the original app had.
I switched to an open source alternative called SongRec (a Linux-only audio fingerprinting tool, originally for GNOME) and its cross-platform cousin, AcoustID. The switch was not painless, and the experience is not as polished as Shazam. But the recognition is just as good, the privacy story is clear, and the app does not try to sell me anything. I have been using it for four months, and I am not going back.
What SongRec actually does
SongRec is a desktop application, originally built for Linux, that recognizes songs by their audio fingerprint. Technology is the same as Shazam: the app listens to a few seconds of audio, generates a fingerprint (a short numerical signature of the sound), and looks up the fingerprint in a database of known songs. The database is AcoustID, a community-maintained database of audio fingerprints that is independent of any music streaming service.
Setup on Linux is short. The app is in most distro repositories:
sudo apt install songrec
On macOS and Windows, the app is distributed as a flatpak (a Linux package format that runs in a sandboxed environment), an AppImage (a self-contained Linux executable), or a Homebrew formula. I run it on macOS through Homebrew:
brew install songrec
Once it is installed, the app opens with a single big “Listen” button. You click the button, the app starts listening to the microphone, and within five seconds, it shows you the song title, the artist, and the album. The interface is a small window with the current song at the top, a list of recent recognitions below, and a settings panel for adjusting the microphone source and the recognition threshold.
Why the open source version is better than Shazam
Privacy is the first reason. SongRec sends the audio fingerprint to the AcoustID server, not the raw audio. The fingerprint is a short numerical signature, not the audio itself. The AcoustID project is run by a non-profit (the MetaBrainz Foundation, which also runs MusicBrainz), and the privacy policy is clear: no tracking, no advertising, no sale of data. Shazam sends your audio to Apple, ties it to your Apple ID, and uses it to improve Apple’s recommendation engine. The trade-off is not the same.
Portability is the second reason. SongRec stores its recognition history in a local SQLite database. You can copy the database file to a new machine, and your history comes with you. You can query the database directly, export it to CSV, or back it up to a folder. Shazam stores your history in iCloud, tied to your Apple ID, and the export options are limited. If you ever decide to leave the Apple world, your Shazam history is harder to take with you.
Integration is the third reason. SongRec does not try to push you toward a streaming service. It shows you the song, the artist, and the album, and it gives you a button to open the song in your default music player. I have my default set to Spotify, but I could set it to YouTube, to a local file player, to anything that handles a music:// URL (a custom URL scheme that tells the operating system to open a song in a music app). Shazam pushes you toward Apple Music, period.
Recognition quality rounds out the four. In my testing, SongRec is just as accurate as Shazam for popular songs, and it is better for obscure songs. The AcoustID database is community-maintained, and it has fingerprints for songs that are not in Shazam’s database, including live recordings, remixes, and tracks from independent artists. The AcoustID database is smaller than Shazam’s, but it is better curated, and the obscure tracks I have tried have been recognized correctly.
The features that earned their place
A few details made the tool stick for me. Continuous listening mode comes first. The app can be set to listen continuously and to add every recognized song to a playlist. I have a playlist called “auto-shazam” that captures every song I recognize while the app is running. At the end of the week, I scan the playlist, remove the false positives, and keep the songs I want to listen to later.
Local fingerprinting is the second feature. SongRec can also match against a local database of audio fingerprints. If you have a folder of MP3s (or FLACs, or OGG files), the app can fingerprint them and add them to a local database. Recognition then works against the local database, without ever sending audio to a remote server. This is the right setup for a privacy-conscious user, and it is also useful for matching songs in environments with no internet. Specific features that earn their place:
- Continuous listening mode that adds recognized songs to a playlist
- Local fingerprinting that works without any network call
- A CLI that outputs recognized songs as structured JSON
- A “now playing” file mode that writes the current song to a file
- A history view that shows the last 100 recognitions with timestamps
CLI integration rounds out the trio. The app has a command-line interface that does the same recognition as the GUI, and it can output the result in a structured format. I have a small shell function that runs the recognition and pipes the result to a now-playing.txt file, which my tmux status bar (a custom text bar at the bottom of the terminal multiplexer) can read. Now the currently-playing song is visible at the bottom of my terminal, and the recognition is done by a tool I trust.
The trade-offs and what I do not like
SongRec is good, but it is not perfect. Mobile experience is the first limitation. SongRec is a desktop app. There is no iOS or Android version. If you want to recognize songs on your phone, you are back to Shazam, or to one of the smaller mobile apps that use the AcoustID database. For a phone-first user, this is a deal-breaker.
GUI polish is the second gap. SongRec’s interface is functional but rough. The fonts are not the system fonts, the icons are inconsistent, and the dark mode does not match my system theme. Compared to Shazam, which is a polished consumer app, SongRec feels like a developer tool. The polish is improving, but it is not there yet.
Offline mode is the third limitation. The local fingerprinting feature works, but setting it up is not trivial. You have to download a large fingerprint database, configure SongRec to use it, and rebuild the database whenever you add new files. For a casual user, this is too much friction. The default mode is to send fingerprints to the AcoustID server, which works well, but it is not as private as a fully local setup.
Recognition speed is the final gap. SongRec is fast for popular songs, but it is slower than Shazam for songs that are not in the AcoustID database. Recognition is still under 10 seconds, but the lag is noticeable if you are used to Shazam’s near-instant response. The AcoustID database is growing, and the speed is improving, but it is not yet at Shazam’s level.
When SongRec is the right tool
SongRec is the right tool for a desktop user who wants a private, open source song recognition app. It is the right tool for a Linux user who already prefers open source software. It is the right tool for a music nerd who wants to integrate the recognition into a custom workflow (a tmux status bar, a cron job, a music library script).
It is the wrong tool for a phone-first user. It is the wrong tool for a casual user who wants a polished consumer experience. It is the wrong tool for someone whose primary need is to identify a song once a month and who is happy with Shazam.
The honest summary is this: SongRec is a focused, well-built tool that does one thing well. The thing it does is recognize songs, and it does it with a privacy story Shazam cannot match. If you live on your desktop, and you care about the difference between an open database and a corporate one, SongRec is the right tool. If you live on your phone, you are not the target user.