whipper
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
whipper 🇬🇧 ist ein Kommandozeilenprogramm zum Rippen von CD. Es wird als Fork von morituri weiterentwickelt, da dieses von seinem Entwickler eingestellt wurde, und verwendet weitgehend die gleiche Syntax. Im Gegensatz zu anderen vergleichbaren Programmen liegt der Schwerpunkt auf dem fehlerfreien Auslesen des Datenträgers, also dem Erstellen einer identischen Digital-Kopie wie beim Vorbild Exact Audio Copy (EAC).
Um dieses Ziel zu erreichen, wird während des Rippens auf die beiden Online-Datenbanken MusicBrainz und AccurateRip zugegriffen, eine Internetverbindung ist also notwendig. Es gibt noch weitere Linux-Programme, die ein exaktes CD-Abbild erstellen können, allerdings keine mit Abgleich der Ergebnisse mit der AccurateRip-Datenbank.
Das Programm ist, wie das Original, in python2.7 verfasst und wurde noch nicht auf eine aktuellere Version von python umgestellt - das offizielle Ende (EOL) von python 2.7 ist der 31.12.2019.
Installation¶
Whipper benötigt eine python 2.7-Installation. Das Programm selbst ist nicht in den Ubuntu-Quellen vorhanden. Als Abhängigkeiten werden folgende Pakete aus den Quellen verwendet:
python
libc6
libsndfile1
python-gobject-2
python-musicbrainzngs
python-mutagen
python-requests
cdrdao
flac
sox
Befehl zum Installieren der Pakete:
sudo apt-get install python libc6 libsndfile1 python-gobject-2 python-musicbrainzngs python-mutagen python-requests cdrdao flac sox
Oder mit apturl installieren, Link: apt://python,libc6,libsndfile1,python-gobject-2,python-musicbrainzngs,python-mutagen,python-requests,cdrdao,flac,sox
Entfernt werden müssen ggf. die Pakete
libcdio-cdda-dev
libcdio-paranoia-dev
um Abhängigkeitsprobleme mit den nachfolgend aufgeführten Paketen zu umgehen.
Für das Programmpaket whipper werden aktuelle Abhängigkeiten benötigt, die man sich von deb.multimedia.org, 64-bit ⮷ bzw. deb.multimedia.org, 32-bit ⮷ herunterladen und (möglichst in dieser Reihenfolge, um Abhängigkeitsproblem zu umgehen) installieren kann. Am einfachsten sind sie zu zu finden, wenn man auf der Whipper-Seite (64-bit) 🇬🇧 bzw. 32-bit 🇬🇧 in den Abhängigkeiten den entsprechenden Links folgt (und ggf. von den dann aufgerufenen Seiten so weiter verfährt):
libcdio18
libcdio-cdda2
libiso9660-11
libcdio-paranoia2
cd-paranoia-10.2
python-cdio
Dann kann whipper installiert werden.[2]
Hinweis!
Fremdpakete können das System gefährden.
Konfiguration¶
Nach der Installation muss zuerst das zu verwendende optische Laufwerk konfiguriert werden. Mit dem Befehl[2]
whipper drive list
werden die Daten des angeschlossenen Laufwerks ausgegeben, Ausgabe ist etwas wie
drive: /dev/cdrom, vendor: TSSTcorp, model: CDDVDW SH-224FB , release: SB00 WARNING:whipper.command.drive:no read offset found. Run 'whipper offset find' WARNING:whipper.command.drive:unknown whether audio cache can be defeated. Run 'whipper drive analyze'
Dann wird eine möglichst häufig verkaufte Audio-CD eingelegt, die vermutlich in der accurate-rip-Datenbank vorhanden ist. Mit
whipper drive analyze
überprüft das Programm, ob eine Cache-Funktion die den Offsetwert verfälschen könnte, umgangen werden kann, Ausgabe sollte etwas ergeben wie
INFO:whipper.command.drive:cdparanoia can defeat the audio cache on this drive INFO:whipper.command.drive:adding drive cache behaviour to configuration file
Diese Information schreibt whipper dann in die Konfigurationsdatei, die in ~/.config/whipper/whipper.conf angelegt wird.
Außerdem muss der "drive-offset" ermittelt werden, am einfachsten über eine Suche nach dem oben ermittelten Namen/Modell in der accurate.rip-Liste 🇬🇧. Dieser Wert wird im folgenden Befahl statt NUM
angegeben
whipper offset find -o NUM
INFO:whipper.command.offset:checking device /dev/sr0 INFO:whipper.command.offset:trying read offset NUM... INFO:whipper.command.offset:offset of device is likely NUM, confirming... ... Read offset of device is: NUM. INFO:whipper.command.offset:adding read offset to configuration file
Whipper überprüft anhand der eingelegten CD, ob der Wert korrekt ist, und überträgt ihn in die whipper.conf. Der Prozess dauert etwas, weil etliche Tracks ausgelesen, und mit der accurate-rip-Datenbank abgeglichen werden. Falls in der Liste kein Wert für das Gerät gefunden werden kann, lässt der Offsetwert auch ohne die -o
-Option ermitteln:
whipper offset find
Die Ermittlung des Offsets kann etwas dauern, weil dann ggf. etliche Werte im Versuch-und-Irrtum-Verfahren verwendet werden, bis ein passender gefunden ist, der Vorgang muss pro Laufwerk aber nur einmal durchgeführt werden. Auch dieser Wert wird in der whipper.conf hinterlegt, und muss später nicht mehr extra angegeben werden.
Weitere Informationen zur Konfiguration in der Dokumentation 🇬🇧 auf der Projektseite, es können z.B. Vorgaben zur Ordnerstruktur, Dateibenennung, Umgang mit unbekannten CDs, Umgang mit mit FAT-inkompatiblen Zeichen etc. gemacht werden, sodass zu diesen Werten keine Optionen mehr auf der Kommandozeile angeben werden müssen.
Verwendung¶
Hinweis:
Die Ausgabe kann unter whipper - anders als beim Original - nur im flac-Format erfolgen! Die Option --profile
ist nicht mehr vorhanden.
Nachdem der korrekte Offset ermittelt wurde, kann eine Audio-CD ausgelesen werden. Die hier gezeigte Ausgabe veranschaulicht beispielhaft die Ermittlung der verwendeten Audio-CD und den Ripvorgang:
whipper cd rip --offset=OFFSET
INFO:whipper.command.cd:checking device /dev/sr0 INFO:whipper.command.cd:reading TOC... CDDB disc id: f910e112 MusicBrainz disc id e3B0wP.1wCyxlFHyc7fsAtJMhwg- MusicBrainz lookup URL https://musicbrainz.org/cdtoc/attach?toc=1+18+324231+150+12920+29355+38850+48050+69930+86850+104440+118015+157220+175550+186920+211445+227815+244575+258810+280895+298625&tracks=18&id=e3B0wP.1wCyxlFHyc7fsAtJMhwg- Disc duration: 01:12:01.080, 18 audio tracks INFO:musicbrainzngs:in <ws2:release-group>, uncaught attribute type-id Matching releases: Artist : Nils Landgren Title : Christmas With My Friends Duration: 01:12:01.075 URL : https://musicbrainz.org/release/68cd09a3-0350-44eb-9418-6fe43d3b04b7 Release : 68cd09a3-0350-44eb-9418-6fe43d3b04b7 Type : Album Barcode : 614427945426 Cat no : 9454-2 INFO:whipper.command.cd:ripping track 1 of 18: 01 - Maybe This Christmas.flac INFO:whipper.program.cdparanoia:checksums match, 31509574 INFO:whipper.command.cd:CRCs match for track 1 Peak level: 0.931732 Rip quality: 100.00% INFO:whipper.command.cd:ripping track 2 of 18: 02 - Ave maris stella.flac INFO:whipper.program.cdparanoia:checksums match, 32b24402 INFO:whipper.command.cd:CRCs match for track 2 Peak level: 0.984955 Rip quality: 100.00% ... INFO:whipper.image.cue:parsing .cue file u'/home/BENUTZER/Musik/Nils Landgren/Christmas With My Friends.cue' INFO:whipper.common.program:4 AccurateRip response(s) found track 1: rip accurate (max confidence 106) v1 [9c38dec8], v2 [62ef2858], DB [9c38dec8, 62ef2858] track 2: rip accurate (max confidence 107) v1 [61cf6625], v2 [7538d11a], DB [61cf6625, 7538d11a] ...
Beispiel: um die Ordnerstruktur KÜNSTLER/ALBUM/TRACKNUMMER - TRACKTITEL
zu erhalten, verwendet man:
whipper cd rip --output-directory="/home/BENUTZERNAME/Musik/" --disc-template=%A/%d --track-template=%A/%d/"%t - %n"
Damit werden neben den flac-Dateien auch jeweils eine CD-NAME.mpu, CD_NAME.log-, CD-NAME.cue- und CD-NAME.toc-Datei mit erstellt. Allerdings lassen sich beiden letzteren nicht zum Erstellen von Audio-CDs nutzen; whipper erstellt nur flac-Dateien, die nicht direkt wieder in Audio-CDs verwendet werden können.
Optionen¶
Die Ausgabe erfolgt im verlustfreien Format FLAC in den aktuellen Ordner. Durch die Verwendung weiterer Parameter können die Vorgaben angepasst werden.
Optionen zu whipper cd rip (Auswahl) | |
Parameter | Funktion |
--output-directory="/ORDNER/" | Ausgabeordner |
--working-directory="/ORDNER/" | Beispiel: --working-directory="/tmp/" |
--disc-template=ZEICHENKETTE | Die Bedeutung der Abkürzungen findet man in der Hilfefunktion |
--track-template=ZEICHENKETTE | Die Bedeutung der Abkürzungen findet man in der Hilfefunktion |
--cdr | Auch "selbstgebrannte" CDs auslesen; ohne die Angabe bricht whipper ansonsten bei erkannter CD-R das Auslesen ab. |
-U | --unknown | Auch in der musicbrainz-Datenbank nicht vorhandenen CDs rippen, tags müssen dann selbst erstellt werden |
Die Bedienung ist etwas gewöhnungsbedürftig, Informationen müssen zu den Unterfunktionen einzeln aufgerufen werden, z.B.
whipper -h # zeigt grundsätzliche Optionen und Befehle whipper cd -h # zeigt Unterfunktionen zum Befehl cd whipper cd rip -h # zeigt Optionen zu rip, also der "Hauptfunktion"
Entsprechend müssen die gewählten Optionen jeweils im Anschluss an den Befehl gesetzt werden, erst danach wird dann das nächstfolgende Unterkommando gesetzt, und die Optionen dazu, etc. Ein Aufruf eines bestimmten Gerätes, ohne Auswurf der CD bei Ende des Rippens einer CD-R erfolgt z.B. über
whipper --eject never cd -d DEVICE rip --cdr
Wenn die Optionen anders gesetzt werden, bricht das Programm mit Fehlermeldungen ab.
Eine manpage scheint es nicht zu geben 🇬🇧.
Probleme und Lösungen¶
uncaught-attribute-Meldung¶
Eine Ausgabezeile
INFO:musicbrainzngs:in <ws2:release-group>, uncaught attribute type-id
scheint, wenn keine weiteren Probleme auftauchen, harmlos zu sein.
Links¶
Projektseite 🇬🇧
CD Drive Offsets 🇬🇧 - Laufwerksliste
Manpage von morituri/rip 🇬🇧, dem Original, das bis auf den Namen (
rip
stattwhipper
) eine fast identische Syntax verwendet
morituri 🇬🇧 (auf web.archive.org, Originalseite nicht mehr erreichbar) mit etlichen Hintergründen und Informationen zum Rippen
Make perfect audio CD rips on Linux using Whipper (Morituri) 🇬🇧 - Forumsbeitrag, 06/2015
Empfehlung: CD-Ripper morituri 🇩🇪 - Blogbeitrag, 03/2015
morituri - Accurate Ripping to flac - Beitrag im hiesigen Forum, 12/2011
CDs rippen Programmübersicht