m4b-tool/README.md

154 lines
4.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# to-m4b
Kleines BashSkript, das HörbuchOrdner unter `src/` erkennt und mit
[m4b-tool](https://github.com/sandreas/m4b-tool) zu einzelnen `.m4b`Dateien
zusammenführt. Metadaten (Autor, Serie, Titel, Jahr, Sprecher:in) werden aus
der Ordnerstruktur extrahiert und als Tags gesetzt. Die Ergebnisse werden unter
`out/` abgelegt.
> Das Skript startet `m4b-tool` über Nix (`nix run github:sandreas/m4b-tool#m4b-tool-libfdk`).
## Voraussetzungen
- Nix installiert (für den Aufruf von `m4b-tool` via `nix run`)
- AudioQuellen in unterstützten Formaten: `mp3`, `m4a`, `m4b`, `aac`, `flac`, `wav`, `ogg`
- Bash (unter macOS/Linux vorhanden)
## Quickstart
1) Quellen in die passende Ordnerstruktur unter `src/` legen (siehe Beispiele unten).
2) Script ausführbar machen: `chmod +x to-m4b.sh`
3) Konvertierung starten: `./to-m4b.sh`
4) Ergebnis unter `out/` prüfen.
## Verzeichnisstruktur
Das Skript erwartet unter `src/` je Hörbuch einen Ordner in einer der beiden Formen:
1) Serie (mit Folgennummer)
```
src/<Autor>/<Serie>/Book <Folge> - <YYYY> - <Titel> {<Sprecher>}/
```
Beispiel:
```
src/WinterZeit Verlag/Das Schwarze Auge/Book 15 - 2022 - Auf Schusters Rappen/
249_Das schwarze Auge_Teil 1 - Folge 15_ Auf Schusters Rappen.ogg
...
```
2) Einzelband (ohne Serie)
```
src/<Autor>/<YYYY> - <Titel> {<Sprecher>}/
```
Die Angabe `{<Sprecher>}` ist optional; Leerzeichen dürfen enthalten sein.
## Ausgabepfade
Für jede erkannte Quelle wird genau eine `.m4b` erzeugt und unter `out/` abgelegt.
- Serie:
- Ordner: `out/<Autor>/<Serie>/Book <NN> - <YYYY> - <Titel>/`
- Datei: `<YYYY> - <Titel> {<Sprecher>}.m4b`
- Einzelband:
- Ordner: `out/<Autor>/<YYYY> - <Titel> {<Sprecher>}/`
- Datei: `<YYYY> - <Titel> {<Sprecher>}.m4b`
Hinweis: `<NN>` ist die nullaufgefüllte Folgennummer (Standard: 2 Stellen, z.B. `01`).
## Verwendete Tags
- Autor → `writer`
- Sprecher:in → `artist`
- Titel → `album`
- Jahr → `year`
- Serie → `series`, Folgennummer → `series-part`
## Nutzung
1) Quellen in die passende Ordnerstruktur unter `src/` legen (siehe oben).
2) Skript ausführbar machen (einmalig):
```
chmod +x to-m4b.sh
```
3) Konvertierung starten:
```
./to-m4b.sh
```
Das Skript durchsucht `src/` rekursiv auf den erwarteten Ebenen, erzeugt pro
gefundenem Hörbuch eine `.m4b` und schreibt Ausgaben nach `out/`.
## Konfiguration
Die wichtigsten Einstellungen stehen am Anfang von `to-m4b.sh` und können bei Bedarf angepasst werden:
```bash
# to-m4b.sh (Auszug)
LEADING_ZEROES=2 # Stellen für Serienfolgen (z. B. 01, 02, ...)
SRC="${script_dir}/src" # Quellverzeichnis
OUT="${script_dir}/out" # Zielverzeichnis
```
Weitere relevante `m4b-tool`Parameter (im Skript `m4b-merge()`):
- `--jobs=6` (Parallelität)
- `--audio-samplerate=44100`
- `--audio-quality=100`
- Ausführung über `m4b-tool-libfdk` (AACEncoder libfdk_aac)
Wenn du `m4b-tool` lokal ohne Nix verwenden willst, kannst du den Aufruf in
`m4b-merge()` entsprechend auf ein lokales `m4b-tool` ändern.
## Beispiele
SerienQuelle (src):
```
src/WinterZeit Verlag/Das Schwarze Auge/Book 15 - 2022 - Auf Schusters Rappen/
249_Das schwarze Auge_Teil 1 - Folge 15_ Auf Schusters Rappen.ogg
250_Das schwarze Auge_Teil 2 - Folge 15_ Auf Schusters Rappen.ogg
...
```
SerienErgebnis (out):
```
out/WinterZeit Verlag/Das Schwarze Auge/Book 15 - 2022 - Auf Schusters Rappen/
2022 - Auf Schusters Rappen.m4b
```
EinzelbandQuelle (src):
```
src/Corvus Corax/2017 - Der Fluch des Drachen/
101_Intro.flac
102_Nimmer mehr (Die Ballade von Adamas).flac
...
```
EinzelbandErgebnis (out):
```
out/Corvus Corax/2017 - Der Fluch des Drachen/
2017 - Der Fluch des Drachen.m4b
```
## Fehlersuche
- „No book directories found …“: Struktur unter `src/` prüfen; siehe Abschnitt „Verzeichnisstruktur“.
- „Skipping '…': could not parse …“: Ordnername an die erwartten Muster anpassen.
- „nix: command not found“: Nix installieren oder den `m4b-tool`Aufruf auf ein lokales Binary umstellen.
- „permission denied“ beim Start: `chmod +x to-m4b.sh` ausführen.
## Hinweise
- Cover/weitere Dateien im Quellordner werden nicht explizit an `m4b-tool` übergeben; das Tagging beruht vollständig auf der Ordnerbenennung.
- Unterstützte Audioformate werden automatisch erkannt; die Reihenfolge bestimmt `m4b-tool` anhand von TrackInfos/Dateinamen.