Stream Announcements
Automatically announce when creators go live or publish new videos in your Discord server. This built-in module supports Twitch, YouTube, Kick and TikTok.
You can configure announcements through the dashboard or in config/modules/stream-notifications.yml. The dashboard is optional.
Supported platforms
Twitch
Yes
No
Creator username or profile URL, plus an application client ID and client secret.
YouTube
Yes
Videos and Shorts
Public channel @handle, channel URL or UC… channel ID. No API key is required.
Kick
Yes
No
Creator username or profile URL, plus an application client ID and client secret.
TikTok
Yes
Yes
Public username or profile URL. No creator login is required.
Set up through the dashboard
Bot permissions
Give the bot View Channel and Send Messages in the notification channel. Enable Embed Links when using previews. For a thread, the bot also needs access to the thread and Send Messages in Threads.
To notify a role, select it in Role to mention. The role must be mentionable, or the bot must have Mention Everyone permission. Leave the role empty to send announcements without a role ping.
Configure using YAML
Open config/modules/stream-notifications.yml. The settings below belong at the top level of that file; do not put them inside a StreamNotifications: section.
This complete example tracks a YouTube creator's live streams, videos and Shorts. Replace @yourchannel and the example Discord channel ID before saving. Keep Discord IDs in quotation marks.
Add more creators
Add another list entry underneath the existing entry in Creators. Do not add a second Creators: key. The following entries show Twitch, Kick and TikTok; copy only the ones you need and replace their example values.
Configure the corresponding application credentials before enabling Twitch or Kick notifications. Twitch and Kick entries must use Uploads: false.
Creator settings
ID
A unique reference for this entry. Use letters, numbers, underscores or hyphens, up to 80 characters. Keep it stable when editing the creator. The dashboard generates it automatically.
Enabled
Whether this creator is checked. The module's top-level Enabled setting must also be true.
Platform
twitch, youtube, kick or tiktok.
Creator
Public username or HTTPS profile URL. YouTube accepts an @handle or channel ID, including a channel URL. Use a creator profile, not an individual video or stream link.
Name
Optional display name used in announcements. Set "" to use the name supplied by the platform, or the configured creator identifier when unavailable.
ChannelID
The Discord channel or thread that receives announcements. It must belong to the server being configured.
RoleID
Optional Discord role to ping. Set "" for no role mention.
Live
Send live-stream notifications.
Uploads
Send new-upload notifications. Supported only for YouTube and TikTok.
You can configure up to 50 creator entries per server. Each enabled entry needs at least one event type. The same platform and creator cannot have two enabled entries targeting the same channel; enable both event types on one entry instead. Separate destination channels can use separate entries with different IDs.
Twitch and Kick credentials
Create an application using the official Twitch application setup guide or Kick application setup guide. Copy its client ID and client secret into the dashboard's Platforms tab, or replace the matching blocks in the module file:
Only configure the platforms you use. The bot obtains and renews application access tokens automatically. These fields take application credentials, not a stream key or the creator's account password.
Optional environment variables
To keep credential values in config/.env, use these placeholders in the module file:
Then add the variables for the platforms you use to config/.env:
Restart the bot after changing environment variables. A saved dashboard credential override still takes precedence until you choose Use local configuration.
Delivery and appearance
LiveInterval
"2m"
Time between live checks. Allowed range: "1m" to "1h". Existing live announcements refresh on successful checks.
UploadInterval
"5m"
Time between upload checks. Allowed range: "2m" to "1h".
NotifyExistingLive
true
Announce streams already live on the first successful check for a new creator/destination. Set false to wait for a new broadcast.
IncludePreview
true
Add an embed with the title and a preview image when available.
ShowWatchLiveButton
true
Add a link button to live announcements.
ShowViewerCountButton
true
Show a disabled information button with concurrent viewers when the platform supplies a count.
ShowWatchNowButton
false
Add a link button to upload announcements. The complete example above turns this on.
WatchLiveButtonLabel
"Watch Live"
Text on the live-stream link button.
ViewerCountButtonLabel
"Watching {viewers}"
Text on the viewer-count button. {viewers} becomes a formatted count.
WatchNowButtonLabel
"Watch Now"
Text on the upload link button.
Button labels support up to 80 characters. Set a label to "" to hide that button, even when its switch is enabled. Buttons can be used with previews turned off. Missing viewer counts are hidden; they are not replaced with total video views.
Customize the announcement text
Edit Messages.Live and Messages.Upload, or use Messages in the dashboard. Each template must contain text and can be up to 1,800 characters. The templates apply to all creators configured for that server.
{creator}
Your configured display name, or the creator's name.
{platform}
Twitch, YouTube, Kick or TikTok.
{title}
Stream or video title.
{url}
Direct link to the stream or upload.
{game}
Game or category, when available. Otherwise blank.
{viewers}
Concurrent viewers, when available. Otherwise blank.
When announcements are sent
Existing uploads are skipped. The first successful upload check records the current videos without posting them. New eligible uploads found after that check are announced.
Already-live streams follow
NotifyExistingLive. With the defaulttrue, adding a creator who is live can trigger an announcement on the first successful check.Checks are periodic. Allow the configured interval plus provider response time. Failed checks retry with increasing delays, up to one hour.
Live posts update. While a broadcast remains live, the bot refreshes its title, configured content, preview and viewer count when available. Routine edits do not ping the role again. Updates stop when the broadcast ends; a new broadcast gets a new post.
Deleted live posts can return. If a tracked announcement is deleted while the stream is still live, the bot recreates it on a later check. The replacement can ping the configured role. Disable the creator before deleting its post if you want it to stay removed.
Uploads are not periodically edited. YouTube scheduled streams and premieres are not announced before going live, and completed broadcasts are excluded from ordinary upload notifications.
History survives restarts. Renaming or reordering a creator does not reset notification history. Changing its destination channel starts a new baseline. Upload recovery examines recent content, so it is not a full archive: known uploads older than 24 hours are skipped, and busy feeds or long downtime can exceed the recent-feed window.
Troubleshooting
Last updated