README.md hinzugefügt
This commit is contained in:
74
README.md
Normal file
74
README.md
Normal file
@ -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:
|
||||||
|
|
||||||
|
```
|
||||||
|
<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 |
|
||||||
Reference in New Issue
Block a user