Identify Songs On Your Linux Desktop Using SongRec, A Shazam Client For Linux

SongRec Shazam music recognition

SongRec is an open source Shazam client for Linux. It's written in Rust, with the GUI using Gtk3.

Using the Shazam audio fingerprinting algorithm, this application can identify a song from an audio file or using the microphone. MP3, FLAC, WAV and OGG formats are supported.

[[Edit]] With version 0.1.4, SongRec is also able to recognize songs from your speakers rather than your microphone, through a checkbox that will be visible when the functionality is available, on compatible PulseAudio setups.

This works by analyzing the captured sound, be it from the microphone or and audio file, and seeking a match based on an acoustic fingerprint in a database of millions of songs. Most of the processing is done server-side (so SongRec connects to the Shazam servers). When finding a match in the Shazam database, SongRec shows the artist, song and album names, as well as the date when the recognition was done. All recognized songs are kept in a history list that you can export to CSV or wipe.

Shazam is a music recognition application own by Apple, available for Android, iOS, watchOS and macOS. It can identify music based on a short sample, provided that the background noise level is not high enough to prevent an acoustic fingerprint being taken, and that the song is present in the software's database.

SongRec can be used both using a GUI and from the command line. Using it from the command line though, it can only identify songs from an audio file. To identify a song using SongRec from the command line, run this command:

songrec audio-file-to-recognized-song /path/to/song.mp3

You might also like: SubSync: Auto Subtitle Synchronization Tool Based On Audio Track

When launching SongRec, it starts with the microphone song recognition turned on, continuously listening for new songs to identify. The microphone input is displayed in the right-hand side of the application window, so you can choose the input device you want to use, and there's also a volume indicator there.

In case you don't want to have the microphone audio recognition turned on, you can either click the button in the application UI to stop it, or launch SongRec with it turned off, using the gui-norecording subcommand (songrec gui-norecording).

Download SongRec

You can install Rust from your Linux distribution's repositories instead of using the instructions provided on the SongRec page. E.g. on Debian / Ubuntu, install the dependencies mentioned on the SongRec page (build-essentials, libasound2-dev, libgtk-3-dev and libssl-dev) as well as cargo and rustc, then install SongRec using cargo install songrec.

You won't find SongRec in your applications menu after installation. Launch it using Alt + F2 or using a terminal and typing songrec or, if /home/<YOUR_USERNAME>/.cargo/bin is not in your PATH, launch it using its full executable path (/home/<YOUR_USERNAME>/cargo/bin/songrec).

[[Edit]] SongRec is now available on Flathub for easier installation across many Linux distributions.