Release: v3.1.0
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 50 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 58 KiB |
@@ -2,14 +2,29 @@
|
||||
|
||||
## Aktive Aufnahmen
|
||||
|
||||

|
||||
|
||||
Das Dashboard zeigt alle laufenden Aufnahmen mit:
|
||||
- Laufzeit
|
||||
- Dateigröße
|
||||
- Verbleibende Zeit (bei Zeitlimit)
|
||||
- Segment-Anzahl (bei Segment-Splitting)
|
||||
|
||||
## Letzte Aufnahmen
|
||||
|
||||
Unterhalb der aktiven Aufnahmen zeigt das Dashboard die letzten abgeschlossenen Aufnahmen. Per Klick auf eine Aufnahme wird eine Detailansicht ausgeklappt mit:
|
||||
|
||||
- **Status** — abgeschlossen, gestoppt oder Fehler (inkl. Fehlermeldung)
|
||||
- **Start- und Endzeit**
|
||||
- **Dauer und Dateigröße**
|
||||
- **Plik-URL** — Direkter Link zum Download, falls die Aufnahme zu Plik hochgeladen wurde
|
||||
- **Dateipfad** — Lokaler Pfad zur Aufnahmedatei (sofern nicht nach Upload gelöscht)
|
||||
- **Stream-URL**
|
||||
|
||||
## Aufnahme verlängern
|
||||
|
||||

|
||||
|
||||
Laufende Aufnahmen können verlängert werden:
|
||||
- **+15 / +30 / +60 / +120 Minuten** — Schnellauswahl
|
||||
- **Eigene Dauer** — Beliebige Minutenzahl eingeben
|
||||
|
||||
+36
-2
@@ -1,5 +1,7 @@
|
||||
# Jobs
|
||||
|
||||

|
||||
|
||||
Jobs sind vorkonfigurierte Aufnahme-Vorlagen. Jeder Job definiert einen Stream, optional einen Zeitplan und Plugin-Einstellungen.
|
||||
|
||||
## Job erstellen
|
||||
@@ -17,6 +19,8 @@ Im Web-UI unter **Jobs → + Neuer Job**.
|
||||
|
||||
| Feld | Beschreibung |
|
||||
|------|-------------|
|
||||
| **Senderbibliothek** | Sender aus der Bibliothek auswählen — URL und Typ werden übernommen |
|
||||
| **Beschreibung** | Freitext-Notiz zum Job (wird auch in NTFY-Nachrichten mitgeschickt) |
|
||||
| **Typ** | Automatisch erkannt aus URL. Manuell wählbar: RTMP, HLS, MP3, AAC, OGG, HTTP |
|
||||
| **Ausgabeformat** | Dateiendung. Leer = automatisch (mp4 für Video, mp3 für Audio) |
|
||||
| **Max. Dauer** | Zeitlimit in Minuten. Entfällt bei Zeitplan mit Endzeit |
|
||||
@@ -30,7 +34,8 @@ Aktiviert automatische Aufnahmen zu festgelegten Zeiten.
|
||||
| Feld | Beschreibung |
|
||||
|------|-------------|
|
||||
| **Einmalig** | Nur einmal am angegebenen Datum ausführen |
|
||||
| **Datum** | Datum für einmalige Aufnahme |
|
||||
| **Startdatum** | Datum für einmalige Aufnahme |
|
||||
| **Enddatum** | Enddatum für mehrtägige Aufnahmen (leer = gleicher Tag) |
|
||||
| **Tage** | Wochentage: `*` (täglich), `Mo-Fr`, `Sa,So`, `Mo,Mi,Fr` |
|
||||
| **Startzeit** | Aufnahme-Beginn (HH:MM) |
|
||||
| **Endzeit** | Aufnahme-Ende (HH:MM) — Dauer wird automatisch berechnet |
|
||||
@@ -49,10 +54,39 @@ Wenn Start- und Endzeit gesetzt sind, wird die Aufnahmedauer automatisch berechn
|
||||
|
||||
Unterstützt: `Mo/Mon/Montag`, `Di/Tue/Dienstag`, `Mi/Wed/Mittwoch`, `Do/Thu/Donnerstag`, `Fr/Fri/Freitag`, `Sa/Sat/Samstag`, `So/Sun/Sonntag`
|
||||
|
||||
### Zeitpuffer
|
||||
|
||||

