whipper
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! 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 war ursprünglich, wie das Original, in python2.7 verfasst. Inzwischen ist es auf python3 umgestellt - das offizielle Ende (EOL) von python 2.7 war der 31.12.2019.
Installation¶
Das Paket ist erst ab Ubuntu 20.10 in den Quellen vorhanden.
Aus einem PPA¶
Eine aktuelle Version (basierend auf python3.6) kann aus einem PPA[1] installiert werden.
Adresszeile zum Hinzufügen des PPAs:
ppa:spvkgn/whipper
Hinweis!
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams spvkgn zu entnehmen.
Daraus das Paket installieren[2]:
whipper (ppa)
Befehl zum Installieren der Pakete:
sudo apt-get install whipper
Oder mit apturl installieren, Link: apt://whipper
Erstellung aus dem Quellcode¶
Benötigt werden dazu die folgenden Pakete:
cd-paranoia
cdrdao
libc6
libsndfile1-dev
python3
python3-cdio
python3-gi
python3-musicbrainzngs
python3-mutagen
python3-requests
python3-ruamel.yaml
sox
Befehl zum Installieren der Pakete:
sudo apt-get install cd-paranoia cdrdao libc6 libsndfile1-dev python3 python3-cdio python3-gi python3-musicbrainzngs python3-mutagen python3-requests python3-ruamel.yaml sox
Oder mit apturl installieren, Link: apt://cd-paranoia,cdrdao,libc6,libsndfile1-dev,python3,python3-cdio,python3-gi,python3-musicbrainzngs,python3-mutagen,python3-requests,python3-ruamel.yaml,sox
Dann den aktuellen Code von der Projektseite herunterladen
git clone https://github.com/whipper-team/whipper.git
und in den entstandenen Order wechseln. Dort kann mit
sudo checkinstall python3 setup.py install
das Programm erstellt und ein einfaches Paket gebaut und installiert[3] werden.
Konfiguration¶
Nach der Installation muss zuerst das zu verwendende optische Laufwerk konfiguriert werden. Mit dem Befehl[4]
whipper drive list
werden die Daten der angeschlossenen Laufwerke 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
Das 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¶
uncaught-attribute-Meldung¶
Eine Ausgabezeile
INFO:musicbrainzngs:in <ws2:release-group>, uncaught attribute type-id
scheint, wenn keine weiteren Probleme auftauchen, harmlos zu sein.
Offset wird nicht erkannt¶
CD/DVD-Laufwerke, die einen sehr hohen offset-Wert benötigen (587 oder mehr) können von dem Programm nicht verwendet werden. Der Versuch führt zu Abstürzen; ggf. hängt sich das Programm auf und muss dann abgebrochen werden. Hintergrund ist, dass das verwendete cd-paranoia nicht so weit in das lead-out der CD lesen kann (siehe im Forum und diesen Bugreport 🇬🇧).
Links¶
Projektseite 🇬🇧
https://snapcraft.io/whipper 🇬🇧 - whipper als snap
CD Drive Offsets 🇬🇧 - Laufwerksliste
Manpage von morituri/rip 🇬🇧, dem Original, das bis auf den Namen (
rip
stattwhipper
) eine fast identische Syntax verwendetmorituri 🇬🇧 (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