SongRec  by marin-m

Open-source Shazam client for Linux, written in Rust

created 5 years ago
1,567 stars

Top 27.3% on sourcepulse

GitHubView on GitHub
Project Summary

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

  • Installation: Available via pacman (Arch Linux), PPA (Ubuntu), Flatpak, or cargo install songrec.
  • Dependencies: rustc (>= 1.70), build-essential, libasound2-dev, libpulse-dev, libgtk-3-dev, libssl-dev, intltool. ffmpeg is recommended for broader audio format support.
  • Usage: Launch GUI with songrec or songrec gui. Command-line recognition via songrec listen or songrec recognize.
  • Docs: https://github.com/marin-m/songrec

Highlighted Details

  • Recognizes audio from microphone or speakers (PulseAudio).
  • Maintains a history of recognized songs, exportable to CSV.
  • Supports continuous song detection from the microphone.
  • Privacy-focused: only audio fingerprints, not raw audio, are sent to Shazam servers.

Maintenance & Community

The project is actively maintained by marin-m. Community interaction channels are not explicitly listed in the README.

Licensing & Compatibility

  • License: GNU GPL v3.
  • Compatibility: GPLv3 is a strong copyleft license, requiring derivative works to also be open-sourced under GPLv3. This may restrict linking with closed-source applications.

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.

Health Check
Last commit

20 hours ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
1
Star History
69 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.