Du bist hier:Start»Linux»Shazam

Shazam für Linux

24.04.2015

Shazam for Linux

Update April 2022: Mittlerweile gibt es mit Bliss OS einen Nachfolger von Android-x86, der auch Apps für die ARM-Prozessor-Architektur ausführen kann. Mit Bliss OS 11.13 GMS Stable (x86_64) in VirtualBox und der Shazam-Version 12.14 konnte ich die Musikerkennung erfolgreich unter Linux testen.

sha1sum Bliss-v11.13--OFFICIAL-20201113-1525_x86_64_k-k4.19.122-ax86-ga-rmi_m-20.1.0-llvm90_dgc-t3_gms_intelhd.iso
df0d4ca5a6391c81056ab41f8f72a23146097186

sha1sum shazam-12-14-0-220303.apk
a290bd9a91b0fa4c97d05928d9fce9958f17fea1

Manchmal funktioniert die Shazam-App nach einer gewissen Benutzungszeit nicht mehr und möchte keine Lieder mehr erkennen. Dann hilft es, die App-Daten und den Cache von Shazam zu löschen (Einstellungen - Apps) und mit einem "frischen" Shazam die Lieder zu erkennen.

Shazam in Bliss OS

Shazam in Bliss OS unter VirtualBox

Update Mai 2020: Mittlerweile gibt es ein Python-Programm, das für Musikerkennung unter Linux aus Anwendersicht halbwegs benutzbar ist: Audio Fingerprinting with Python.

Update Februar 2018: Shazam hat die Unterstützung für ältere App Versionen eingestellt. Dadurch funktioniert die Anleitung für die Shazam-Version 4.4 für x86 Prozessoren leider nicht mehr. Neuere Versionen der Shazam-App unterstützen nur noch ARM-Prozessoren beziehungsweise ARM-Simulatoren.

Shazam ist eine App zur Musikerkennung von Millionen Liedern. Sie besteht aus einer Client-seitigen Software, die Musik aufnimmt und einer Server-seitigen Datenbank mit Musiktiteln zum Vergleichen. Die Client-seitige Software gibt es hauptsächlich für Smartphones. Eine PC oder sogar Linux-Version bietet Shazam im Augenblick nicht an (Stand 2015). Eine Alternative ist es, Shazam in einer virtuellen Maschine mit Android-x86 zu installieren. In einem Youtube-Video zeige ich, wie die Installation von Shazam unter Linux möglich ist.

Links zum Video:

Prüfsummen

Die Kombination der Version Android-x86 4.0-r1 (für Eee PC) und Shazam 4.4.0 für Android hat in VirtualBox unter Linux funktioniert. Es kann sein, dass auch neuere Versionen von Android-x86 und Shazam funktionieren - allerdings habe ich keine anderen Kombinationen getestet. Die Prüfsummen der Dateien sind:

# checksums of the downloaded files:

sha1sum *
1953717ac1d606d57fc7d7293b367f8025c51b65  android-x86-4.0-RC2-eeepc.iso
e05c88ddb6d891edebcfa5e5c7fe690f0e62af01  cc.co.eurdev.urecorder_5.apk
488e793e82a984f6573b0467d409fc5fa25a76be  shazam-4-4-0-jb82212-en-android.apk

Die Installation

Die Installation von Shazam unter Linux läuft wie folgt ab:

  1. VirtualBox installieren
  2. Android-x86 in VirtualBox installieren
  3. DNS-Server in Android setzen und die Netzwerkverbindung testen
  4. im Terminal die zweite Netzwerkschnittstelle für die Verbindung zwischen virtueller Maschine und Gast-System konfigurieren
  5. mit der Android Debug Bridge (adb) das Host-System mit der virtuellen Android-Maschine verbinden
  6. den Urecord Audio Recorder und Shazam in Android-x86 installieren
  7. mit PulseAudio Volume Control (pavucontrol) die abgespielte Musik als Aufnahme umleiten (Monitor of Internal Audio)
  8. mit Urecord testen, ob die Aufahme in Android-x86 funktioniert
  9. Shazam starten und Musik erkennen lassen
  10. optional: in die virtuelle Maschine mit Android einloggen und die erkannten Lieder mit der Maus kopieren

Kommandozeilen

In dem Video habe ich einige Befehlszeilen benutzt, um die virtuelle Maschine mit Android und das Host-System zu konfigurieren. Zum Beispiel den DNS-Server in Android-x86 setzen oder die lokale Shazam-Datenbank auslesen:

# set the second network interface in Android:
busybox ifconfig eth1 192.168.56.2 up

# set the name resolution in Android
setprop net.dns1 8.8.8.8

# test the network connectivity
ping google.de


# in the host system:

# set the host-only adapter in the host system:
ifconfig vboxnet0 192.168.56.1 up

# connect via android debug bridge (adb) to the virtual machine
adb connect 192.168.56.2:5555
adb shell
stty rows 30 cols 130

# read the local shazam database to copy the track title
sqlite3 /data/data/com.shazam.android/databases/­library.db .d | grep track\"

Musik

Die im Video benutzte Musik ist:
Oh Wee von Immortal Beats. Sie ist unter der Attribution-ShareAlike 3.0 International License lizensiert. CC-by-SA.
https://creativecommons.org/licenses/by-sa/3.0/

Dieses Lied habe ich aus rechtlichen Gründen zur Demonstration für das Video ausgewählt. Shazam kann natürlich genauso gut die aktuellen Chart-Hits erkennen.

Falls noch etwas unklar sein sollte, dann kannst du die Kommentar-Funktion benutzen.

Kommentar schreiben

Ihre Daten werden verschlüsselt übertragen. Der Kommentar wird gelesen und eventuell veröffentlicht.
Wenn der Inhalt des Kommentars oder Teile des Kommentars nicht veröffentlicht werden, dann werden die gespeicherten Daten nach maximal 4 Wochen gelöscht. Um zukünftigen Missbrauch der Kommentarfunktion zu verhindern, werden die zum Kommentar gehörenden IP Adressen maximal 4 Wochen gespeichert.