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.