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.

Clone repository

miniaudiolib

Download auswählen

Git Mirror

Repository snapshot

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

Tags

  • No tags found.

Commits

  • 746a052 Public release of miniaudiolib