Zum Inhalt springen
  • Dunkel
  • Hell
  • System

!streamtime

Twitchs Stream-Online-Event ist die Wahrheitsquelle für den Stream-Start. Streamer.bot bietet keinen Built-in-Counter “läuft der Stream seit X Sekunden”. Wir setzen einen Persisted Global beim Stream-Online und lesen ihn im Command.

Setup-Step 1 · Helper-Action am Stream-Online-Event

Abschnitt betitelt „Setup-Step 1 · Helper-Action am Stream-Online-Event“

Bevor !streamtime funktioniert, brauchst du eine Helper-Action die beim Stream-Online den Timestamp speichert. Eine einzige Sub-Action:

Global (Set). Stream-Start-Timestamp

Core Globals Global (Set)

Speichert den Stream-Start-Zeitpunkt als Global. Trigger: Twitch → Stream → Online.

Variable Name streamStartedAt
Value %timestampUnixSeconds%
Mode Value
Destination Global
Persisted Persisted

Trigger: Twitch → Stream Online an diese Helper-Action koppeln.

Global (Get). Start-Timestamp holen

Core Globals Global (Get)

Holt den beim Stream-Online gesetzten Timestamp.

Variable Name streamStartedAt
Default Value 0
Source Global
Persisted Persisted
Variable Name (Destination) startedAt

If/Else: Läuft der Stream gerade?

Core Logic If/Else

Wenn startedAt=0, war noch nie ein Stream-Online-Event: vermutlich Stream offline.

Left Value %startedAt%
Comparator Greater Than
Right Value 0

Set Argument: Stream-Dauer in Minuten

Core Arguments Set Argument

Im Then-Branch. Differenz aus jetzt und Start, gerundet auf 1 Dezimalstelle.

Variable Name streamMinutes
Value $round($divide($subtract(%timestampUnixSeconds%, %startedAt%), 60)$, 0)$

Send Message: Dauer posten

Twitch Chat Send Message to Channel

Im Then-Branch nach der Berechnung.

Message 🔴 Stream läuft seit %streamMinutes% Minuten: keep going!
Send using bot account aktiv
Fallback to Broadcaster aktiv

Im Else-Branch: Stream-Start nicht erfasst: entweder gerade offline oder Helper-Action am Stream-Online fehlt.

AzaBot: 🔴 Stream läuft seit 137 Minuten: keep going!
So sieht's im Chat aus
  1. 1 Global (Get): streamStartedAt → %startedAt%
  2. 2 If/Else: %startedAt% Greater Than 0
    1. Then 2a Set Argument: streamMinutes = round(divide(subtract(now, startedAt), 60), 0)
    2. Then 2b Send Message: "🔴 Stream läuft seit %streamMinutes% Minuten: keep going!"
    3. Else 2c Send Message: "Stream-Start nicht erfasst: entweder offline oder Helper-Action fehlt."
FeldWert
Name!streamtime. Live-Dauer
GroupStandard
Commands!streamtime
!uptime
!live
Text Matching ModeBasic
LocationStart
SourcesTwitch Message
Ignore Bot Accountaktiv
User Cooldown30
Global Cooldown0

Bei langen Streams (4h+) sieht “240 Minuten” nicht so geil aus. Math-Variante wie in !unlurk: floor() für Stunden, modulo() für Minuten.

Optional kannst du am Twitch → Stream → Offline-Event den Global wieder auf 0 setzen. Vorteil: !streamtime antwortet bei Stream-offline mit der Else-Message statt mit dem alten Timestamp. Nachteil: Wenn du den Command nach dem Stream im Vods-Chat triggerst (z.B. für Stats), ist der Wert weg. Empfehlung: nicht zurücksetzen: die Else-Branch-Check ist robust genug.

Twitch sendet manchmal Stream Online-Events bei kurzen Drop-Reconnects. Falls du beim Reconnect den Original-Start behalten willst, einen zweiten Global lastStreamSession mit Stunden-Granularität dazu: wenn lastStreamSession weniger als 2h alt ist, nicht überschreiben.