Amarok mit MySQL

Unter Linux ist mein bevorzugter Musikplayer MPD wegen seiner Einfachheit, weil er als Daemon
läuft und mir die Wahl zwischen verschiedenen GUIs (oder gar keiner) lässt. Manchmal vermisse ich
jedoch Funktionen wie Wiedergabezähler, Playlisten‑Generatoren, Cover‑Abruf, Integration mit Last.fm
und Wikipedia, den Interpreten „Various“ und vieles mehr.
Der funktionsreichste Player für Linux ist vermutlich Amarok.
Normalerweise installiere ich Amarok nicht als Standardplayer, da er schwergewichtig ist, viel RAM verbraucht und einige QT‑Bibliotheken benötigt. Dennoch gebe ich meinen Minimalismus gelegentlich auf und installiere den Wolf‑Player (um später wieder zu MPD zurückzukehren).
Standardmäßig verwendet Amarok eine SQLite‑Datenbank, was für Nutzer mit einem Rechner und wenigen
Songs ausreichend ist. Das ist nicht mein Fall (meine Musiksammlung liegt bei ~600 GB).
Für große Bibliotheken kann MySQL die Performance deutlich verbessern. Hier die Einrichtung:
Amarok2 und MySQL installieren:
sudo pacman -S amarok mysql
MySQL konfigurieren und mysqld in rc.conf zu den Daemons hinzufügen.
Datenbank amarokdb anlegen, Benutzer amarok erstellen und ein Passwort setzen:
sudo mysql -p -u root
CREATE DATABASE amarokdb;
USE amarokdb;
GRANT ALL ON amarokdb.* TO amarok@'%' IDENTIFIED BY 'sua_senha';
FLUSH PRIVILEGES;
quit
Mit dieser Konfiguration kann ich die DB mit anderen Rechnern teilen. Für lokalen Zugriff nur:
GRANT ALL ON amarokdb.* TO amarok@localhost IDENTIFIED BY 'your_password';
Amarok öffnen: Settings… » Configure Amarok » Database, Use external MySQL database aktivieren,
Daten eintragen, Programm neu starten.
Jetzt die vielen Funktionen erkunden.
Nach dem Einrichten und Aktualisieren der Bibliothek nutze ich ein Plugin, das meinen
Wiedergabezähler mit Last.fm synchronisiert: Klastfm – Download
hier.
Der Entwickler hat seit einem Jahr nicht aktualisiert, daher habe ich ein paar Fehler manuell behoben.
Zuerst Ruby 1.8.7 und rubygems‑1.8 installieren:
Dann folgende Ruby‑Pakete installieren:
sudo gem-1.8 install activerecord mysql httparty progressbar ya2yaml —no-rdoc —no-ri
In klastfm.rb Zeile 27 auskommentieren:
line 27: #ActiveRecord::Base.logger = Logger.new('log/database.log')
In Zeile 93
@lastfm.tracks_in_week(week['from'], week['to']).each do |track|
ersetzen durch
[*@lastfm.tracks_in_week(week['from'], week['to'])].each do |track|
/config/config.yaml.example nach /config/config.yaml kopieren und deinen Last.fm API‑Key
eintragen: http://www.last.fm/api/account.
Mit ruby-1.8 klastfm.rb starten. Das Programm lädt alle Scrobbles von Last.fm und führt sie mit
der Amarok‑DB zusammen. Dauert etwas, lohnt sich aber.
creating a statistic entry for every track
creating stat: 100% |ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo| Time: 00:00:57
getting all tracks you ever submitted to last.fm (ca. 15050)
get playcount: 100% |ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo| Time: 01:05:29
getting all tracks played in the last 163 weeks
klastfm.rb:93:in `date_tracks': undefined method `each' for nil:NilClass (NoMethodError)oooooooooooooooooooooooooooooooooooooooooooo | ETA: 00:01:55
from klastfm.rb:91:in `each'
from klastfm.rb:91:in `date_tracks'
from klastfm.rb:144
Die DB synchron zu halten, ist z. B. für das Erstellen von Playlisten hilfreich.

Ich bin ein brasilianischer Computeringenieur mit Wohnsitz in Deutschland und begeistere mich für Technik, Wissenschaft, Fotografie und Sprachen.
Ich programmiere seit etwa zwei Jahrzehnten und habe dabei alles von mobilen Apps und Webentwicklung bis hin zu Machine Learning erkundet. Derzeit fokussiere ich mich auf Cloud‑SRE und Data Engineering.
Ich engagiere mich ehrenamtlich in den Open‑Source- und Python‑Communities, helfe bei der Organisation der PyCon DE und PyData Berlin, betreue als Mentor und trage mit Code und Übersetzungen bei.
In meinem Blog teile ich Linux‑Tipps, Einrichtungsanleitungen und persönliche Notizen, die ich als spätere Referenz geschrieben habe. Ich hoffe, dass sie auch anderen nützlich sind. Die Inhalte sind in mehreren Sprachen verfügbar.
Schau dir meine Galerie an, um einige meiner Fotografien zu sehen.
Abseits der Tastatur findest du mich auf Konzerten, beim Klarinettenspiel, Radfahren, Tauchen oder beim Erkunden neuer Orte, Kulturen und Küchen.
Ich freue mich immer über den Austausch! 🙂