Creator ruling 2026-11-09: finish the queue before the new features, gold pass always last. **Retired (platform's surface, not ours):** - 34 scheduled streams — YouTube owns scheduling *and* the reminder that makes it worth anything. - 50 publish recording — Studio owns upload (resumable, quota-aware, explains rejections), and an in-app uploader would widen the OAuth consent to whole-channel video management for one convenience. The app adds "Show in folder" instead. **New tasks:** 65 replay clips (the creator-side buffer YouTube does not give you), 66 timed ticker messages, 67 per-event alert videos, 68 edit-while-live + first-run On-Air. **TASK 65 spec** is the interesting one: 15 s is a clip (10/15/20, default 15); the ring holds encrypted *encoded* fragments in RAM — raw 1080p frames would be ~7.4 GB for 15 s — so there is no steady disk write and no crash debris; F10 saves; the replay layer plays once then hides in Live and loops the last 1–3 elsewhere; silent by default; three kept; the layer is excluded from its own clip (hall of mirrors). **TASK 14 gains Branch 3:** mic input gain ahead of the gate (table boom mics fall under it), webcam blank hotkey, opacity/geometry parity with a collapsed Geometry disclosure, Show-in-folder. **Decisions recorded:** the replay-buffer reversal (it was retired in 2022-era reasoning as "different product"; the case for it won), the platform-surface rule, and voice triggering deferred — always- listening in a streaming app hears the game, so the content is its own false-positive source. Queue refactored to 56 lines by archiving completed rows and the superseded surge plan; HANDOFF at 40.
17 lines
853 B
Markdown
17 lines
853 B
Markdown
# TASK 67 — Per-event alert videos
|
|
|
|
> Catalog: [`TASKS.md`](../TASKS.md). Creator idea 2026-11-09.
|
|
|
|
**Problem.** The app plays one alert clip for every event. That single clip was always a placeholder.
|
|
|
|
**Idea.** A clip per event kind — Super Chat, Super Sticker, membership, subscription, gift, raid —
|
|
falling back to the default when a kind has none assigned.
|
|
|
|
- Each slot accepts a local file; the existing picker and the decode/keying pipe are reused unchanged
|
|
(TASK 21 / 64), including green/blue screen — a clip is a clip.
|
|
- Missing slot → default clip → nothing, in that order, and never an error for the creator who only
|
|
filled one.
|
|
- The alert box's display method, sound byte and ticker stay per-event as they already are.
|
|
|
|
**Tests:** slot selection per event kind, fallback chain, a keyed per-event clip composites correctly.
|