Zum Inhalt

Settings API

Endpunkte zum Lesen und Schreiben der Anwendungseinstellungen.


GET /api/settings

Gibt alle Einstellungen kategorisiert zurück.

Response:

{
  "paths": {
    "raw_dir": {
      "value": "/mnt/nas/raw",
      "schema": {
        "type": "string",
        "label": "Raw-Verzeichnis",
        "description": "Speicherort für rohe MKV-Dateien",
        "required": true
      }
    },
    "movie_dir": {
      "value": "/mnt/nas/movies",
      "schema": { ... }
    }
  },
  "tools": { ... },
  "encoding": { ... },
  "drive": { ... },
  "makemkv": { ... },
  "omdb": { ... },
  "notifications": { ... }
}

PUT /api/settings/:key

Aktualisiert eine einzelne Einstellung.

URL-Parameter: key – Einstellungs-Schlüssel

Request:

{
  "value": "/mnt/storage/raw"
}

Response:

{ "ok": true, "key": "raw_dir", "value": "/mnt/storage/raw" }

Fehlerfälle: - 400 – Ungültiger Wert (Validierungsfehler) - 404 – Einstellung nicht gefunden

Encode-Review-Refresh

Wenn eine encoding-relevante Einstellung geändert wird (z.B. handbrake_preset), wird der Encode-Plan für den aktuell wartenden Job automatisch neu berechnet.


PUT /api/settings

Aktualisiert mehrere Einstellungen auf einmal.

Request:

{
  "raw_dir": "/mnt/storage/raw",
  "movie_dir": "/mnt/storage/movies",
  "handbrake_preset": "H.265 MKV 720p30"
}

Response:

{
  "ok": true,
  "updated": ["raw_dir", "movie_dir", "handbrake_preset"],
  "errors": []
}

POST /api/settings/pushover/test

Sendet eine Test-Benachrichtigung über PushOver.

Request: Kein Body erforderlich (verwendet gespeicherte Zugangsdaten)

Response (Erfolg):

{ "ok": true, "message": "Test-Benachrichtigung gesendet" }

Response (Fehler):

{ "ok": false, "error": "Ungültiger API-Token" }

Skript-Verwaltung

Post-Encode-Skripte werden über eigene Endpunkte unter /api/settings/scripts verwaltet.

GET /api/settings/scripts

Gibt alle konfigurierten Skripte zurück.

Response:

{
  "scripts": [
    {
      "id": "script-abc123",
      "name": "Zu Plex verschieben",
      "command": "/home/michael/scripts/move-to-plex.sh",
      "description": "Verschiebt die fertige Datei ins Plex-Verzeichnis",
      "createdAt": "2024-01-15T10:00:00.000Z"
    }
  ]
}

POST /api/settings/scripts

Legt ein neues Post-Encode-Skript an.

Request:

{
  "name": "Zu Plex verschieben",
  "command": "/home/michael/scripts/move-to-plex.sh",
  "description": "Verschiebt die fertige Datei ins Plex-Verzeichnis"
}
Feld Typ Pflicht Beschreibung
name string Anzeigename
command string Shell-Befehl oder absoluter Skriptpfad
description string Optionale Beschreibung

Response:

{
  "ok": true,
  "script": {
    "id": "script-abc123",
    "name": "Zu Plex verschieben",
    "command": "/home/michael/scripts/move-to-plex.sh"
  }
}

PUT /api/settings/scripts/:scriptId

Aktualisiert ein vorhandenes Skript.

URL-Parameter: scriptId

Request: Gleiche Felder wie beim Anlegen (alle optional).

{ "name": "Zu Jellyfin verschieben", "command": "/home/michael/scripts/move-to-jellyfin.sh" }

Response: { "ok": true }


DELETE /api/settings/scripts/:scriptId

Löscht ein Skript.

URL-Parameter: scriptId

Response: { "ok": true }

Referenzen in Jobs

Wenn das Skript in laufenden oder abgeschlossenen Jobs referenziert wird, wird es trotzdem gelöscht. In zukünftigen Encode-Reviews erscheint es nicht mehr.


POST /api/settings/scripts/:scriptId/test

Führt ein Skript mit Platzhalter-Umgebungsvariablen aus (Testlauf).

URL-Parameter: scriptId

Response (Erfolg):

{
  "ok": true,
  "exitCode": 0,
  "stdout": "Testausgabe des Skripts",
  "stderr": "",
  "durationMs": 245
}

Response (Fehler):

{
  "ok": false,
  "exitCode": 1,
  "stdout": "",
  "stderr": "Datei nicht gefunden: /home/michael/scripts/move-to-plex.sh",
  "durationMs": 12
}

Platzhalter-Werte beim Testlauf:

Variable Testwert
RIPSTER_OUTPUT_PATH /tmp/ripster-test-output.mkv
RIPSTER_JOB_ID 0
RIPSTER_TITLE Test Film
RIPSTER_YEAR 2024
RIPSTER_IMDB_ID tt0000000
RIPSTER_RAW_PATH /tmp/ripster-test-raw.mkv

Einstellungs-Schlüssel Referenz

Eine vollständige Liste aller Einstellungs-Schlüssel:

Schlüssel Kategorie Typ Beschreibung
raw_dir paths string Raw-MKV Verzeichnis
movie_dir paths string Ausgabe-Verzeichnis
log_dir paths string Log-Verzeichnis
makemkv_command tools string MakeMKV-Befehl
handbrake_command tools string HandBrake-Befehl
mediainfo_command tools string MediaInfo-Befehl
handbrake_preset encoding string HandBrake-Preset-Name
handbrake_extra_args encoding string Zusatz-Argumente
output_extension encoding string Dateiendung (z.B. mkv)
filename_template encoding string Dateiname-Template
drive_mode drive select auto oder explicit
drive_device drive string Geräte-Pfad
disc_poll_interval_ms drive number Polling-Intervall (ms)
makemkv_min_length_minutes makemkv number Min. Titellänge (Minuten)
makemkv_backup_mode makemkv boolean Backup-Modus aktivieren
omdb_api_key omdb string OMDb API-Key
omdb_default_type omdb select Standard-Suchtyp
pushover_user_key notifications string PushOver User-Key
pushover_api_token notifications string PushOver API-Token