Deprecation of chat commands through IRC

Update (2023-02-08): We are implementing a phased shutdown to help developers test whether their applications are affected and make others aware who may not have seen previous communication. The timeline has been added below and the final shutdown date has been updated to to February 24.

Twitch Chat and the Twitch API are two essential interfaces that third-party developers rely on to build innovative integrations for broadcasters and their viewers. Historically, there has been an unfortunate segmentation of functionality across these two products. Twitch Chat has included both the conversation as well as some actions that you would typically leverage via an API. Until recently for example, developers had to rely on the /raid command through IRC to start a raid even if their entire application was using the Twitch API otherwise.

In an effort to group all actions under the Twitch API and in the process allow further improvements to Twitch Chat, we are deprecating chat command usage through IRC as of today and these commands will no longer function via an IRC connection on or about February 18 24, 2023.

What’s changing?

Chat commands will still be available within Twitch-owned chat interfaces such as a channel page on twitch.tv or in the mobile apps. In other words, a broadcaster can use the /raid command on their channel to manually Raid another broadcaster, but third-party developers must use the “Start a Raid” Twitch API endpoint to do the same on their behalf.

The following Twitch Chat Commands are affected by this change and have a migration path to the Twitch API: /announce, /ban, /unban, /clear, /color, /commercial, /delete, /emoteonly, /emoteonlyoff, /followers, /followersoff, /marker, /mod, /mods, /unmod, /raid, /unraid, /slow, /slowoff, /subscribers, /subscribersoff, /timeout, /untimeout, /uniquechat, /uniquechatoff, /vip, /vips, /unvip, /w

Following the broader product news that Host Mode will be removed in October (see the host mode help article FAQ), the /host chat command will not have a migration path to the Twitch API. The /user and /help commands will also be removed on the date above.

The /me and /disconnect chat commands will continue to function as expected via IRC.

What action needs to be taken?

For convenience, we have created a Chat Command Migration Guide that defines the migration path for each chat command and any further notes that may be helpful when upgrading Twitch applications. Any developer who is using one or more of the chat commands listed in the migration guide through an IRC connection will need to migrate to the Twitch API endpoint equivalent by February 18, 2023 to avoid disruption to their application.

Over time, we will send out further reminders and direct communication to make sure we are reaching as many developers as possible while giving reasonable time for changes. If you have any questions regarding this change, please feel free to include them as a comment below.

Phased Shutdown Timeline

Leading up to the final date, there will be planned windows of time when chat commands will not function over IRC for developers to test functionality and alert others who may not have been aware of the change. Those windows are as follows:

Date Window Length Range (Click to view other timezones)
2023-02-14 3-hour 2023-02-14T18:30:00Z→2023-02-14T21:30:00Z
2023-02-16 5-hour 2023-02-16T18:30:00Z→2023-02-16T23:30:00Z
2023-02-21 24-hour 2023-02-21T18:30:00Z→2023-02-22T18:30:00Z
2023-02-24 Permanent 2023-02-24T18:30:00Z
4 Likes

So rate limits to chat commands are essentially changing… again?

1 Like

Can you add a parameter to the /raid endpoint to execute a raid before the timer completes?

Create a uservoice or up vote this existing one Raid Now – Twitch UserVoice

This is outrageous. It breaks basically

ALL

apps dealing with IRC, the migration path is suck up the rate limits and use helix? It also removes the only sensible way for (at least some) 3p users to whisper: /w. The requirements to even use this feature are outright stupid. I’ll be honest: I find it suspicious how Twitch suddenly pushed phone number verification, just like there is something to earn there, I do not trust this company. A whole 163 days to rewrite any functionality dealing with this shit or just delete your app and have it be over with. Open a new connection, wait for tls, send a json and then decode one back instead of using the already existing long-running connection? And what for? Just messing with third party developers because you can? Someone abusing IRC commands, executing hundreds and hundreds of /mods, /vips or what ever? Those people will be the first to abuse your first party graphql or just use fuck ton of selenium browsers to do the same and probably have better rate limits than helix.
Developing for this platform is for masochists. Oops now your app that relied on behavior that existed for YEARS AND YEARS and has been documented is broken, suck it up. Like how fucking stupid is that.

12 Likes

The migration link doesn’t seem to show any information for migration. Please fix.

Links to Twitch Chat Commands | Twitch Developers

Left Column is the command (a)
Mid Column is the Helix API (b)

feel so sad about this, this make me so depressed.

3 Likes

There is, Authy refuses to give Twitch our phone numbers, so they’ve finally figured out a way to incentivize users to willingly give them up.

3 Likes

That doesn’t seem to show up for me. I don’t see that entire section

Give it 30mins to an hour in case you have some caching going on, or clear your cache and retry.

Can I still use those commands as a moderator or editor?
If not, this is a miserable and unnecessary reduction of functionality.

Chat via the Twitch website is unchanged in behaviour. So Editors (or mods) can still use commands as normal via the Twitch website as normal.

2 Likes

Can we put some bold or emphasis on this?

Or maybe a None of the following effects the Twitch-owned chat interfaces

Since this is at the end of “What’s changing”, there seems to be some confusion with non-dev site users reading this and thinking that /user and /help are being removed entirely.

1 Like

God I hate developing with this site so much… Christ.

7 Likes

In what universe does this make the platform better? This is such a shit and terrible change that just actively hurts the developers that try to make your platform bareable.

You haven’t supplied any proper reasoning for the change either- at the very least, have the decency to supply that.

4 Likes

That would be

So I imagine around february more improvements are planned once old services can be decommissioned.

1 Like

I’m sort of at a loss as to how I should be contacting all of my users to tell them to re-auth to pick up the new scopes required for all of the commands that my bot would have to add in order to do things like ban/timeout users. I dropped the scopes that would give me info like email addresses when I switched away from the old API and scopes, as it wasn’t info I thought I’d have to use and less data is better, but I guess that was foolish.

For user-initiated commands, this change is fine (ignoring rate limiting…?), because I can respond with an error message that tells the channel owner that they need to take some action (log back into the website to grant extra permissions). But now, in order to ban users who violate some special filter or rule without the command (which is just run via a modded bot account over IRC), there’s no way to notify or fix the problem if it fails. The user will just fail to be banned, and I’m not going to respond to a bannable message with a notification like “Hey, banning doesn’t work, please re-auth”, because that just tells the banned user that they can continue whatever they were doing.

Based on the migration guide linked in a comment above, the scopes I need at least in my bot are:

  • moderator:manage:chat_settings
  • moderator:manage:banned_users
  • user:manage:chat_color (at least this one’s on the bot account)

None of which I currently have on any of my users. :frowning:

Not to mention the fact that now, a channel owner’s token expiring via a password change means no more moderation.

(I don’t see /r9kbeta noted on any of the docs pages; I guess that’s been renamed to “unique chat” mode at some point?)

EDIT: My concerns about fixing up scopes have largely been handled below. The rate limiting concerns are still a thing, though, but I guess I don’t do that much traffic anyway.

3 Likes

All of these are on the bot account. As banning/timeing out needs a token from a moderator or above. So you just need to refresh the bot’s token.

So in the example of nightbot it’s owner night only needs to reauth the nightbot account with the newish scopes. And doesn’t need to ask casters to do anything. (well unless mod’s need to be processed for admin panel access but thats a different kettel of fish as the mod list apis are brand new ish)

You don’t need to reauth casters, just your bot account(s).

Yeah it’s uniquechat. I guess it’s no longer in beta or using the XKCD name for it.

1 Like

How will this effect replies? Currently a PRIVMSG is required to execute a reply and /reply is not a mentioned command in this blog.