Git Repository
miniaudiolib
miniaudiolib scannt lokale Musik- und Hörbuchordner, liest Audio-Metadaten und Cover, verwaltet Favoriten und Playlists und streamt Titel direkt an den Browser.
https://zanvex.de/git/miniaudiolib.gitminiaudiolib
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
PATHoder ü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
go run ./cmd/miniaudiolib
Beim ersten Start wird eine config.toml mit Standardwerten angelegt. Danach:
http://localhost:8080/settingsöffnen.- Musik- und bei Bedarf Hörbuchordner eintragen.
- Falls nötig, FFmpeg im Reiter FFmpeg installieren.
- Einstellungen speichern und den Scan starten.
Die Anwendung bindet standardmäßig nur an localhost:8080.
Nützliche Befehle
# 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.
746a052