Skip to content

Streamathon

Streamathon shows a live countdown timer in OBS and other tools that support browser sources. Use it when viewer activity should add time to a stream timer.

  1. Open the Synchra Dashboard.
  2. Go to Widgets.
  3. Create a Streamathon widget.
  4. Enter a title and start seconds.
  5. Set Ends at if you want to have cap it to a specific date.
  6. Select which sources should add time.
  7. Set how many seconds each source adds.
  8. Click Widget URL and copy the URL.
  9. Add it to OBS as a Browser Source.
  10. Open Controls and start the timer.
Streamathon editor

Open controls from the widget settings.

You can start, pause, resume, restart, reset, add seconds and remove seconds.

The timer starts with the configured start seconds. When it is running, it counts down until it reaches zero. When it is paused, it stays where it is.

Activity such as subs, bits and donations can add seconds after the timer has started. You decide how much time each source adds.

You can customize the title, start seconds, end cap, sources, seconds, subtype multipliers, colors, font, size, padding, border and visibility settings.

Disabling the widget hides it from the browser source.

Streamathon can be styled using custom CSS. Start with the built-in settings first. Use custom CSS when you need a specific layout, glow, shadow, background or timer treatment.

ClassDescription
.streamathon-widgetMain streamathon widget container.
.streamathon-widget--disabledApplied when the widget is disabled.
.streamathon-widget__contentContent wrapper.
.streamathon-widget__titleWidget title.
.streamathon-widget__timer-wrapTimer and gain text wrapper.
.streamathon-widget__timerCountdown timer text.
.streamathon-widget__timer--bumpApplied briefly when activity adds time.
.streamathon-widget__gainAdded-time text shown after activity adds time.
.streamathon-widget__statusStatus text, such as paused or ended.
AttributeDescription
data-status="idle"Timer has not started.
data-status="running"Timer is running.
data-status="paused"Timer is paused.
data-status="ended"Timer reached zero.
VariableDescription
--streamathon-widget-text-colorMain text color.
--streamathon-widget-background-colorWidget background.
--streamathon-widget-border-colorWidget border color.
--streamathon-widget-time-left-colorTime left color.
--streamathon-widget-ended-timer-colorTimer color when ended.
--streamathon-widget-border-widthWidget border width.
--streamathon-widget-border-radiusWidget corner radius.
--streamathon-widget-paddingWidget padding.
--streamathon-widget-font-familyWidget font family.
--streamathon-widget-font-sizeBase font size.
--streamathon-widget-min-widthMinimum widget width.
--streamathon-widget-max-widthMaximum widget width.
.streamathon-widget__timer {
  text-shadow: 0 0 12px currentColor;
}

.streamathon-widget__status {
  opacity: 0.85;
}
.streamathon-widget[data-status="ended"] .streamathon-widget__timer {
  color: var(--streamathon-widget-ended-timer-color);
  text-shadow: 0 0 18px currentColor;
}