commit fa4f7a6789a730df15331fab39726e1434ad09ca Author: alf Date: Thu Mar 26 10:51:04 2026 +0000 README.md hinzugefügt diff --git a/README.md b/README.md new file mode 100644 index 0000000..3810dbb --- /dev/null +++ b/README.md @@ -0,0 +1,74 @@ +# convert_m4b.sh + +Konvertiert `.m4b`-Hörbuchdateien in einzelne `.mp3`-Dateien pro Kapitel – mit automatischer ID3-Tagging und nullgepaddeter Tracknummer im Dateinamen. + +## Voraussetzungen + +```bash +sudo apt-get install ffmpeg id3v2 +``` + +## Verwendung + +```bash +cd /pfad/zum/hörbuch/ +bash ~/convert_m4b.sh +``` + +Nach erfolgreicher Konvertierung die Originaldateien manuell entfernen: + +```bash +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: + +``` + - - .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 | \ No newline at end of file