Open-source Shazam client for Linux, written in Rust
Top 27.3% on sourcepulse
SongRec is an open-source Shazam client for Linux, written in Rust, designed for users who need to identify music playing around them or from audio files. It offers both a graphical user interface and command-line functionality, providing a convenient and privacy-focused alternative to proprietary services.
How It Works
SongRec implements a client-side audio fingerprinting approach, mirroring Shazam's core methodology. It generates spectrograms of audio input, identifies frequency peaks, and downsamples the audio. These peak data points are then sent to Shazam's servers for matching against their extensive music database. This server-centric processing means the client itself is lightweight, with the heavy lifting of song recognition handled remotely.
Quick Start & Requirements
pacman
(Arch Linux), PPA (Ubuntu), Flatpak, or cargo install songrec
.rustc
(>= 1.70), build-essential
, libasound2-dev
, libpulse-dev
, libgtk-3-dev
, libssl-dev
, intltool
. ffmpeg
is recommended for broader audio format support.songrec
or songrec gui
. Command-line recognition via songrec listen
or songrec recognize
.Highlighted Details
Maintenance & Community
The project is actively maintained by marin-m. Community interaction channels are not explicitly listed in the README.
Licensing & Compatibility
Limitations & Caveats
Flatpak installations may have limitations on CLI features due to sandboxing. The README notes that software patents may apply in certain regions, particularly the United States, which could affect usage.
20 hours ago
1 day