This Program is an alternative version of the Twitch Developer Rig.
Primarilly this works as a glorified Rest Client but handles the required JWT generation or App Access Token generation and maintance as needed.
Generally it should serve as a "test tool" and not used to manage a live extension, but you could, saves you writing your own Bits Product, or Extension Config Managment tool! If you do so it's at your own risk!
Check out more Screenshots
This is an Electron App, so it maybe installed from the GitHub releases tab.
The Windows Build is Code Signed with the Publisher Barry Carlyon
The Mac Builds are Code Signed with Apple Cerficates that identify Barry Carlyon
You can download the latest version, for Windows and Mac from here on GitHub under releases. These builds will self update
Or
This Mac App Store build will update from the App Store itself and may lag a little behind releases here.
Or
Install using winget
winget install BarryCarlyon.BarryCarlyonExtensionTools
You can use Windows "Add and Remove Programs" to uninstall the program.
And on mac just throw it in the trash! :-P
You may need to manually remove data stored in the data/config storage location below.
Your Extensions Client IDs and secrets are stored locally unencrypted in the file config.json
in the following location:
Windows:
%appdata%/BarryCarlyonTwitchExtensionTools/
Mac DMG/Manual install:
~/Library/Application Support/BarryCarlyonTwitchExtensionTools/
Mac App Store
~/Library/Containers/com.barrycarlyon.twitch-extension-tools/Data/Library/Application\ Support/BarryCarlyonTwitchExtensionTools/
In the file config.json
Which follows the format:
{
"extensions": {
...
"a_client_id": {
"name": "Your Entered Name",
"client_id": "",
"extension_secret": "base 64 encoded secret",
"user_id": "Twitch owner ID"
},
...
"a_client_id_with_secret": {
"name": "Your Entered Name",
"client_id": "",
"extension_secret": "base 64 encoded secret",
"client_secret": "a client API secret",
"user_id": "Twitch owner ID",
"access_token": "A recently generated App Access Token"
}
...
},
"active": {
"client_id": "Selected active Extension ClientID set to use",
"version": "Selected Version to talk to"
},
"window": {
"size": [ width, height ],
"position": [ x, y ]
}
}
⭐ Tip: If you open the Application and the window has gone missing, close the app, open config.json
for editing and completely reset "window"
to {}
and then reopen the app, it'll reset to default display, top left. The App does try to magically 0,0 the window if this happens but it might need a hand!
We will use the Get Extensions API to see which features are enabled for your selected version of your extension and block/allow access in the UI as needed. Don't forget to turn on/off features (such as the Config Service of Chat Service) you'll need to use the Developer Console to do so.
- Get Extension Configuration Segment
- Set Extension Configuration Segment
- Set Extension Required Configuration
- Send Extension PubSub Message
- Send Extension Chat Message
- Get Extensions
- Simulation of the Extension Details page for the selected version of an Extension
- Test different Versions of an Extension against the API.
If a Key Sets Extension API Client Secret is Provided, alllowing the generation of client credentials
- Convert UserName to UserID for various endpoints via Get Users
- Get Extension Bits Products
- Update Extension Bits Product
- Get Extension Transactions
Q. No matter what I do, it just claims authentication failed when trying to validate/refresh my Extension
A. Since the Extension API's mostly utilise a JWT, this program creates a JWT on the fly with only a 4 second expiration. So if your system clock is significantly out of date, this can generate an already expired JWT. So check your system clock is accurate.
Extension View simulation, this might get explored but it's not gonna be as effective as actually testing on the Twitch Website itself (when in localtest).
Whilst the Twitch Developer Rig is now marked as no longer supported, view testing in the Rig remains working, but you may need another tool to update any Rig manifests you have stored, you can check out the Twitch Developer Rig Manifester to provide manifest import and revision. This manifester tool might at somepoint get added to this tool.
- Uses Electron to provide as a Desktop App
- Uses Bootstrap for primary layout
- Uses GitHub for update delivery and code management (and mac app store for MAS builds)
- JWT tokens are generated inside the App via auth0/node-jsonwebtoken, as apposed to "ClientSide" like this example
- A number of sindresorhus Electron Modules.
Basically this app is a "save my Extension configs" Insomnia-esque Rest Client. That wraps the main Extension functions in a handy Application. With some extra features!
Insomnia is a Rest client. I have written a Plugin for Insomnia to aid with JWT generating inside Insomnia itself. You can find that here on Github
If you break your extension from using this tool it's your own fault and the author(s) accept no responsbility for problems caused to your extension from using this tool. Granted the worse thing you might do is deprecate a bits product you actually needed.....
This project is Licensed under Do What The F*ck You Want To Public License, so Just Do What the F*ck you want to!
This is an Electron Project
To run locally, after cloning, just
$ npm install
$ npn run start
Thank you for the help I want to give you beer/coffee money -> Check the Funding/Sponsor details