Livestream Tracker - kabiiQ/FBK GitHub Wiki

📺 Livestream/Video Upload Tracker

❗️ 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.

⚙️ Currently supported websites:

  • Twitch

  • YouTube (Live streams and/or regular uploads)

  • TwitCasting

  • Kick (Available but untested)

User Commands

🔒 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 the feature 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.

Some Track Examples

🔔 Pinging a Role with /setmention

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.

Regarding YouTube membership streams

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).

Multiple Tracker Demonstration

(With setmention configured the same for all)

❗❗ YouTube Tracker Configuration with /yt

❗ 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 setupwill 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.

Stream Notification Configuration with /streamcfg

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

Automatic Channel Renaming

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.

Enabling Channel Rename Feature

The channel renaming feature is enabled using the command /streamcfg rename Enabled in your Discord channel where you have a channel tracked.


Channel Renaming Configuration

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

Setting Stream-Specific Characters/Emoji

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.

Quick rename Setup



Listing Tracked Streams with /tracked

The /tracked command will list all ;track'ed targets (yt, twitch, myanimelist).

⚠️ **GitHub.com Fallback** ⚠️