Files
streamdock/docs/features.md
2026-04-12 22:50:50 +02:00

5.1 KiB
Raw Permalink Blame History

Features

Eine Übersicht aller Funktionen von StreamDock.


Stream-Verwaltung

  • Streams hinzufügen Manuelle Eingabe per URL mit automatischer Erkennung von Typ und Metadaten
  • Stream-Validierung Prüfung der Erreichbarkeit mit Auslesen von ICY-Metadaten (Sendername, Genre, Codec, Bitrate)
  • Unterstützte Formate:
    • Audio: MP3, AAC, OGG, FLAC
    • Video: HLS (HTTP Live Streaming), HTTP-Streams
  • Automatische Typ-Erkennung Unterscheidung zwischen Audio und Video anhand von Content-Type und URL-Pattern
  • Bearbeiten & Löschen Vollständige CRUD-Verwaltung pro Benutzer

Web-Player

Audio-Wiedergabe

  • HTML5 Audio-Element mit Web Audio API
  • 7-Band Equalizer mit einstellbaren Frequenzen:
    • 60 Hz, 170 Hz, 350 Hz, 1 kHz, 3.5 kHz, 10 kHz, 16 kHz
  • EQ-Presets: Flat, Bass, Rock, Vocal
  • Echtzeit-Visualizer FFT-basierte Frequenzspektrum-Anzeige (optonal ein-/ausschaltbar)
  • Lautstärkeregelung 0-100%, Scroll-Rad Unterstützung, automatische Speicherung pro Benutzer

Video-Wiedergabe

  • HLS.js-basierte Wiedergabe von HTTP Live Streams
  • Video-Proxy für RTMP-Streams (automatische Konvertierung zu HLS via FFmpeg)

Media Session

  • Integration mit dem Betriebssystem-Medienplayer (Play/Pause/Stop über Systemsteuerung)
  • Anzeige von Stream-Name und Titel in der Systembenachrichtigung

Now Playing

  • Automatisches Polling der ICY-Metadaten (alle 30 Sekunden)
  • Anzeige des aktuellen Titels (Interpret Titel) im Player

Aufnahme-System

Manuelle Aufnahme

  • Sofort-Aufnahme jedes Streams per Knopfdruck
  • Start/Stop über die Web-Oberfläche
  • Status-Anzeige: aufnehmend (pulsierend), abgeschlossen, Fehler

Aufnahme-Engines

  1. FFmpeg (bevorzugt): Codec-Copy-Modus schnell, verlustfrei, formatübergreifend
  2. HTTP-Fallback: Direkter Stream-Download, falls FFmpeg nicht verfügbar

Datei-Organisation

{recordings_path}/{benutzername}/{stream_name}/{dateiname}_{zeitstempel}.mp3
  • Automatische Bereinigung von Sonderzeichen in Dateinamen
  • Maximale Verzeichnisnamenlänge: 100 Zeichen

Aufnahmen verwalten

  • Abspielen Direkt im Browser
  • Herunterladen Als Datei speichern
  • Teilen Öffentlicher Share-Link mit optionalem Ablaufdatum und Download-Limit
  • Plik-Upload Aufnahme an Plik-Server senden (mit Download-Link)
  • Löschen Datei und Datenbankeintrag entfernen

Zeitgesteuerte Aufnahmen

Wiederkehrende Aufnahmen

  • Cron-Ausdrücke mit 6 Feldern (inkl. Sekunden):
    • Beispiel: 0 0 20 * * 1-5 → Montag bis Freitag um 20:00 Uhr
    • Beispiel: 0 30 8 * * 0 → Sonntag um 08:30 Uhr
  • Automatische Berechnung des nächsten Ausführungszeitpunkts
  • Aktivierung/Deaktivierung einzelner Zeitpläne

Einmalige Aufnahmen

  • Aufnahme zu einem bestimmten Datum und Uhrzeit
  • Automatischer Stopp nach konfigurierter Dauer

Aufnahme-Ablauf

  1. Scheduler löst Job zum konfigurierten Zeitpunkt aus
  2. Aufnahme startet automatisch
  3. Nach Ablauf der eingestellten Dauer: automatischer Stopp
  4. Nächster Cron-Lauf wird berechnet
  5. Optional: Benachrichtigung bei Start/Ende/Fehler

Bibliothek & Suche

  • Volltextsuche über Streams (Name, Genre, Beschreibung) und Aufnahmen (Dateiname)
  • Statistiken: Anzahl Streams, Aufnahmen, aktive Aufnahmen, genutzter Speicher
  • Benutzerisolierung Jeder Benutzer sieht nur seine eigenen Daten

Radio-Browser

  • Zugriff auf die radio-browser.info API mit über 30.000 freien Radiosendern
  • Suche nach Name, Land oder Genre-Tag
  • Top-Stationen nach Beliebtheit sortiert
  • Ein-Klick-Hinzufügen Sender direkt in die eigene Stream-Bibliothek übernehmen
  • Metadaten: Codec, Bitrate, Stimmen, Favicon

Benachrichtigungen

Kanäle

Kanal Beschreibung
E-Mail Versand über konfigurierten SMTP-Server
Webhook HTTP POST mit JSON-Payload an beliebige URL
Ntfy Push-Benachrichtigungen über ntfy.sh oder eigene Instanz

Events

Event Beschreibung
Login Benachrichtigung bei erfolgreicher Anmeldung
Aufnahme gestartet Wenn eine Aufnahme beginnt
Aufnahme abgeschlossen Wenn eine Aufnahme erfolgreich beendet wird
Aufnahme-Fehler Wenn eine Aufnahme fehlschlägt

Jeder Benutzer kann individuell wählen, welche Kanäle für welche Events aktiv sein sollen.


Progressive Web App (PWA)

  • Installierbar auf Smartphone, Tablet und Desktop
  • Offline-fähig Service Worker mit Cache-first Strategie für statische Assets
  • Standalone-Modus Läuft wie eine native App (ohne Browser-Leiste)
  • Automatisches Cache-Update bei neuen Versionen
  • Sprache: Deutsch

Dashboard

  • Übersichtliche Statistiken:
    • Anzahl gespeicherter Streams
    • Anzahl Aufnahmen
    • Aktive Aufnahmen
    • Genutzter Speicherplatz
  • Schnellzugriff auf alle Bereiche

Responsive Design

  • Optimiert für Desktop, Tablet und Smartphone
  • Dark-Mode Oberfläche
  • Responsive Navigation mit Toggle-Menü auf kleinen Bildschirmen

Weiter: API-Referenz