5.1 KiB
5.1 KiB
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
- FFmpeg (bevorzugt): Codec-Copy-Modus – schnell, verlustfrei, formatübergreifend
- 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
- Beispiel:
- 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
- Scheduler löst Job zum konfigurierten Zeitpunkt aus
- Aufnahme startet automatisch
- Nach Ablauf der eingestellten Dauer: automatischer Stopp
- Nächster Cron-Lauf wird berechnet
- 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 |
|---|---|
| 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