|
||||
|
||||
Pro Job können Vor- und Nachlaufzeit konfiguriert werden, um die Aufnahme um den geplanten Zeitraum herum zu erweitern:
|
||||
|
||||
| Feld | Beschreibung |
|
||||
|------|-------------|
|
||||
| **Vorlaufzeit** | Aufnahme startet X Minuten vor der geplanten Startzeit |
|
||||
| **Nachlaufzeit** | Aufnahme läuft X Minuten über die geplante Endzeit hinaus |
|
||||
|
||||
Die Standardwerte können in den Einstellungen unter **Zeitplan-Puffer** festgelegt werden.
|
||||
|
||||
### Mehrtägige Aufnahmen
|
||||
|
||||
Bei einmaligen Aufnahmen kann ein **Enddatum** angegeben werden, das nach dem Startdatum liegt. Die Aufnahmedauer wird dann automatisch über die Tagesgrenzen hinweg berechnet.
|
||||
|
||||
## Plugins pro Job
|
||||
|
||||
Jeder Job kann individuell Plugin-Funktionen aktivieren:
|
||||
|
||||
| Option | Beschreibung |
|
||||
|--------|-------------|
|
||||
| **Benachrichtigungen (NTFY)** | Push-Nachrichten bei Start, Stop und Fehlern für diesen Job |
|
||||
| **Plik-Upload** | Automatischer Upload nach Aufnahme-Ende |
|
||||
| **File nach Upload lokal löschen** | Lokale Datei nach erfolgreichem Plik-Upload entfernen |
|
||||
|
||||
Die globale NTFY- und Plik-Konfiguration (URL, Token, etc.) erfolgt in den [Einstellungen](konfiguration.md).
|
||||
|
||||
## Manuelle Aufnahme
|
||||
|
||||
Jobs können auch manuell über den **Aufnehmen**-Button gestartet werden, unabhängig vom Zeitplan.
|
||||
|
||||
## Schnellaufnahme
|
||||
|
||||
Für einmalige Aufnahmen ohne Job: **Dashboard → + Schnellaufnahme**. URL eingeben, optional Name und Dauer angeben, sofort starten.
|
||||
Für einmalige Aufnahmen ohne Job: **Dashboard → + Schnellaufnahme**. URL eingeben (oder aus der Senderbibliothek wählen), optional Name und Dauer angeben, sofort starten.
|
||||
|
||||
+37
-2
@@ -2,9 +2,11 @@
|
||||
|
||||
## config.yml
|
||||
|
||||

