Alert-Medien-Verwaltung: Upload & Zuweisung von MP4/FLAC/WEBM #80

Open
opened 2026-07-15 20:41:29 +02:00 by frank · 4 comments
Owner

Kontext

Alerts bestehen nicht nur aus Text und Position \u2013 die visuelle und akustische Untermalung macht den Charakter eines Alerts aus. Streamer wollen eigene Soundeffekte (FLAC/WAV/MP3), Animationen (MP4/WEBM) und Bilder (PNG/GIF) f\u00fcr jeden Alert-Typ hochladen und zuweisen.

Ziel

Ein Medien-Manager f\u00fcr Alert-Assets:

1. Medien-Upload & Verwaltung

  • Unterst\u00fctzte Formate: MP4, WEBM, FLAC, WAV, MP3, OGG, PNG, GIF, SVG
  • Upload via Admin-UI: Drag & Drop, Datei-Auswahl, Mehrfach-Upload
  • Asset-Galerie: Alle hochgeladenen Medien mit Thumbnail/Preview, Dateigr\u00f6\u00dfe, Dauer
  • Suche & Filter: Nach Dateiname, Typ (Audio/Video/Bild), Dateigr\u00f6\u00dfe
  • L\u00f6schen: Mit Referenz-Pr\u00fcfung (warnt wenn Medien noch zugewiesen sind)

2. Zuordnung zu Alert-Typen

  • Pro Alert-Typ: Prim\u00e4res Medium + optionales Zusatz-Medium
  • Zufalls-Auswahl: Liste von Medien, aus denen zuf\u00e4llig gew\u00e4hlt wird
  • Tier-spezifische Medien: Bei Bits: verschiedene Medien pro Bit-Tier
  • Fallback-Kaskade: Event-spezifisches Medium \u2192 Kategorie-Medium \u2192 Default (Stille)

3. Wiedergabe-Konfiguration

  • Lautst\u00e4rke: Per-Medium und per-Alert-Typ (getrennt konfigurierbar)
  • Loop: Soll das Medium loopen (nur w\u00e4hrend der Alert-Dauer)?
  • Playback-Start: Gleichzeitig mit Text oder erst nach Einblend-Animation
  • Stop-Verhalten: Am Ende ausblenden oder nat\u00fcrlich ausklingen lassen

4. Admin-UI

  • Media-Upload-Seite: Datei-Upload + Metadaten (Name, Tags, Kategorie)
  • Alert-Config-Editor: Medien-Auswahl per Dropdown/Asset-Picker pro Alert-Typ
  • Vorschau: Inline-Video/Audio-Player im Alert-Config-Dialog

Technische Leitplanken

  • Medien im User-Data-Verzeichnis: {app_data}/alert-media/{uuid}.{ext}
  • Metadaten in SQLite (alert_media-Tabelle: id, filename, type, duration, size, sha256)
  • Gro\u00dfe Dateien (>50MB) warnen, Upload-Limit 200MB pro Datei
  • Audio-Decoding via Web Audio API oder HTML5 <audio>/<video> im Overlay
  • Kein externer Service (alles lokal, datenschutz-konform)

Best-Practices

  • Video-Alerts: Kurze Clips (1-3s), WEBM mit Alpha-Kanal, \u22645MB
  • Sound-Alerts: FLAC oder MP3 (320kbps), max 5s, kurze Attack-Phase
  • Bild-Overlays: PNG mit Transparenz, 1920x1080 als Referenz, \u2264500KB
  • Variation: 3-5 verschiedene Medien pro Alert-Typ im Zufalls-Modus

Akzeptanz

  • MP4, WEBM, FLAC, WAV, MP3, PNG, GIF k\u00f6nnen hochgeladen werden
  • Asset-Galerie mit Thumbnails und Metadaten
  • Medien k\u00f6nnen Alert-Typen zugewiesen werden (prim\u00e4r + zuf\u00e4llig)
  • Tier-spezifische Medien f\u00fcr Bit-Cheer
  • Wiedergabe-Konfiguration (Volume, Loop, Start-Verz\u00f6gerung)
  • Upload-Limit und Dateiformat-Pr\u00fcfung funktionieren
  • L\u00f6sch-Schutz bei zugewiesenen Medien
