staging.inyokaproject.org

Audible-Hörbücher nach mp3 umwandeln per GUI

Status: Ungelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

Balu62

Avatar von Balu62

Anmeldungsdatum:
22. Oktober 2007

Beiträge: 977

Hallo Allerseits

Gleich zu Beginn: Wer keine audible Hörbücher mit Linux nutzen will, muss eigentlich gar nicht weiterlesen 😉 Für die Hörbuch-Fans, die nicht so gerne mit dem Terminal arbeiten, gibt es allerdings eine gute Nachricht:

Im Zusammenhang mit diesem HowTo Audible-Hörbücher nach mp3 umwandeln habe ich mehrere Anfragen erhalten, ob es den für aax2mp3 kein GUI gäbe. Da ich bei der Suche nach etwas brauchbarem für Linux nicht wirklich fündig wurde, habe ich mal mit einem Zenity-Script selbst was erstellt. Damit lässt sich zukünftig die gesamte, im HowTo beschriebene, Konvertierung per GUI erledigen. Das GUI setzt auf der Einrichtung nach oben erwähnten HowTo auf. Ich stelle das Ergebnis mal hier rein. Wer Lust hat kann es testen und Feedback geben. Anschliessend würde ich es dann in das HowTo einbauen. Entsprechend fallen die Erklärungen auch etwas umfangreicher aus (quasi die Vorlage für die Wiki-Ergänzung).

Vorgehen

Hinweis: Zenity muss installiert sein, was aber standardmässig bei allen x-buntus (min. unter 20.04) der Fall sein sollte. Ansonsten gem. verlinktem Artikel installieren.

Einen der folgende beiden Quelltexte einfach komplett markieren, kopieren und in den Texteditor seiner Wahl einfügen. Das weitere Vorgehen (Konfiguration) wird unten, nach den Quelltext-Blöcken beschrieben.

Variante "aax2mp3gui_fat": Dabei handelt es sich um eine Version, in der jedesmal ausgewählt werden kann / muss, ob mehrere mp3-Dateien (Kapitel) oder eine einzelne, grosse mp3-Datei erstellt werden soll. Ein schlankere Variante (aax2mp3gui_thin) gibt es gleich darunter.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/bash
#Persönliche Variablen definieren:
aaxdir=$"$HOME/Downloads/audible/"  # Sein persönliches Verzeichnis für die aax-Dateien anpassen. An der Stelle startet die grafische Dateiauswahl.
authcode=$"CAFED00D"  # Hier den, bei der Vorbereitung von aax2mp3 ermittelten, persönlichen "authentification code" eintragen.
filemanager=/usr/bin/dolphin  # Hier den Standard-Dateimanager eintragen (Bsp. Kubuntu)
#filemanager=/usr/bin/nautilus	# Hier den Standard-Dateimanager eintragen (Bsp. Ubuntu)

#Ab hier Aenderungen keine Aenderungen vornehmen
zenity --info --text "Um eine Audible .aax-Datei nach mp3 zu konvertieren, \nbitte im folgenden Auswahlfenster die gewünschte .aax-Datei auswählen." \
    --no-wrap \
    --title "aax2mp3 - Info"
aaxfile=$(zenity --file-selection \
    --filename $aaxdir \
    --file-filter=*.aax \
    --title="Bitte eine aax-Datei auswählen")
if [ $? -eq 1 ]; then
	zenity --info --text "Abbruch wurde gewählt - Das Programm wird nun beendet!" \
        --no-wrap \
        --title "Programm wird beendet"
	exit
else
answer=`zenity --list \
  --width=550 --height=250 \
  --text "Welche mp3-Ausgabe soll erzeugt werden?" \
  --title="mp3-Optionen" \
  --radiolist \
  --column="Auswahl" --column="Option" --column="Beschreibung" \
    TRUE "Einzelne Kapitel" "Erzeugt mehrere mp3-Dateien (analog aax-Kapitel)" \
    FALSE "Eine grosse Datei" "Erzeugt eine große mp3-Datei (ohne Kapitel)"`
fi

if [ $? -eq 1 ]; then
	zenity --info --text "Abbruch wurde gewählt - Das Programm wird nun beendet!" \
        --no-wrap \
        --title "Programm wird beendet"
	exit
else
	case "$answer" in
	"Einzelne Kapitel")
		single=$""
		;;
	"Eine große Datei")
		single=$" -S"
		;;
	esac
fi

if [ $? = 0 ];then 
    	zenity --question \
    	--no-wrap \
    	--title "Bestätigung" \
    	--text "Sind Sie sicher, dass Sie die Datei \n"$aaxfile" \nnach mp3 konvertieren wollen? \n\nTypische Dauer: 10 Stunden Hörbuch = ca. 10 Min. \n" \
    	--ok-label "Fortsetzen" \
    	--cancel-label "Abbrechen"
else
	zenity --info --text "Es wurde keine Datei ausgewählt (Abbruch)" \
    	--no-wrap \
    	--title "aax2mp3 - Info"
exit
fi    

if [ $? = 0 ];then 
    	aax2mp3 $single -i $aaxfile -a $authcode | 
    	grep --line-buffered size= |
        zenity --progress \
        --pulsate \
        --title="aax2mp3-Konvertierung" \
        --text="Umwandeln von $aaxfile \n\nDie Konvertierung läuft..." \
        --no-cancel
        zenity --question \
    	--no-wrap \
    	--title "Bestätigung" \
    	--text "Das Hörbuch steht unter $aaxdir, \nim Unterverzeichnis Hörbuch, zur Verfügung. \n\n Möchten Sie das Höhrbuch-Verzeichnis nun im Dateimanger öffnen?" \
    	--ok-label "Im Dateimanager öffnen" \
    	--cancel-label "Programm beenden"
else
    zenity --info --text "Abbruch wurde gewählt - Das Programm wird nun beendet!" \
    --no-wrap \
    --title "Programm wird beendet"
exit
fi

if [ $? = 0 ];then 
$filemanager $aaxdir/Hörbuch &   	
else
exit
fi

Variante "aax2mp3gui_thin": Hier kann man seine Präferenzen bez. einzelne mp3-Kapitel oder eine grosse mp3-Datei, einmalig in der initialen Konfiguration einstellen und wird dann nicht mehr gefragt. Hintergrund: Die meisten User bevorzugen entweder die eine oder die andere Variante - wollen also immer nur ein File oder aber immer mehrere einzelne Kapitel-Dateien. Mit der thin-Version erspart man sich dann diese Auswahl im "Programm" und somit ein paar Klicks.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
#Persönliche Variablen definieren:
aaxdir=$"$HOME/Downloads/audible/"  # Sein persönliches Verzeichnis für die aax-Dateien anpassen. An der Stelle startet die grafische Dateiauswahl.
authcode=$"CAFED00D"  # Hier den, bei der Vorbereitung von aax2mp3 ermittelten, persönlichen "authentification code" eintragen.
filemanager=/usr/bin/dolphin  # Hier den Standard-Dateimanager eintragen (Bsp. Kubuntu)
#filemanager=/usr/bin/nautilus	# Hier den Standard-Dateimanager eintragen (Bsp. Ubuntu)

# Bei den folgenden zwei Zeilen darf immer nur eine aktiv sein - also ohne "#" am Zeilenanfang! Die jeweils andere muss mit einem führenden "#" auskommentiert werden.
singlefile=$""  # Ist diese Zeile aktiv, werden MEHRERE mp3-Datein (Kapitel) erzeugt.
#singlefile=$" -S"  # Ist diese Zeile aktiv, wird nur EINE einzige mp3-Datei zu erzeugen (ohne Kapitel).

#Ab hier keine Aenderungen vornehmen
zenity --info --text "Um Audible .aax-Datein nach mp3 zu konvertieren, \nim folgenden Auswahlfenster die zu konvertierende .aax-Datei auswählen." \
    --no-wrap \
    --title "aax2mp3 - Info"
aaxfile=$(zenity --file-selection \
    --filename $aaxdir \
    --file-filter=*.aax \
    --title="Bitte eine aax-Datei auswählen")
if [ $? = 0 ];then 
    	zenity --question \
    	--no-wrap \
    	--title "Bestätigung" \
    	--text "Sind Sie sicher, dass Sie die Datei \n"$aaxfile" \nnach mp3 konvertieren wollen? \n\nTypische Dauer: 10 Stunden Hörbuch = ca. 10 Min. \n" \
    	--ok-label "Fortsetzen" \
    	--cancel-label "Abbrechen"
else
	zenity --info --text "Es wurde keine Datei ausgewählt (Abbruch)" \
    	--no-wrap \
    	--title "aax2mp3 - Info"
exit
fi    

if [ $? = 0 ];then 
    	aax2mp3 $singlefile -i \
     	      /$aaxfile \
       	    -a $authcode | 
    	grep --line-buffered size= |
        zenity --progress \
        --pulsate \
        --title="aax2mp3-Konvertierung" \
        --text="Umwandeln von $aaxfile \n\nDie Konvertierung läuft..." \
        --no-cancel
        zenity --question \
    	--no-wrap \
    	--title "Bestätigung" \
    	--text "Das Hörbuch steht nun unter $aaxdir, \nim Unterverzeichnis Hörbuch, zur Verfügung. \n\n Möchten Sie das Hörbuch-Verzeichnis nun im Dateimanger öffnen?" \
    	--ok-label "Im Dateimanager öffnen" \
    	--cancel-label "Programm beenden"
else
    zenity --info --text "Abbruch wurde gewählt - Das Programm wird nun beendet!" \
    --no-wrap \
    --title "Programm wird beendet"
exit
fi

if [ $? = 0 ];then 
$filemanager $aaxdir/Hörbuch &   	
else
exit
fi

Individuelle Anpassungen

Nachdem die Datei nun in den Texteditor kopiert wurde, müssen im ersten Abschnitt (oberhalb der Zeile "#Ab hier keine Aenderungen vornehmen") noch ein paar wenige, individuelle Einstellungen vorgenommen werden:

  1. Das eigene Verzeichnis, in dem die Audible-Dateien (.aax) abgelegt sind, definieren. Dabei das Verzeichnis unbedingt mit einem "/" abschliessen. Grundsätzlich kann ein beliebiges Verzeichnis gewählt werden. In diesem Verzeichnis startet der grafische Dateiauswahl-Dialog und anschliessend auch der Dateimanager.

    aaxdir=$"$HOME/Downloads/audible/"

  2. Den persönlichen "authentification code", den man im Rahmen der Vorbereitung (⇒ HowTo) ermittelt hat, eintragen. Die beiden " müssen stehen bleiben, nur den Code dazwischen austauschen.

    authcode=$"CAFED00D"
  3. Den gewünschten Dateimanager (abhängig vom System) eintragen. Also beispielsweise dolphin für Kubuntu, nautilus oder nemo für Ubuntu, thunar für Xubuntu, und so weiter eintragen.

    filemanager=/usr/bin/dolphin
  4. Nur thin-Version: Eine der beiden Zeilen mit einem "#" auskommentieren. Dadurch wird gesteuert, ob mehrere mp3-Files (Kapitel) erzeugt werden oder nur eine grosse mp3-Datei. Voreingestellt ist "mehrere Dateien".

    # Bei den folgenden zwei Zeilen darf immer nur eine aktiv sein - also ohne "#" am Zeilenanfang! Die jeweils andere muss mit einem führenden "#" auskommentiert werden.
    singlefile=$""  # Ist diese Zeile aktiv, werden MEHRERE mp3-Datein (Kapitel) erzeugt.
    #singlefile=$" -S"  # Ist diese Zeile aktiv, wird nur EINE einzige mp3-Datei zu erzeugen (ohne Kapitel).

Nun kann die Datei im Ordner ~/bin als aax2mp3gui abgespeichert werden. Danach muss die Datei noch ausführbar gemacht werden. Dies efolgt mit

chmod +rwx ~/bin/aax2mp3gui

Hinweis: Zum Testen empfehle ich ein kurzes Hörbuch mit mehreren Kapiteln, da die Konvertierung selbst ja doch ein wenig dauert. Da gibt es bei audible einige (für Abonennten) kostenlose Hörbücher, wie z.B. diese hier. Spieldauer 20 Min., 3 Kapitel, Konvertierungszeit < 1 Min..

Danach am besten erstmal aus einem Terminal starten, mittels

aax2mp3gui

So werden auch allfällige Fehler ausgegeben (z.B. wegen Tippfehlern bei der Konifg-Anpassungen) und es kann in Fehlerfall auch direkt im Terminal (Strg+C) abgebrochen werden. Wenn alles fehlerfrei durchläuft, kann anschliessend ein entsprechender Starter erstellt werden. Je nach x-buntu-Variante geht das einfach per Menüeditor oder aber mittels .desktop-Dateien. Danach kann die Konvertierung von aax nach mp3 zukünftig komplett grafisch erfolgen.

Feedback ist ausdrücklich erwünscht! Viel Spass beim Ausprobieren und bei der produktiven Nutzung 😎

Gruss, Balu

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55572

Nettes Projekt. Eine Oberfläche gab es aber vorher auch schon: OpenAudible

Balu62

(Themenstarter)
Avatar von Balu62

Anmeldungsdatum:
22. Oktober 2007

Beiträge: 977

tomtomtom schrieb:

Nettes Projekt. Eine Oberfläche gab es aber vorher auch schon: OpenAudible

Du sagst es eigentlich richtig: "gab es..."! Seit einiger Zeit ist OpenAudible leider nur noch als Shareware verfügbar. Konvertierung nach mp3 nur in der Bezahl-Version (mehr Details in der Einleitung des verlinkten HowTo's). Wer den ganzen Verwaltungskram von OpenAudible nicht braucht, sondern einfach nur mp3-Hörbücher will, braucht eigentlich auch nicht OpenAudible zu kaufen.

Antworten |