Livestream Tracker - kabiiQ/FBK GitHub Wiki
❗️ Warning regarding multiple site trackers
The bot will not be able to always guess the site you are trying to track. In this case, you will need to specify the site name, track using a full profile URL, or set the default for the channel using the /usetracker command.
-
Twitch
-
YouTube (Live streams and/or regular uploads)
-
TwitCasting
-
Kick (Available but untested)
🔒 By default, channel moderators (Manage Messages permission) can track streams. Tracking can be enabled for all users by running
feature lock disable
. You may want to disable the other tracker types (anime, twitter) using thefeature
command for this use-case.
Command | Description |
---|---|
/track | Track a livestream in the current channel. If possible, the bot will assume the target to be tracked. If a YouTube channel ID is provided, the bot will assume YouTube is the target. If a username is provided, the bot will assume another enabled tracker, such as Twitch or Twitter, was the intended target. Generally, YouTube channels can NOT be tracked by username. New YouTube "usernames" are not directly searchable through the YouTube API. You must find the 24-character channel ID. A YouTube URL such as http://youtube.com/c/kabiiTV will NOT WORK. Ensure you are using the 24-digit channel ID, for example UC023Ti_L0wTJo6os1Bmuaew There is an alternate syntax available to do everything in one option: /track twitch:username
|
/untrack | Untrack a livestream in the current channel. |
/trackvid | (YouTube-specific) Track a specific upcoming YouTube livestream and receive a ping reminder when it goes live. Optionally specify a role to instead ping a role when this stream goes live. |
To have a role mentioned when a channel goes live or uploads a video (YT), you can use /setmention
.
The role must already exist. This allows you to use an existing role in your server or create a new one for this purpose before running this command.
To REMOVE a configured role, run /setmention
for the specific channel and do not specify a role
.
The currently configured role/text can be checked using the /getmention
command.
Twitch/TwitCasting streams will currently not ping when going live if it was pinged in the last 6 hours.
The alternateuploadrole
option allows you to set a different role that should be pinged for YouTube uploads and premieres. This is a requested feature, and if you want the same role pinged for all content (most common), you can just ignore this option in setmention.
Members-only streams will often be picked up and displayed. To avoid pinging users who may not even be able to view that stream:
If a YouTube membership stream is detected to be locked members-only content, the regular assigned role with setmention
will NOT be pinged. /setmention
has an option membershiprole
if you have a role that you want pinged for these types of streams. It can be set to the same role as regular streams if that is the desired behavior.
Members-only streams can be missed by the bot if they are never listed as public. YouTube does not expose those videos. If the streamer is tracked on Twitter and ever tweets about the members-only stream with a YouTube link (common), the bot is able to use this information to discover the video and post it automatically. Otherwise, it can be discovered by any user running /trackvid with the video (in any Discord channel with the bot).
❗ In addition to live streams, the YouTube tracker can also post notifications when videos are uploaded or when scheduled streams are approaching.
The settings specific to YouTube channel tracking can be configured using the /yt
command. This command requires the Manage Channel
permission in the current channel, and works the same as other Configuration Commands. For example, /yt setup
will present you with an interactive embed for configuration.
Property Name | Description | Type | Default Value |
---|---|---|---|
streams | If enabled, a notification will be made when tracked channels go live on YouTube. | toggle |
enabled |
uploads | If enabled, a notification will be made when tracked channels post/upload a new video to YouTube. | toggle |
enabled |
premieres | If enabled, a notification will be made when a premiere begins on a tracked channel. | toggle |
enabled |
creation | If enabled, a notification will be made when tracked channels create and initially schedule a future live stream event. | toggle |
false |
upcoming | If this value is set, a notification will be made when a tracked channel has an upcoming stream within the specified duration . For example, set upcoming to 1h to include any streams going live in the next hour. Use /yt upcoming reset:true to reset this value and disable the summary feature. |
duration |
not set |
upcomingChannel | If this value is set, notice and messages from the current channel will instead be posted into an alternate channel. To unset this and deliver upcoming messages to the normal tracker channel, use /youtube upcomingchannel reset:true . |
text channel |
not set |
memberVideos | If this value is set, videos which are detected as members-only (see above for caveat on membership stream detection) will be included in this channel. Only disable this if you do not want membership videos posted in a channel at all. Generally, you should not touch this setting unless specifically need it. Membership streams will already not ping the general role as other videos. | toggle |
enabled |
publicVideos | If this value is set, videos which are NOT member-restricted will be included in this channel. The only reason you would disable this would be to have a specific channel that ONLY posts membership content. | toggle |
enabled |
memberVideos
and publicVideos
are both enabled by default and should not be touched unless you are trying to achieve a specific "members-only" channel setup. Please do not mess with memberVideos
just because a membership stream was not posted. Read the section above for details on membership stream detection.
Configuration for the livestream tracker is accessible through the /streamcfg
command. This command works the same as other Configuration Commands. For example, /streamcfg setup
will provide an interactive embed for configuration.
🔓 Modifying the livestream tracker configuration only affects the current channel, and requires the
Manage Channel
permission.
These settings are all of type toggle
and allow you adjust the content included in the livestream announcement message.
Property Name | Description | Default Value |
---|---|---|
thumbnail | If enabled, the stream announcement will feature a stream thumbnail. | Enabled |
summary | If enabled, stream announcements will be changed to a stream summary when the stream ends. If disabled, the announcement will be deleted when the stream ends. |
Enabled |
viewers | If enabled, the stream summary will include the peak and average viewer counts. summary must be enabled. |
Enabled |
game | If enabled, the stream summary will include the stream's ending game. summary must be enabled. Twitch only. |
Enabled |
pingRoles | When enabled, the setmention config in this server will be used for streams in this channel. If a channel has an assigned role, it will be pinged when the stream goes live (this is the default behavior). Only disable this if, for example, you have the same streams tracked in multiple channels and only want pings in one channel. |
Enabled |
pinLive | If enabled, active stream summaries will be pinned in the channel (bot must have Manage Messages permission) | Disabled |
rename | Enables automatic channel renaming for live streams (described below). | Disabled |
events | If this feature is enabled, a Discord "scheduled event" will be created for upcoming/live streams tracked in this channel. Experimental feature. | Disabled |
The bot can be configured to rename your Discord channel where streams are tracked and posted.
❗ When any streams are live, the channel name will be set to
<prefix><marks><suffix>
.When no tracked streams are live, the channel name will be reset. (configurable with
/streamcfg notlive
)NOTE that the characters that can be used in Discord channel names are highly restricted. Most special characters (,./\!#$:+- (SPACES) and many more) can NOT be in a channel name. However, emojis and various nonlatin characters do work. I do not have a full reference of disallowed characters, so if these are used the renaming will simply fail. The bot can not put any characters in a channel name which you are not able to do manually.
The channel renaming feature is enabled using the command /streamcfg rename Enabled
in your Discord channel where you have a channel tracked.
The format of the channel name can also be customized using the /streamcfg
configuration command. As described above, running the streamcfg command on its own will provide an interactive embed for these settings.
Property Name | Description | Type | Default Value |
---|---|---|---|
rename | If enabled , this channel will be renamed according to the tracked streams in this channel that are currently live. |
toggle |
disabled |
notlive | The name this channel should have when there are no streams live. Changing this will not update the channel name until all streams have ended. | string |
The channel name at the time this feature was enabled |
prefix | The beginning of the channel name when streams are live. Use reset to make this blank if you do not want a prefix. |
string |
🔴-live- |
suffix | The end of the channel name when streams are live. Use reset to make this blank if you do not want a prefix (this is also the default behavior) |
string |
blank |
For channels with multiple streams tracked, the best way to represent this is using emoji in the channel name to display which streams are live. Each stream's specific "mark" will be displayed in the channel name, after the prefix
, when that specific stream is live.
Adding emoji to represent streams can be done with /streamrenamecfg set
.
Remember that the channel name will be formatted as <prefix><live marks><suffix>
.
Example: streamrenamecfg set stream:UCdn5BQ06XqgXoAxIhbqw5Rg character:🌽
You can view existing configurations using /streamrenamecfg list
.
The /tracked
command will list all ;track'ed targets (yt, twitch, myanimelist).