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
 | 
					!.gitignore
 | 
				
			||||||
 | 
					!README.md
 | 
				
			||||||
!to-m4b.sh
 | 
					!to-m4b.sh
 | 
				
			||||||
!/out
 | 
					!/out
 | 
				
			||||||
!/out/.gitkeep
 | 
					!/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