🎬 Smart video preloading for Plex & Jellyfin - Eliminates buffering by caching videos in RAM
2.0K
Smart video caching for Plex & Jellyfin | Intelligentes Video-Caching für Plex & Jellyfin
Unraid Video Preloader is a Docker application that intelligently preloads video files into RAM cache. This eliminates buffering when starting videos on Plex, Jellyfin, or other media servers.
# docker-compose.yml
services:
video-preloader:
image: derbarnimer/unraid-video-preloader:latest
container_name: video-preloader
restart: unless-stopped
cap_add:
- SYS_PTRACE
ports:
- "8080:8000"
volumes:
- ./config:/config
- /mnt/user:/data:ro # Your media library (read-only)
environment:
- TZ=Europe/Berlin
docker-compose up -d
Then open http://YOUR_IP:8080 in your browser.
All settings are available in the web interface:
| Setting | Description |
|---|---|
| Video Paths | Directories to scan (e.g., /data/movies, /data/tv) |
| Priority Paths | Loaded first (e.g., /data/tv/Currently Watching) |
| Exclude Patterns | Skip files matching pattern (e.g., */Samples/*) |
| Preload Size | MB to load from start/end of files |
| Max RAM Usage | Stop preloading above this percentage |
| Scheduler | Cron expression for automatic runs |
| Tautulli | URL and API key for integration |
| Live Monitoring | Auto-cache next episodes during playback |
| Plex | URL and token for On Deck feature |
When enabled, the preloader monitors active Tautulli streams every 60 seconds. If someone is watching a series episode, the next 3 episodes are automatically cached. This ensures seamless playback when binge-watching!
| Setting | Description |
|---|---|
| Check Interval | How often to check for active streams (default: 60s) |
| Episodes to Preload | Number of next episodes to cache (default: 3) |
| Endpoint | Method | Description |
|---|---|---|
/api/stats | GET | Current status and RAM usage |
/api/logs | GET | Last 20 log lines |
/api/history | GET | Preload run history |
/api/preload | POST | Preload a single file |
/api/cache-status | GET | Check if file is cached |
/api/webhook/plex | POST | Receive Plex webhooks |
/api/test-tautulli | GET | Test Tautulli connection |
/api/test-plex | GET | Test Plex connection |
/api/test-live-monitoring | GET | Test live monitoring detection |
/api/set-language | GET | Switch UI language (en/de) |
http://YOUR_PRELOADER_IP:8080/api/webhook/plexUnraid Video Preloader ist eine Docker-Anwendung, die Video-Dateien intelligent in den RAM-Cache lädt. Das eliminiert Buffering beim Starten von Videos auf Plex, Jellyfin oder anderen Media-Servern.
# docker-compose.yml
services:
video-preloader:
image: derbarnimer/unraid-video-preloader:latest
container_name: video-preloader
restart: unless-stopped
cap_add:
- SYS_PTRACE
ports:
- "8080:8000"
volumes:
- ./config:/config
- /mnt/user:/data:ro # Deine Medienbibliothek (nur lesen)
environment:
- TZ=Europe/Berlin
docker-compose up -d
Dann öffne http://DEINE_IP:8080 im Browser.
Alle Einstellungen sind im Web-Interface verfügbar:
| Einstellung | Beschreibung |
|---|---|
| Video-Pfade | Verzeichnisse zum Scannen (z.B. /data/movies, /data/tv) |
| Prioritäts-Pfade | Werden zuerst geladen (z.B. /data/tv/Aktuell) |
| Exclude-Patterns | Dateien überspringen (z.B. */Samples/*) |
| Preload-Größe | MB vom Anfang/Ende der Dateien laden |
| Max RAM-Nutzung | Preloading stoppen über diesem Prozentsatz |
| Scheduler | Cron-Ausdruck für automatische Durchläufe |
| Tautulli | URL und API-Key für Integration |
| Live-Monitoring | Automatisches Caching während Wiedergabe |
| Plex | URL und Token für On Deck Feature |
Wenn aktiviert, prüft der Preloader alle 60 Sekunden aktive Tautulli-Streams. Wenn jemand eine Serien-Episode schaut, werden automatisch die nächsten 3 Episoden gecacht. Das sorgt für nahtloses Binge-Watching!
| Einstellung | Beschreibung |
|---|---|
| Prüf-Intervall | Wie oft nach aktiven Streams geprüft wird (Standard: 60s) |
| Episoden zum Vorladen | Anzahl der nächsten Episoden zum Cachen (Standard: 3) |
| Endpunkt | Methode | Beschreibung |
|---|---|---|
/api/stats | GET | Aktueller Status und RAM-Nutzung |
/api/logs | GET | Letzte 20 Log-Zeilen |
/api/history | GET | Preload-Verlauf |
/api/preload | POST | Einzelne Datei preloaden |
/api/cache-status | GET | Prüfen ob Datei gecacht ist |
/api/webhook/plex | POST | Plex-Webhooks empfangen |
/api/test-tautulli | GET | Tautulli-Verbindung testen |
/api/test-plex | GET | Plex-Verbindung testen |
/api/test-live-monitoring | GET | Live-Monitoring-Erkennung testen |
/api/set-language | GET | UI-Sprache wechseln (en/de) |
http://PRELOADER_IP:8080/api/webhook/plexScreenshots coming soon / Screenshots folgen
# Clone
git clone https://github.com/hoktaar/unraid-video-preloader.git
cd unraid-video-preloader
# Run locally
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
MIT License - see LICENSE
Content type
Image
Digest
sha256:24aff82ae…
Size
145.6 MB
Last updated
11 months ago
docker pull derbarnimer/unraid-video-preloader