Git Repository

Mini Video Library

Mini Video Library scannt lokale Medienordner, verwaltet Metadaten und Vorschaubilder und streamt kompatible Videos direkt per HTTP an den Browser.

Projektseite ↗
HTTPShttps://zanvex.de/git/mini-video-library.git

README.md

# Mini Video Library

Eine schlanke, vollständig lokale Video-Bibliothek in Go. Sie scannt Ordner mit `ffprobe`, erzeugt Vorschaubilder mit `ffmpeg` und streamt Dateien per HTTP Range direkt an den Browser. Oberfläche und Metadaten bleiben auf dem eigenen Rechner; ein Cloud-Konto ist nicht erforderlich.

## Start

Voraussetzung für den Start aus dem Quellcode: Go 1.26+. `ffmpeg` und `ffprobe` müssen entweder im `PATH` liegen oder über frei konfigurierbare Pfade erreichbar sein. Unter Windows kann die Anwendung beide Programme in den Einstellungen automatisch nach `./ffmpeg` herunterladen und sofort aktivieren.

```sh
go run ./cmd/video-library
```

Danach `http://localhost:8080/settings` öffnen, mindestens einen Bibliotheksordner eintragen und den Scan starten. Die beim ersten Start erzeugte `config.toml` enthält alle Optionen.

```sh
go run ./cmd/video-library -scan  # nur scannen
go test ./...                     # Tests
```

Videos und Metadaten bleiben lokal. Browser spielen kompatible Codecs direkt ab; Transcoding und Remuxing sind bewusst noch nicht Bestandteil dieses MVPs.

## Release bauen

Das PowerShell-Skript erzeugt ZIP-Archive und eine `SHA256SUMS.txt` unter `dist/`. Ohne `-Targets` versucht es alle von der lokalen Go-Installation angebotenen Plattformen; für einen gezielten Build:

```powershell
./scripts/build.ps1 -Targets windows/amd64,linux/amd64
./scripts/build.ps1 -Targets windows/amd64 -Version 1.0.0
```

`dist/`, lokale Programmdateien, Laufzeitdaten und ein automatisch installiertes `ffmpeg/` werden von Git ignoriert und können jederzeit neu erzeugt werden.

## Funktionen

- sichere parallele Scans mit Fortschritt, ETA, Abbruch und vollständigem Rescan
- Schutz vor Datenverlust, wenn ein Bibliothekslaufwerk nicht erreichbar ist
- Problemdateien mit ffprobe-Diagnose, Ausblenden und gezielter Wiederholung
- Suche, Filter, Seitennavigation, Favoriten und Wiedergabestatus
- Smart Collections für angefangene, neue, ungesehene und favorisierte Videos sowie Episoden, 4K-Inhalte und fehlende Cover
- Erkennung von Serienfolgen aus Dateinamen und Wiedergabe externer SRT-/VTT-Untertitel
- bearbeitbare Titel, Tags und Beschreibungen sowie erneuerbare Thumbnails
- Audio-/Untertitelübersicht und Browser-Kompatibilitätshinweis
- Medienprüfung, Statistiken und Hash-basierte Duplikaterkennung
- Live-Logs in der Weboberfläche und rotierende Dateien unter `data/logs`
- deutsche und englische Oberfläche sowie installierbare Themes
- drei gebündelte Plugins: AniDB/TMDB, NFO lesen/schreiben und Metadaten-Editor

## Themes

Im Repository liegen sechs mitgelieferte Theme-ZIPs unter `themes/`. Eigene Themes können in den Einstellungen installiert werden; Aufbau, erlaubte Dateitypen und Größenlimits beschreibt [docs/themes.md](docs/themes.md).

## Plugins

Der Online-Metadaten-Cache liegt dauerhaft in SQLite. TMDB-Suchergebnisse werden 30 Tage, AniDB-Datensätze entsprechend der strengen API-Regeln mindestens einen Tag wiederverwendet. Zugangsdaten werden lokal in `plugin_settings` gespeichert. Für TMDB ist ein Read Access Token nötig; AniDB benötigt einen dort registrierten Clientnamen und eine Clientversion.

NFO-Dateien werden neben dem Video abgelegt (`Film.mp4` → `Film.nfo`). Lesen oder Schreiben geschieht nur nach einer ausdrücklichen Aktion. Der Bibliotheksexport zeigt vorher eine Bestätigung und überschreibt danach vorhandene NFO-Dateien.

Direct Play wird bevorzugt. Remuxing und Transcoding sind weiterhin bewusst getrennte spätere Player-Stufen, da sie Ressourcenverwaltung, Abbruch und Cache-Bereinigung benötigen.

## Lizenz

Mini Video Library steht unter der [MIT-Lizenz](LICENSE).