ubuntuusers.de

whipper

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

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.

Wiki/Icons/synaptic.png

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

Paketliste zum Kopieren:

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.

Diese Revision wurde am 4. Februar 2020 15:55 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: CD, Multimedia