IRC update: removing MODE and NAMES capabilities

Update: We will eventually remove the NAMES functionality as planned due to its unreliability. However, given the usage discussed below, we will postpone the removal until there is replacement functionality. This post will be updated when it is available and a timeline has been set for a migration and shutdown of NAMES.

The MODE and NAMES IRC capabilities that have been documented in the Chatbots & IRC section have not functioned correctly for some time and will not be supported. Since we do not want to offer incomplete or inaccurate functionality, these capabilities will be removed from the IRC interface on June 15, 2020 TBD.

What’s changing?

As of today, we are updating the documentation to remove mention of these capabilities. On June 15, these capabilities will be removed from the IRC interface.

Who will be impacted by these changes?

Developers who are (1) using MODE to understand who is a moderator for a given channel or (2) attempting to use NAMES to list the Twitch users on a given channel.

What action needs to be taken?

If you are using MODE for moderator information, it is recommended to use the Get Moderators API endpoint to get the current moderators list for a channel and subscribe to the Moderator Change Events webhook for real-time moderator changes.

NAMES, as mentioned in the documentation, could not support user lists over 1000 and has not functioned properly. It is recommended to remove use of this capability before the date above to avoid any errors in your applications. There is currently no supported method to retrieve the list of Twitch users present on a given channel.

1 Like

The Get Moderators API is behind a scope. This means I need the broadcasters permission (via OAuth) to see if I myself am a mod in their channel. Or am I missing something?

1 Like

Message tags aren’t going anywhere with this change. This is only concerning the old NAMES and MODE messages originating from the IRC spec.

Thanks! I totally forgot about the “USERSTATE” message. I also remembered that I can just use /mods and parse the result. This wouldn’t be visible to others and wouldn’t need any OAuth.

1 Like

Hm.

I can understand it, but it has worked quite well for smaller channels.

I want to bring the following points into consideration:

  1. As people inevitably want to still implement things the way they have been, if this change doesn’t remove a certain undocumented endpoint, traffic to it will drastically increase, which comes itself with issues - but then again, it is an undocumented endpoint, so people must not complain what happens with it. If it gets removed, a potentially official replacement Endpoint would be really handy. nudge nudge wink wink
  2. If people change implementations, it will end up meaning lurkers will have to end up being “less appreciated” because whatever integration may have been set up to deliver features that includes lurkers won’t be able to fetch them anymore.
  3. If 2) holds true, it may encourage people to spam more in chat when they are aware that their viewership only counts when they are posting something in chat. Noone likes spam.
  4. With the last change, a rolling window deployment was used and it was met with overall amazingly positive feedback. It would be VERY beneficial if such procedure was done for this change as well. If not, it would be great if some notice was sent in lieu of the “normal” NAMES response so devs know what’s up.
  5. It’s very understandable (in my opinion) that you don’t want incomplete/inconsistent functionality. I’m increasingly curious as to why the list behaves as it currently still does. Could we get some insight into it? It’s probably interesting.

Disclaimer: This is mostly my opinion and the direct impact i see for my application. Feel free to share other opinions!

1 Like

The membership capability is still documented, with JOIN and PART. Does this mean that joins/parts from other users in the channel are still going to be sent by the server, just not the initial full userlist? Otherwise I’m not sure what the point of the membership capability is, since of course a JOIN/PART for yourself when joining/leaving a channel is sent by the server either way.

(Also, the “Join a channel” section still mentions the removed capabilities.)

Hey, eng manager for the Chat team here. Thanks for the early feedback.

@tduva
The JOIN/PART IRC messages are not intended to go away with this change. These, to the best of our knowledge, are working as intended today.

MODE and NAMES are messages in a less understood part of the codebase that weren’t largely used by the developer community. They weren’t used by our first party apps, and there was additional maintenance overhead to test and maintain it as features/code changed around them.

The Chatters List is a product we’ve had a lot of internal discussion around. I can’t promise any timelines, but more official support for the functionality is on our radar.

3 Likes

There are tens of thousands of streamers that use loyalty points features that are going to be impacted with the removal of NAMES. NAMES was working reasonably well for smaller channels (< 1000 users) which does represent a fairly large community.

So removing NAMES without an alternative is going to hurt a very large streamer base and getting the list of chatters is at the core of most loyalty platforms that streamers build their engagement model around. I would urge you to reconsider leaving this in its ‘broken’ state until an alternative could be offered for this use case.

3 Likes

Please don’t remove NAMES (until /chatters is officially documented and supported)

It’s critical for my bot to accurately measure viewer engagement and reward loyalty points. My entire channel concept is built around viewers accruing loyalty currency to spend on voting for the next game I will play. I have a small community, and most of my viewers are loyal enough to stay in chat all the time. With this change, my bot won’t be able to know they have been there the entire time, so it will punish my most loyal lurking viewers. If some more-accurate replacement for NAMES can be rolled out, that would be acceptable, but please don’t remove it while there is no workaround for bots in place!

Please don’t! My loyalty points on my bot are also run by names. Can you find a workaround?

I would much rather see this left in its current state until a replacement can be offered that creators can merge to. Upright removing it doesn’t seem like a logical path.There’s thousands of bots dependant on NAMES and MODE. This will also punish lurkers and collapse a lot of communities.

I have created a bot according to the Twitch API documentation, which uses the NAMES capability and while I’m able to use the JOIN and PART messages to get a general idea on who is in my channel, the NAMES capability is essential if someone happens to be in my channel prior to my stream starting or if my bot crashes or needs to be restarted while I’m streaming. I would welcome a replacement for the NAMES capability in order to get a list of users in the channel.

Reddit thread on this issue:

https://old.reddit.com/r/Twitch/comments/gkeivk/twitch_is_planning_to_remove_irc_functionality/

Takeaway: Sunsetting NAMES should be fine for bots provided Twitch is able to document and officially support the /chatters endpoint before it is removed. Maybe this would work as a compromise?

2 Likes

I was going to avoid mentioning that endpoint as it’s undocumented and can be changed/removed without notice. But your request of making it supported is a good idea. - Maybe add it to helix?

2 Likes

Voted and commented, Thanks for the link.

Hi everyone, thank you for providing the above feedback and use case for the NAMES capability. We will eventually remove the NAMES functionality as planned due to its unreliability. However, given the usage discussed above, we will postpone the removal until there is a replacement, such as the Helix endpoint mentioned above.

At this time, we consider NAMES deprecated and would like to reiterate we do not intend to fix this capability. Docs will be updated accordingly. This post will be updated when a reliable alternative is available and a timeline has been set for a migration and shutdown of NAMES.

5 Likes