opensource
miniaudiolib
miniaudiolib scannt lokale Musik- und Hörbuchordner, liest Audio-Metadaten und Cover, verwaltet Favoriten und Playlists und streamt Titel direkt an den Browser.
opensource
miniaudiolib scannt lokale Musik- und Hörbuchordner, liest Audio-Metadaten und Cover, verwaltet Favoriten und Playlists und streamt Titel direkt an den Browser.
Git Mirror
# miniaudiolib
Eine schlanke, vollständig lokale Musik- und Hörbuchbibliothek in Go. Sie liest Audio-Tags mit FFprobe, extrahiert eingebettete Cover mit FFmpeg und streamt Dateien mit HTTP-Range-Unterstützung an den Browser.
## Voraussetzungen
- Go 1.26 oder neuer
- FFmpeg und FFprobe – entweder im `PATH` oder über die Einstellungen installiert
Unter Windows kann die Anwendung FFmpeg und FFprobe selbst herunterladen, die SHA-256-Prüfsumme kontrollieren und beide Programme lokal unter `ffmpeg/` ablegen. Dieser Ordner ist ein generiertes Artefakt und gehört nicht ins Repository.
## Start
```powershell
go run ./cmd/miniaudiolib
```
Beim ersten Start wird eine `config.toml` mit Standardwerten angelegt. Danach:
1. `http://localhost:8080/settings` öffnen.
2. Musik- und bei Bedarf Hörbuchordner eintragen.
3. Falls nötig, FFmpeg im Reiter **FFmpeg** installieren.
4. Einstellungen speichern und den Scan starten.
Die Anwendung bindet standardmäßig nur an `localhost:8080`.
### Nützliche Befehle
```powershell
# Bibliotheken einmalig scannen und danach beenden
go run ./cmd/miniaudiolib -scan
# Eine andere Konfigurationsdatei verwenden
go run ./cmd/miniaudiolib -config C:\Pfad\config.toml
# Tests und statische Prüfung
go test ./...
go vet ./...
# Lokale Windows-Datei bauen
go build -o miniaudiolib.exe ./cmd/miniaudiolib
# Release-ZIP für Windows/AMD64 unter dist/ erzeugen
.\scripts\build.ps1 -Targets windows/amd64
```
Ohne `-Targets` baut das Release-Skript alle von der installierten Go-Version gemeldeten Plattformen, soweit die Abhängigkeiten sie unterstützen. Versionsnamen werden, falls vorhanden, aus Git-Tags abgeleitet; andernfalls wird `dev` verwendet.
## Funktionen
- MP3, FLAC, M4A, AAC, Ogg, Opus, WAV, WMA, AIFF und APE
- Titel, Künstler, Album-Künstler, Album, Genre, Jahr, Disc- und Tracknummer
- Album- und Titelansichten mit Suche
- eingebettete Cover sowie MusicBrainz-Metadaten und Cover
- Favoriten, Wiedergabepositionen und Abspielzähler
- Playlists
- Hörbücher mit Kapiteln und gespeichertem Wiedergabefortschritt
- inkrementelle Scans, Scanstatus, Fehlerprotokoll und Duplikat-Hash
- lokales Streaming mit Range-Unterstützung
## Lokale Dateien
`config.toml`, `data/`, `ffmpeg/`, gebaute Programme und `dist/` sind in `.gitignore` eingetragen. Die SQLite-Datenbank, Cover und Protokolle liegen standardmäßig unter `data/`. Musikdateien und Bibliotheksdaten bleiben lokal; die optionale MusicBrainz-Suche und die FFmpeg-Installation benötigen Internetzugriff.
Zum Zurücksetzen der generierten Dateien können `ffmpeg/`, `dist/` und lokale Programmdateien gelöscht werden. FFmpeg lässt sich anschließend über die Einstellungen erneut installieren; die Anwendung kann jederzeit mit `go build` neu gebaut werden. `data/` und `config.toml` sollten dagegen nur nach einer bewussten Datensicherung gelöscht werden.
## Lizenz
`miniaudiolib` steht unter der [MIT-Lizenz](LICENSE).