custom-built tools and utilities for my livestreams!
Find a file
2026-08-10 23:24:34 +01:00
broadcast first commit! 🎉 2026-06-12 04:50:45 +01:00
cmd overhaul config, refactor twitch labels, init satellite 2026-07-24 17:24:07 +01:00
config overhaul config, refactor twitch labels, init satellite 2026-07-24 17:24:07 +01:00
learning more code tidy-up 2026-07-24 11:59:39 +01:00
music what do you mean InterVariable isn't a valid font 2026-08-10 23:24:34 +01:00
static move common static files, 503 on unavailable services 2026-07-24 12:41:36 +01:00
twitch overhaul config, refactor twitch labels, init satellite 2026-07-24 17:24:07 +01:00
.air.toml more code tidy-up 2026-07-24 11:59:39 +01:00
.env.example add twitch API stuff, add follow/sub/cheer labels 2026-07-24 03:54:29 +01:00
.gitattributes fully-functioning music status! 2026-06-13 03:10:06 +01:00
.gitignore add twitch API stuff, add follow/sub/cheer labels 2026-07-24 03:54:29 +01:00
go.mod add twitch API stuff, add follow/sub/cheer labels 2026-07-24 03:54:29 +01:00
go.sum add twitch API stuff, add follow/sub/cheer labels 2026-07-24 03:54:29 +01:00
README.md update readme 2026-07-24 17:54:07 +01:00

ari's stream tools

handy, custom-built tools and utilities for my livestreams!

setup

run once, then edit the generated config files to taste:

  • linux: ~/.config/ari-stream-tools/config.toml
  • macOS: ~/Library/Application Support/ari-stream-tools/config.toml
  • windows: %APPDATA%\ari-stream-tools\config.toml

incompatible or unconfigured services will simply not run: you're welcome to use only the services you need and/or care about.

endpoints

learning

endpoints and views for "ari is learning!" streams.

  • GET /learning/sse: server-sent events:
    • title-update: emits when the stream title is updated
  • POST /learning/title: update the current stream title
  • GET /learning/hello: intro view
  • GET /learning/brb: "be right back!" view
  • GET /learning/bye: stream ending view

music

endpoints for a music status indicator.

  • GET /music/sse: server-sent events:
    • music: emits when the currently playing track changes
      • example: {"title":"Untitled Track","artist":"Unknown Artist"}
    • music-state: emits when the playing state changes
      • example: {"playing":true}
  • GET /music/artwork: serves the currently playing track artwork
  • GET /music: music status indicator

twitch

endpoints for twitch events and labels.

  • GET /login: redirects to twitch login
  • GET /auth: twitch auth callback
  • GET /sse/*: server-sent events:
    • labels: emits once at start, and every time an update occurs.
      • update events contain a plain text username.
      • /sse/labels/latest-follower
      • /sse/labels/latest-subscriber
      • /sse/labels/latest-cheer
  • GET /labels/<label>: serves a twitch label view.
    • supported labels:
      • latest-follower
      • latest-subscriber
      • latest-cheer