## Kontext Alerts bestehen nicht nur aus Text und Position \u2013 die **visuelle und akustische Untermalung** macht den Charakter eines Alerts aus. Streamer wollen eigene Soundeffekte (FLAC/WAV/MP3), Animationen (MP4/WEBM) und Bilder (PNG/GIF) f\u00fcr jeden Alert-Typ hochladen und zuweisen. ## Ziel Ein **Medien-Manager** f\u00fcr Alert-Assets: ### 1. Medien-Upload & Verwaltung - **Unterst\u00fctzte Formate**: MP4, WEBM, FLAC, WAV, MP3, OGG, PNG, GIF, SVG - **Upload via Admin-UI**: Drag & Drop, Datei-Auswahl, Mehrfach-Upload - **Asset-Galerie**: Alle hochgeladenen Medien mit Thumbnail/Preview, Dateigr\u00f6\u00dfe, Dauer - **Suche & Filter**: Nach Dateiname, Typ (Audio/Video/Bild), Dateigr\u00f6\u00dfe - **L\u00f6schen**: Mit Referenz-Pr\u00fcfung (warnt wenn Medien noch zugewiesen sind) ### 2. Zuordnung zu Alert-Typen - Pro Alert-Typ: **Prim\u00e4res Medium** + optionales Zusatz-Medium - **Zufalls-Auswahl**: Liste von Medien, aus denen zuf\u00e4llig gew\u00e4hlt wird - **Tier-spezifische Medien**: Bei Bits: verschiedene Medien pro Bit-Tier - **Fallback-Kaskade**: Event-spezifisches Medium \u2192 Kategorie-Medium \u2192 Default (Stille) ### 3. Wiedergabe-Konfiguration - **Lautst\u00e4rke**: Per-Medium und per-Alert-Typ (getrennt konfigurierbar) - **Loop**: Soll das Medium loopen (nur w\u00e4hrend der Alert-Dauer)? - **Playback-Start**: Gleichzeitig mit Text oder erst nach Einblend-Animation - **Stop-Verhalten**: Am Ende ausblenden oder nat\u00fcrlich ausklingen lassen ### 4. Admin-UI - **Media-Upload-Seite**: Datei-Upload + Metadaten (Name, Tags, Kategorie) - **Alert-Config-Editor**: Medien-Auswahl per Dropdown/Asset-Picker pro Alert-Typ - **Vorschau**: Inline-Video/Audio-Player im Alert-Config-Dialog ## Technische Leitplanken - Medien im User-Data-Verzeichnis: `{app_data}/alert-media/{uuid}.{ext}` - Metadaten in SQLite (`alert_media`-Tabelle: id, filename, type, duration, size, sha256) - Gro\u00dfe Dateien (>50MB) warnen, Upload-Limit 200MB pro Datei - Audio-Decoding via Web Audio API oder HTML5 `<audio>`/`<video>` im Overlay - Kein externer Service (alles lokal, datenschutz-konform) ## Best-Practices - **Video-Alerts**: Kurze Clips (1-3s), WEBM mit Alpha-Kanal, \u22645MB - **Sound-Alerts**: FLAC oder MP3 (320kbps), max 5s, kurze Attack-Phase - **Bild-Overlays**: PNG mit Transparenz, 1920x1080 als Referenz, \u2264500KB - **Variation**: 3-5 verschiedene Medien pro Alert-Typ im Zufalls-Modus ## Akzeptanz - [ ] MP4, WEBM, FLAC, WAV, MP3, PNG, GIF k\u00f6nnen hochgeladen werden - [x] Asset-Galerie mit Thumbnails und Metadaten - [ ] Medien k\u00f6nnen Alert-Typen zugewiesen werden (prim\u00e4r + zuf\u00e4llig) - [ ] Tier-spezifische Medien f\u00fcr Bit-Cheer - [ ] Wiedergabe-Konfiguration (Volume, Loop, Start-Verz\u00f6gerung) - [ ] Upload-Limit und Dateiformat-Pr\u00fcfung funktionieren - [ ] L\u00f6sch-Schutz bei zugewiesenen Medien
frank self-assigned this 2026-07-15 20:41:29 +02:00
Author
Owner

Zugewiesen an codex agent via agent:ready label.

Zugewiesen an `codex` agent via `agent:ready` label.
frank removed their assignment 2026-07-15 20:59:34 +02:00
Collaborator

🤖 forge agent started

  • Agent: codex
  • Model: gpt-5.6-sol
  • Mode: pr
  • Trigger: assignee=agent|+4 mapped
  • Open ToDos: 7

Alert-Medien-Verwaltung: Upload & Zuweisung von MP4/FLAC/WEBM — Alerts bestehen nicht nur aus Text und Position \u2013 die visuelle und akustische Untermalung macht den Charakter eines Alerts aus. Streamer wollen eigene Soundeffekte (FLAC/WAV/MP3),…

🤖 **forge agent started** - Agent: `codex` - Model: `gpt-5.6-sol` - Mode: `pr` - Trigger: `assignee=agent|+4 mapped` - Open ToDos: 7 Alert-Medien-Verwaltung: Upload & Zuweisung von MP4/FLAC/WEBM — Alerts bestehen nicht nur aus Text und Position \u2013 die **visuelle und akustische Untermalung** macht den Charakter eines Alerts aus. Streamer wollen eigene Soundeffekte (FLAC/WAV/MP3),…
Collaborator

forge agent failed

agent branch has no commits ahead of main (empty PR); dirty work must be committed before finish
❌ **forge agent failed** ``` agent branch has no commits ahead of main (empty PR); dirty work must be committed before finish ```
Collaborator

🤖 forge agent started

  • Agent: codex
  • Model: gpt-5.6-sol
  • Mode: pr
  • Trigger: assignee=agent|+4 mapped
  • Open ToDos: 7

Alert-Medien-Verwaltung: Upload & Zuweisung von MP4/FLAC/WEBM — Alerts bestehen nicht nur aus Text und Position \u2013 die visuelle und akustische Untermalung macht den Charakter eines Alerts aus. Streamer wollen eigene Soundeffekte (FLAC/WAV/MP3),…

🤖 **forge agent started** - Agent: `codex` - Model: `gpt-5.6-sol` - Mode: `pr` - Trigger: `assignee=agent|+4 mapped` - Open ToDos: 7 Alert-Medien-Verwaltung: Upload & Zuweisung von MP4/FLAC/WEBM — Alerts bestehen nicht nur aus Text und Position \u2013 die **visuelle und akustische Untermalung** macht den Charakter eines Alerts aus. Streamer wollen eigene Soundeffekte (FLAC/WAV/MP3),…
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
frank/streamertool#80
No description provided.