Digitale Musiksammlungen die über die Jahre gewachsen sind haben meist die ärgerliche Eigenschaft, dass ID3-Tags, Datei- und Ordnernamen nicht konsistent sind. Alte CD-Grabber, diverse MP3-Konverter usw. führen im Lauf der Zeit dazu, dass man bestimmte Lieder weder auf dem Rechner noch auf den diversen Playern wiederfindet.
In der Zwischenzeit habe ich diverse mp3-Tagger ausprobiert. Wenn man eine große mp3-Sammlung konsistent ablegen will, wird das mit den GUI-Tools eine gewaltige Klick-Orgie. Vor allem, wenn die ID3-Tags, Datei- und Ordnernamen und Cover-Bilder konsistent sein sollen.
Das Linux-Kommandozeilenprogramm beets importiert ganze Verzeichnisbäume mit Audiodateien in seine Datenbank und sortiert sie in eine einheitliche Ordnerstruktur. Zusätzlich korrigiert es Dateinamen und ID3-Tags, ergänzt Cover-Bilder und andere Informationen mit Hilfe von CDDB und anderen Online-Quellen (MusicBrainz, Discogs, Beatport usw.).
beets ist in Python geschrieben und funktioniert daher auf allen Plattformen, auf denen Python läuft (Windows, Mac, Linux). Die Paketquellen ab Ubuntu 14.04 enthalten beets bereits, es muss lediglich installiert werden. Andere Linux-Distributionen bringen beets inzwischen mit. Für Windows und Mac gibt es fertige Download-Pakete und Installer.
Alle Funktionen von beets sind in folgenden Anleitungen zu finden: http://beets.readthedocs.org/en/latest/guides/main.html
http://www.webupd8.org/2012/01/beets-command-line-tool-to-fix-music.html
Eine kurze Übersicht: http://beets.radbox.org/
Die Projektseite: GitHub: https://github.com/sampsyo/beets
Plugins: http://beets.readthedocs.org/en/v1.3.6/plugins/
Beispiele:
Ein Album importieren:
beet import /Pfad/Albumname
Alle Alben in einem Verzeichnisbaum importieren:
beet import /Pfad/*
Ein Beispiel für eine Konfigurationsdatei
library: /var/music.blb
directory: /var/mp3
import:
copy: yes
write: yes
resume: ask
quiet_fallback: skip
timid: no
log: beetslog.txt
ignore: .AppleDouble ._* *~ .DS_Store
art_filename: albumart
plugins: bpd
pluginpath: ~/beets/myplugins
threaded: yes
color: yes
paths:
default: $genre/$albumartist/$album/$track $title
singleton: Singletons/$artist – $title
comp: $genre/$album/$track $title
albumtype:soundtrack: Soundtracks/$album/$track $title
Wenn man zB einen iTunes Server auf einem QNAP-NAS nutzten will bringt einem weder ein cover.jpg noch ein folder.jpg etwas. Normalerweise lesen Mediaplayer diese Dateien und zeigen sie als Album CoverArt an. Nicht so iTunes, da muss das Bild in die mp3-Metadaten eingefügt werden.
Beispiele:
CoverArt automatisch einbinden wenn es im Order ein cover.jpg gibt:
1: Plugins aktivieren:
vi ~/.config/beets/config.yaml
# http://beets.readthedocs.org/en/v1.3.7/reference/config.html #directory: ~/music directory: /mp3/Alben library: ~/beets/data/musiclibrary.blb plugins: fetchart lyrics embedart fetchart: cautious: true cover_names: front back sources: itunes * embedart: auto: yes import: move: yes
2: Dann das Script ausführen:
#! /bin/bash COVER="cover.jpg" for dir in /mp3/Alben/*/*/ do cd "$dir" if [ -f $COVER ]; then echo "beet embedart -f '$dir$COVER' '$dir'" beet embedart -f "$dir$COVER" "$dir" else echo "No cover $COVER in >$dir< " fi done