|
||||
|
||||
Die Konfiguration liegt in `data/config.yml` und kann über das Web-UI unter **Einstellungen** bearbeitet werden.
|
||||
|
||||
Beim ersten Start wird die Datei automatisch mit Standardwerten erstellt. Eine Vorlage mit Kommentaren findet sich in `config/config.yml.dist`.
|
||||
Beim ersten Start wird die Datei automatisch mit Standardwerten erstellt. Eine Vorlage mit Kommentaren findet sich in `bin/config.yml.dist`.
|
||||
|
||||
## Abschnitte
|
||||
|
||||
@@ -13,9 +15,16 @@ Beim ersten Start wird die Datei automatisch mit Standardwerten erstellt. Eine V
|
||||
| Parameter | Standard | Beschreibung |
|
||||
|-----------|----------|-------------|
|
||||
| `recording.download_path` | `/app/data/recordings` | Speicherort für Aufnahmen |
|
||||
| `recording.max_retries` | `5` | Max. Reconnect-Versuche bei Verbindungsabbruch |
|
||||
| `recording.max_retries` | `5` | Max. Reconnect-Versuche bei Verbindungsabbruch (0 = unbegrenzt) |
|
||||
| `recording.retry_delay` | `5` | Wartezeit (Sekunden) zwischen Reconnect-Versuchen |
|
||||
|
||||
### Server
|
||||
|
||||
| Parameter | Standard | Beschreibung |
|
||||
|-----------|----------|-------------|
|
||||
| `server.host` | `0.0.0.0` | Bind-Adresse des Webservers |
|
||||
| `server.port` | `8484` | Port des Webservers |
|
||||
|
||||
### Authentifizierung
|
||||
|
||||
| Parameter | Standard | Beschreibung |
|
||||
@@ -24,6 +33,15 @@ Beim ersten Start wird die Datei automatisch mit Standardwerten erstellt. Eine V
|
||||
| `auth.username` | `admin` | Benutzername |
|
||||
| `auth.password` | `stream-recorder` | Passwort |
|
||||
|
||||
### Zeitplan-Puffer
|
||||
|
||||
Standardwerte für die Vor- und Nachlaufzeit bei neuen Jobs mit Zeitplan.
|
||||
|
||||
| Parameter | Standard | Beschreibung |
|
||||
|-----------|----------|-------------|
|
||||
| `schedule.default_pre_buffer` | `5` | Standard-Vorlaufzeit (Minuten) |
|
||||
| `schedule.default_post_buffer` | `5` | Standard-Nachlaufzeit (Minuten) |
|
||||
|
||||
### NTFY
|
||||
|
||||
| Parameter | Standard | Beschreibung |
|
||||
@@ -40,6 +58,12 @@ Beim ersten Start wird die Datei automatisch mit Standardwerten erstellt. Eine V
|
||||
| `plik.api_key` | _(leer)_ | API Key für authentifizierte Uploads |
|
||||
| `plik.ttl` | `30d` | Aufbewahrungsdauer der Uploads (`30d`, `12h`, etc.) |
|
||||
|
||||
### Logging
|
||||
|
||||
| Parameter | Standard | Beschreibung |
|
||||
|-----------|----------|-------------|
|
||||
| `logging.level` | `INFO` | Log-Level: `DEBUG`, `INFO`, `WARN`, `ERROR` |
|
||||
|
||||
## Beispiel
|
||||
|
||||
```yaml
|
||||
@@ -48,11 +72,19 @@ recording:
|
||||
max_retries: 5
|
||||
retry_delay: 5
|
||||
|
||||
server:
|
||||
host: "0.0.0.0"
|
||||
port: 8484
|
||||
|
||||
auth:
|
||||
enabled: true
|
||||
username: admin
|
||||
password: mein-passwort
|
||||
|
||||
schedule:
|
||||
default_pre_buffer: 5
|
||||
default_post_buffer: 5
|
||||
|
||||
ntfy:
|
||||
url: https://ntfy.sh/stream-recorder
|
||||
token: ""
|
||||
@@ -62,4 +94,7 @@ plik:
|
||||
url: https://plik.example.com
|
||||
api_key: ""
|
||||
ttl: 30d
|
||||
|
||||
logging:
|
||||
level: INFO
|
||||
```
|
||||
|
||||
+2
-30
@@ -42,7 +42,7 @@ Automatischer Upload von Aufnahmen auf einen [Plik](https://github.com/root-gg/p
|
||||
| Option | Beschreibung |
|
||||
|--------|-------------|
|
||||
| **Plik-Upload** | Upload nach Aufnahme-Ende aktivieren |
|
||||
| **Nach Upload löschen** | Lokale Datei nach erfolgreichem Upload entfernen |
|
||||
| **File nach Upload lokal löschen** | Lokale Datei nach erfolgreichem Upload entfernen |
|
||||
|
||||
### Links
|
||||
|
||||
@@ -50,36 +50,8 @@ Nach dem Upload werden zwei URLs generiert:
|
||||
- **Browser-URL**: `https://plik.example.com/#/?id=UPLOAD_ID` — Übersichtsseite mit In-Browser-Wiedergabe
|
||||
- **Download-URL**: Direkter Datei-Download
|
||||
|
||||
Bei aktiviertem NTFY wird die Browser-URL in der Push-Nachricht mitgeschickt.
|
||||
Die Plik-URL wird in der Datenbank gespeichert und im Dashboard bei den **Letzten Aufnahmen** als klickbarer Link angezeigt. Bei aktiviertem NTFY wird die Browser-URL zusätzlich in der Push-Nachricht mitgeschickt.
|
||||
|
||||
### Segment-Upload
|
||||
|
||||
Bei Segment-Splitting werden alle Segmente einzeln hochgeladen. Die NTFY-Nachricht enthält die Anzahl der hochgeladenen Segmente.
|
||||
|
||||
---
|
||||
|
||||
## Euer-Radio Metadata-Monitor
|
||||
|
||||
Erkennt automatisch, ob eine bestimmte Show live sendet, indem der Stream-Titel via `ffprobe` abgefragt wird. Wenn das konfigurierte Pattern nicht mehr im Titel erscheint, wird die Aufnahme nach einer Karenzzeit gestoppt.
|
||||
|
||||
### Einrichtung
|
||||
|
||||
Pro Job im Web-UI:
|
||||
|
||||
| Option | Standard | Beschreibung |
|
||||
|--------|----------|-------------|
|
||||
| **Show-Pattern** | _(leer)_ | Text, der im Stream-Titel vorkommen muss (z.B. Sendungsname) |
|
||||
| **Karenzzeit** | 5 Min. | Wie lange gewartet wird, nachdem das Pattern verschwunden ist |
|
||||
| **Poll-Intervall** | 30 Sek. | Wie oft der Stream-Titel abgefragt wird |
|
||||
|
||||
### Funktionsweise
|
||||
|
||||
1. Der Monitor fragt regelmäßig den Stream-Titel per `ffprobe` ab
|
||||
2. Solange das Pattern im Titel vorkommt, läuft die Aufnahme weiter
|
||||
3. Wenn das Pattern verschwindet, startet die Karenzzeit
|
||||
4. Taucht das Pattern innerhalb der Karenzzeit wieder auf, wird der Timer zurückgesetzt
|
||||
5. Läuft die Karenzzeit ab, wird die Aufnahme gestoppt
|
||||
|
||||
### Anwendungsfall
|
||||
|
||||
Ideal für Streams mit wechselnden Shows (z.B. Internet-Radio), bei denen die Aufnahmedauer nicht vorher feststeht. Der Stream-Titel zeigt an, welche Show gerade läuft, und der Monitor erkennt automatisch das Ende.
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# Sender
|
||||
|
||||

|
||||
|
||||
Die Senderbibliothek verwaltet häufig genutzte Streams zentral. Einmal angelegte Sender können in Jobs und Schnellaufnahmen per Dropdown ausgewählt werden — die Stream-URL und der Typ werden automatisch übernommen.
|
||||
|
||||
## Sender anlegen
|
||||
|
||||
Im Web-UI unter **Sender → + Neuer Sender**.
|
||||
|
||||
| Feld | Pflicht | Beschreibung |
|
||||
|------|---------|-------------|
|
||||
| **Name** | Ja | Sendername (z.B. `WDR 2`, `DLF Kultur`) |
|
||||
| **Typ** | Nein | Stream-Typ: `auto` (Standard), RTMP, HLS, MP3, AAC, OGG, HTTP |
|
||||
| **Stream-URL** | Ja | URL des Streams (z.B. `https://wdr-wdr2-live.icecast.wdr.de/wdr/wdr2/live/mp3/256/stream.mp3`) |
|
||||
| **Beschreibung** | Nein | Freitext-Notiz (z.B. `Hauptstream, 256 kbit/s`) |
|
||||
|
||||
## Sender bearbeiten & löschen
|
||||
|
||||
In der Sender-Übersicht stehen pro Eintrag die Buttons **Bearbeiten** und **Löschen** zur Verfügung. Das Löschen eines Senders hat keinen Einfluss auf bereits existierende Jobs — die Stream-URL bleibt im Job erhalten.
|
||||
|
||||
## Verwendung in Jobs
|
||||
|
||||
Beim Erstellen oder Bearbeiten eines Jobs kann über das Dropdown **Senderbibliothek** ein gespeicherter Sender ausgewählt werden. Dabei werden automatisch übernommen:
|
||||
|
||||
- **Stream-URL** und **Typ** — die URL-Eingabe wird ausgeblendet
|
||||
- **Name** — falls das Namensfeld noch leer ist
|
||||
- **Beschreibung** — falls das Beschreibungsfeld noch leer ist
|
||||
|
||||
Alternativ bleibt die Option **URL manuell eingeben** bestehen.
|
||||
|
||||
## Verwendung in Schnellaufnahmen
|
||||
|
||||
Auch bei Schnellaufnahmen (Dashboard → + Schnellaufnahme) steht die Senderbibliothek als Dropdown zur Verfügung. Bei Auswahl werden URL, Typ und Name übernommen.
|
||||
Reference in New Issue
Block a user