Skip to content

Download System DE

TheMRX13 edited this page Jun 12, 2026 · 1 revision

Download-System

🌐 English · Deutsch

Ablauf

  1. Episoden werden über die UI (oder durch AutoSync / Seerr) in die Download-Queue gestellt.
  2. Ein einzelner globaler Worker verarbeitet die Queue sequenziell — ein Auftrag (mit beliebig vielen Episoden) nach dem anderen.
  3. Pro Episode wird der passende Hoster-Extraktor aufgerufen, der Direktlink ermittelt und der Stream per yt-dlp/FFmpeg als .mkv gespeichert (Audio-/Untertitelspuren werden korrekt getaggt).
  4. Nach Abschluss: Benachrichtigungen, optionaler Jellyfin/Plex-Library-Refresh, optionales Anime4K-Upscaling.

Screenshot: Download-Queue

Status eines Queue-Eintrags

Status Bedeutung
queued Wartet auf den Worker
running Wird gerade heruntergeladen
completed Alle Episoden erfolgreich
partial Teilweise erfolgreich — mindestens eine Episode ok, mindestens eine fehlgeschlagen
failed Alle Episoden fehlgeschlagen
cancelled Vom Benutzer abgebrochen

Nach einem App-Absturz werden running-Einträge beim Neustart automatisch auf queued zurückgesetzt (Crash-Recovery).

Fehlerbehandlung & Watchdog

  • 3 Versuche pro Episode (2 s Pause dazwischen). Ist die gewünschte Sprache für eine Episode gar nicht verfügbar, wird ohne weitere Versuche eine verständliche Meldung gespeichert („Nicht verfügbar in: …“).
  • Watchdog: Jeder Episoden-Download läuft in einem überwachten Thread. Hard-Timeout nach 30 min (watchdog_hang_timeout), Abbruch nach 60 min ohne Fortschritt (watchdog_stall_timeout) — ein hängender yt-dlp kann die Queue damit nicht dauerhaft blockieren.
  • Fehlgeschlagene Episoden werden mit URL + Fehlertext am Eintrag gespeichert und sind in der UI einsehbar.

Aktionen in der Queue

Aktion Beschreibung
Pause / Fortsetzen Globale Pause; wird in der DB gespeichert und überlebt Neustarts. Die laufende Episode wird noch beendet
Abbrechen Bricht den laufenden Auftrag ab (killt den aktiven Subprozess sofort)
Episode überspringen Überspringt nur die aktuell laufende Episode, ohne sie als Fehler zu werten
Einzelne Episode wiederholen Bei partial/failed: nur eine fehlgeschlagene Episode erneut versuchen
Neu starten Kompletten Eintrag erneut in die Queue stellen
Verschieben Reihenfolge wartender Einträge ändern
Erledigte löschen Alle abgeschlossenen Einträge entfernen

Captcha-Lösung in der WebUI

Stößt ein Extraktor auf eine Captcha-Seite (z. B. Cloudflare Turnstile), startet die App einen unsichtbaren Patchright-Chromium mit Stealth-Maßnahmen und integriertem Werbeblocker. Die Captcha-Ansicht wird als Live-Screenshot in die WebUI gestreamt; Klicks in der UI werden an den Browser weitergeleitet. Admins können jedes Captcha lösen, normale Benutzer nur das ihrer eigenen Downloads.

Speicherort & Dateinamen

  • Basis: Download-Pfad aus den Einstellungen (Standard ~/Downloads) oder ein Custom Path pro Auftrag.
  • Sprachen-Trennung (optional): pro Sprache ein Unterordner — german-dub, english-sub, german-sub, english-dub, english-dub-german-sub.
  • Namensvorlage: standardmäßig {title} ({year}) [imdbid-{imdbid}]/Season {season}/{title} S{season}E{episode}.mkv (Konfiguration).

Speicherplatz-Prüfung

Vor jedem Auftrag prüft der Worker den freien Platz am Zielpfad. Unterschreitet er das konfigurierte Minimum (notif_disk_space_min_gb, Standard 5 GB, 0 = deaktiviert), wird eine Warnung verschickt (max. 1×/Stunde) — der Download startet trotzdem.

Statistiken

Pro Auftrag werden Durchschnittsgeschwindigkeit (MB/s) und Gesamtgröße erfasst; aggregierte Werte gibt es auf der Statistik-Seite (/stats).

Clone this wiki locally