chore: update .gitignore to include README.md; add README.md with project details and usage instructions
This commit is contained in:
		
							parent
							
								
									7f8c2202b0
								
							
						
					
					
						commit
						7611a9f4cb
					
				
					 2 changed files with 155 additions and 0 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
**
 | 
			
		||||
!.gitignore
 | 
			
		||||
!README.md
 | 
			
		||||
!to-m4b.sh
 | 
			
		||||
!/out
 | 
			
		||||
!/out/.gitkeep
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										154
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,154 @@
 | 
			
		|||
# to-m4b
 | 
			
		||||
 | 
			
		||||
Kleines Bash‑Skript, das Hörbuch‑Ordner 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`)
 | 
			
		||||
- Audio‑Quellen 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 null‑aufgefü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` (AAC‑Encoder 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
 | 
			
		||||
 | 
			
		||||
Serien‑Quelle (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
 | 
			
		||||
  ...
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Serien‑Ergebnis (out):
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
out/WinterZeit Verlag/Das Schwarze Auge/Book 15 - 2022 - Auf Schusters Rappen/
 | 
			
		||||
  2022 - Auf Schusters Rappen.m4b
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Einzelband‑Quelle (src):
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
src/Corvus Corax/2017 - Der Fluch des Drachen/
 | 
			
		||||
  101_Intro.flac
 | 
			
		||||
  102_Nimmer mehr (Die Ballade von Adamas).flac
 | 
			
		||||
  ...
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Einzelband‑Ergebnis (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 Track‑Infos/Dateinamen.
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue