[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Paketquellen_freischalten/PPA: PPAs verwenden] [:Pakete installieren: Installation von Programmen] [:Programme kompilieren: Pakete aus dem Quellcode erstellen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [github:whipper-team/whipper:whipper] {en} 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 [wikipedia:Exact_Audio_Copy:Exact Audio Copy] (EAC). Um dieses Ziel zu erreichen, wird während des Rippens auf die beiden Online-Datenbanken [wikipedia:MusicBrainz:] und [wikipedia:AccurateRip:] zugegriffen, eine Internetverbindung ist also notwendig. Es gibt noch weitere Linux-Programme, die ein [:CDs_rippen#Exaktes-CD-Abbild-rippen: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. [[Bild(Wiki/Icons/synaptic.png, 48, align=right)]] = Installation = Das Paket ist erst ab [:20.10:Ubuntu 20.10] in den Quellen vorhanden. == Aus einem PPA == Eine aktuelle Version (basierend auf python3.6) kann aus einem PPA[1] installiert werden. [[Vorlage(PPA, spvkgn/whipper)]] Daraus das Paket installieren[2]: {{{#!vorlage Paketinstallation whipper, ppa }}} == Erstellung aus dem Quellcode == Benötigt werden dazu die folgenden Pakete: {{{#!vorlage Paketinstallation 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 [github:whipper-team/whipper:Projektseite] herunterladen {{{#!vorlage Befehl git clone https://github.com/whipper-team/whipper.git }}} und in den entstandenen Order wechseln. Dort kann mit {{{#!vorlage Befehl 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] {{{#!vorlage Befehl 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 {{{#!vorlage Befehl 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 [http://www.accuraterip.com/driveoffsets.htm accurate.rip-Liste] {en}. Dieser Wert wird im folgenden Befahl statt `NUM` angegeben {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 [github:whipper-team/whipper#configuration-file-documentation: Dokumentation] {en} 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 Optionen] mehr auf der Kommandozeile angeben werden müssen. = Verwendung = {{{#!vorlage Hinweis Die Ausgabe kann unter whipper - anders als beim Original - nur im [wikipedia:Free_Lossless_Audio_Codec: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: {{{#!vorlage Befehl 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 , 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: {{{#!vorlage Befehl 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. {{{#!vorlage Tabelle 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. {{{#!vorlage Befehl 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 {{{#!vorlage Befehl whipper --eject never cd -d DEVICE rip --cdr }}} Wenn die Optionen anders gesetzt werden, bricht das Programm mit Fehlermeldungen ab. Eine manpage scheint es [github:whipper-team/whipper/issues/73: nicht zu geben] {en}. = Probleme = == uncaught-attribute-Meldung == Eine Ausgabezeile {{{ INFO:musicbrainzngs:in , 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 [post:8317398:im Forum] und [github:whipper-team/whipper/issues/234:diesen Bugreport] {en}). = Links = * [github:whipper-team/whipper:Projektseite] {en} * [https://snapcraft.io/whipper] {en} - whipper als [:snap:] * [http://www.accuraterip.com/driveoffsets.htm CD Drive Offsets] {en} - Laufwerksliste * [man:rip:Manpage von morituri/rip] {en}, dem Original, das bis auf den Namen (`rip` statt `whipper`) eine fast identische Syntax verwendet * [https://web.archive.org/web/20160528213242/https://thomas.apestaart.org/thomas/trac/wiki/DAD/Rip morituri] {en} (auf web.archive.org, Originalseite nicht mehr erreichbar) mit etlichen Hintergründen und Informationen zum Rippen * [https://cd-rw.org/t/make-perfect-audio-cd-rips-on-linux-using-whipper-morituri/24 Make perfect audio CD rips on Linux using Whipper (Morituri)] {en} - Forumsbeitrag, 06/2015 * [https://blog.mdosch.de/2015/03/25/empfehlung-cd-ripper-morituri/ Empfehlung: CD-Ripper morituri] {de} - Blogbeitrag, 03/2015 * [topic:morituri-accurate-ripping-to-flac-mit-kleinen-:morituri - Accurate Ripping to flac] - Beitrag im hiesigen Forum, 12/2011 * [:CDs_rippen:] {Übersicht} Programmübersicht # tag: Multimedia, CD