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.

Projektseite ↗
HTTPShttps://zanvex.de/git/miniaudiolib.git

Tags 0

Noch keine Tags
README.md

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

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

# 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.

Letzte Commits
746a052
Public release of miniaudiolibRalf Matthes · 2026-09-02