Safe Badge

A browser extension that lets Twitch viewers know you've disabled Gen AI training on your stream.

Twitch has enabled Gen AI training on all accounts by default. Viewers have no way of disabling this on streams they're watching, so if a streamer has not turned this off, all chat messages may be used for AI training.

Safe Badge does two things. For streamers, it gives you a way of acknowledging that you've disabled Gen AI training. You can disable Training for Generative AI here:

Hover over this link to make sure it does go to Twitch. Internet safety is important.

Once you've done that, by clicking the following button and completing Twitch authentication, you acknowledge that you have disabled training.

Confirm Safe Badge

For viewers, the browser extension shows a badge beside every streamer who claims to have opted out of Gen AI training. This is done in two ways:

  1. A lookup is sent to the Safe Badge database, which returns true if they have authenticated using the button above.
  2. A lookup is sent to Twitch to retrieve the streamer's current tags. If any of them match one in the big list of recognized tags (see the bottom of the FAQ), then that is treated in the same manner.

Please keep in mind that Safe Badge operates on an honor system. Twitch offers no way of verifying this, so a streamer can lie about having opted out. It's not ideal, but this is the best we as a community can do.

Chrome Extension Firefox Addon

Frequently Asked Questions

Other browsers?

I'm hoping to publish the extension for other browsers like Edge and Opera soon! In the meantime, the Chrome version should work just fine in them as they are Chromium-based. Please be patient :c

What browser permissions does the extension need?

Since the extension needs to scan for streamer names and modify the page to add the badges, it requires what's called host permissions on twitch.tv and dashboard.twitch.tv. This is required to do this sort of thing -- see the Twitch pronouns extension for another example of this.

What permissions does this need to authenticate me?

None! Safe Badge requires no OAuth scopes.

It uses Twitch OAuth only to confirm your Twitch user ID and login. These are stored so that the browser extension can verify that the badge should be added beside your name. The temporary access token is revoked immediately after confirmation.

As a more technical answer, it used to require the openid OAuth scope. However, there is a longstanding bug in Twitch's OAuth display, where it would imply that I'm requesting your email address, profile picture, and a bunch of other stuff. None of this stuff was actually being requested, as the OAuth URL would need to include a claims parameter in order to explicitly request these (which it did not).

As a consequence, however, some people raised concerns about the apparent broad permissions being requested. So, I'm relying on undocumented Twitch OAuth behaviour that lets me omit the scope parameter entirely. Please be aware that this could stop working in the future, as it is not a documented feature of the API.

Can I see the source code?

Yeah! I've finally published it here on GitHub.

Yes, I know GitHub is questionable in terms of AI stuff, but this is where all of my projects are hosted. I might migrate away from GitHub eventually but it's currently more effort than I have time for, due to real life and adulting unfortunately being a thing.

I still don't trust this

That's okay! I've designed the browser extension to look for a bunch of common Twitch tags or stream title hashtags. As a streamer, if you just put one of these in your tags or title, the extension should pick up on that and display the badge for anyone who does use it. Some examples: