2.6 KiB
2.6 KiB
convert_m4b.sh
Konvertiert .m4b-Hörbuchdateien in einzelne .mp3-Dateien pro Kapitel – mit automatischer ID3-Tagging und nullgepaddeter Tracknummer im Dateinamen.
Voraussetzungen
sudo apt-get install ffmpeg id3v2
Verwendung
cd /pfad/zum/hörbuch/
bash ~/convert_m4b.sh
Nach erfolgreicher Konvertierung die Originaldateien manuell entfernen:
rm *.m4b
Die
.m4b-Dateien werden absichtlich nicht automatisch gelöscht, damit bei einem Fehler nichts verloren geht.
Was das Script macht
- Alle
.m4b-Dateien im aktuellen Verzeichnis werden der Reihe nach verarbeitet (alphabetisch). - Jede
.m4bwird zunächst als Ganzes in eine temporäre.mp3umgewandelt (Mono, 22 050 Hz, 64 kbit/s). - Die Kapitelmarken werden aus den Metadaten ausgelesen.
- Für jedes Kapitel wird eine eigene
.mp3mit korrekten Start-/Endzeiten ausgeschnitten. - ID3-Tags werden gesetzt: Titel, Album und Tracknummer.
- Die temporäre Gesamt-MP3 wird nach der Aufteilung wieder gelöscht.
Ausgabeformat
Die erzeugten Dateien folgen diesem Namensschema:
<Albumtitel> - <Tracknummer> - <Kapitelname>.mp3
Beispiel:
Knife of Dreams - 01 - Chapter 01 - Entrapped.mp3
Knife of Dreams - 02 - Chapter 02 - Embers Falling on Snow.mp3
...
Knife of Dreams - 23 - Chapter 18 - News for the Dragon.mp3
Die Tracknummer ist immer zweistellig mit führender Null (01, 02, … 99). Bei mehr als 99 Kapiteln das Format im Script auf %03d ändern.
Gesetzte ID3-Tags
| Tag | Inhalt |
|---|---|
title |
Kapitelname (z. B. Chapter 01 - Entrapped) |
album |
Verzeichnisname des Hörbuchs |
track |
Tracknummer (ohne führende Null) |
Hinweise
- Der Albumname wird automatisch aus dem aktuellen Verzeichnisnamen abgeleitet. Ein Komma im Verzeichnisnamen trennt Albumtitel und Untertitel – alles nach dem Komma wird ignoriert.
- Existiert eine Ausgabedatei bereits (z. B. bei doppelten Kapitelnamen), wird automatisch ein Suffix angehängt:
_(1),_(2), usw. - Bei mehreren
.m4b-Dateien (z. B. Part 1 / Part 2) läuft die Tracknummer durchgehend weiter – die Dateien werden in alphabetischer Reihenfolge verarbeitet. - Der
ffmpeg-Schritt zum Ausschneiden der Kapitel kopiert den Audio-Stream ohne erneutes Enkodieren (-codec:a copy), was schnell und verlustfrei ist.
Abhängigkeiten
| Tool | Zweck |
|---|---|
ffmpeg |
Konvertierung und Kapitelextraktion |
id3v2 |
Setzen der ID3v2-Tags in den MP3-Dateien |