Files
m4b-in-mp3/README.md
2026-03-28 11:43:54 +00:00

2.8 KiB
Raw Permalink Blame History

m4b_mp3.sh / m4b_mp3_splitted.sh

Konvertiert .m4b-Hörbuchdateien in einzelne .mp3-Dateien pro Kapitel mit automatischer ID3-Tagging und nullgepaddeter Tracknummer im Dateinamen.

  • m4b_mp3.sh: Das gesamte Hörbuch liegt in einer m4b-Datei vor.
  • m4b_mp3_splitted.sh: Es liegen einzelne m4b-Dateien je Kapitel vor.

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

  1. Alle .m4b-Dateien im aktuellen Verzeichnis werden der Reihe nach verarbeitet (alphabetisch).
  2. Jede .m4b wird zunächst als Ganzes in eine temporäre .mp3 umgewandelt (Mono, 22 050 Hz, 64 kbit/s).
  3. Die Kapitelmarken werden aus den Metadaten ausgelesen.
  4. Für jedes Kapitel wird eine eigene .mp3 mit korrekten Start-/Endzeiten ausgeschnitten.
  5. ID3-Tags werden gesetzt: Titel, Album und Tracknummer.
  6. 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