UnumBeta

Stream notifications and roles

Go-live posts in Discord, roles while streaming, subscriber roles, and social updates in your server.

Plus and up

Stream notifications

A streamer is one entry with a display name, and their Twitch, Kick and YouTube channels hang off it. That is deliberate: a streamer who goes live on two platforms at once gets one post, not two.

  1. Open Stream Notifications on the dashboard and switch the feature on.
  2. Under Add Streamer, enter a display name. This is the name the post uses, so write it the way your server would say it.
  3. On the new entry, find their channel under Add Platform and add one per platform they stream on. Twitch and Kick search by name. For YouTube, paste the channel's link or @handle (for example youtube.com/@name).
  4. Set the Discord Notify Channel ID on that entry. It takes the channel's ID, not its name. Right-click the channel in Discord and copy its ID.

Each streamer has their own notify channel, so one server can send different streamers to different channels.

What the post looks like

The post is plain text, not an embed and not an image. It is a bold line saying the streamer is live, then one line per platform they have connected, each with a link to that channel.

A streamer gets one post per live session. Going live on a second platform, a reconnect within ten minutes, or a changed title does not post again; a stream that starts after a longer break is a new session and gets a new post.

The post stays in the channel when the stream ends. Nothing deletes it for you.

Twitch
Twitch pushes a going-live event to us, so the post lands within seconds. If Unum was offline when a stream started, it posts it when it is back, as long as the stream began in the last 30 minutes.
Kick
Kick publishes no going-live event, so the channel is checked about once a minute. The post can be up to a minute behind the stream.
YouTube
YouTube pushes when a video appears, and we then check whether it is really a live broadcast rather than an upload. A stream scheduled ahead is watched and announced when it starts. YouTube decides when that push goes out, so this one is the least predictable of the three.

Live roles

A live role is handed out while a member is streaming and taken back when they stop. It is the feature behind the group of currently-live members at the top of a member list. On YouTube the end of a stream is checked every five minutes, so the role can stay on for up to five minutes after the stream ends.

Streamer Role
Who is eligible. A member without this role is ignored, however they are linked.
Live Role
The role held while the member is streaming.
Title Keywords
Optional, comma separated. When set, the role is only given if the stream title contains at least one of them. Left empty, every stream qualifies.

The member's side of this is two steps: link their account on the Unum dashboard, then run /link once per platform in your server. /link only accepts the channel of the account linked on the Unum dashboard, so nobody can claim someone else's channel.

Subscriber roles

Subscriber roles mirror who pays a connected channel into Discord roles. Pick a role per platform, set a grace period in hours, and add per-tier overrides if one role for the whole platform is too blunt.

The grace period is how long a lapsed subscription keeps its role, so a failed card retry or a short gap between renewals does not strip somebody on the day.

Twitch
Granted within seconds of the subscription. A gifted sub is granted from the recipient's own subscription event, so the gifter is not decorated by mistake.
YouTube
Paid channel members only, not free subscribers. A channel with a hundred thousand free subscribers and no paid members grants nobody this role. YouTube publishes no membership event, so grants arrive on the next sweep rather than immediately.
Kick
Granted within seconds, like Twitch. Kick publishes no subscriber list, though, so a cancellation is only noticed when a renewal fails to arrive, which can be up to about a month late, on top of your grace period.

A sweep reconciles each server about once a day against what the platforms say. It only ever removes roles from a subscriber list the platform actually returned: a failed call changes nothing, rather than stripping every supporter in the server.

Discord drops every role when someone leaves a server. Unum remembers the grant, so a subscriber who rejoins gets their role back straight away instead of waiting for the next sweep.

The role picker hides roles carrying dangerous permissions, and roles managed by another integration. The API refuses them too, so a role you cannot see here is one that could not be saved anyway.

Social posts into Discord

The Feed tab under Social follows public accounts and posts their updates into a Discord channel. The account does not have to be yours, and nobody signs in to anything: you paste what identifies it, pick the channel, and Unum watches it from there. A server can follow an account once, so nothing is ever posted twice.

Bluesky
A handle, such as unum.bsky.social.
Reddit
A subreddit or a user, such as r/gaming or u/spez.
YouTube
A channel address, a channel ID starting UC, or an @handle. A handle is turned into a channel ID when you save it.
Podcast
The show’s RSS address.
Any RSS feed
The address of the feed itself, for anything else that publishes one.

Bluesky is checked every 5 minutes, Reddit, YouTube and other feeds every 15, and podcasts every 30, each offset slightly so they do not all fire at once. Turning a feed on announces the next post rather than the backlog, and one check posts at most 10 updates.

When something does not happen

Almost everything here fails silently by design, because the alternative is a bot that complains in your channels. These are the causes worth checking, roughly in the order they catch people:

No go-live post at all
Check the feature is switched on, that the streamer entry has a notify channel ID set, and that the ID is the channel's ID rather than its name. Then check Unum can see and send in that channel.
The post is late
Kick is polled about once a minute and YouTube is pushed on YouTube's schedule. A minute or two on those two is normal, not a fault.
No live role when a member streams
They have not run /link for that platform in this server, they do not hold the streamer role, their channel is not one the server watches, or the stream title does not match your keywords.
A role never lands
Discord refuses any role change above the bot's own position. Move Unum's role above every role it hands out: live roles and subscriber roles both.
A subscriber has no role
Usually the account is not linked. After that: no role is set for that platform, the channel their subscription is on is not connected to this server, or, on YouTube, they are a free subscriber rather than a paid member.
A role did not go away
Your grace period has not expired yet. On Kick, add up to about a month on top of it, because a cancellation is only visible once a renewal fails to arrive.
Nothing posted to a social account
The channel that went live has to be the server owner's own, claimed with /link in this server, and the template for that platform has to be switched on with something in it.

If a member wants to check their own side of this rather than ask you, /mysubs tells them what Unum currently thinks their linked accounts earn them here.