{"id":52137,"date":"2023-04-04T21:17:19","date_gmt":"2023-04-04T21:17:19","guid":{"rendered":"https:\/\/barrycarlyon.co.uk\/wordpress\/?p=52137"},"modified":"2023-04-04T21:21:48","modified_gmt":"2023-04-04T21:21:48","slug":"the-twitch-extensions-developer-rig-is-dead","status":"publish","type":"post","link":"https:\/\/barrycarlyon.co.uk\/wordpress\/2023\/04\/04\/the-twitch-extensions-developer-rig-is-dead\/","title":{"rendered":"The Twitch Extensions Developer Rig is Dead"},"content":{"rendered":"\n<p>Or is it?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Preamble<\/h2>\n\n\n\n<p>Twitch decided to deprecate the Extension Developer Rig, which is fine, just about everything that the rig could do is avialable via the API now. You can read about the Deprecation on the <a rel=\"noreferrer noopener\" href=\"https:\/\/discuss.dev.twitch.tv\/t\/end-of-support-for-the-twitch-developer-rig\/42995\/7\" data-type=\"URL\" data-id=\"https:\/\/discuss.dev.twitch.tv\/t\/end-of-support-for-the-twitch-developer-rig\/42995\/7\" target=\"_blank\">Developer Forums<\/a>.<\/p>\n\n\n\n<p>The final thing that was API enabled was bits product management, which for a while was rig only, but is now available in the API and more recently in the developer console, so if you don&#8217;t want to write or <a href=\"https:\/\/github.com\/barrycarlyon\/twitch_extension_tools\" target=\"_blank\" rel=\"noreferrer noopener\">use a tool<\/a>, you can use the <a href=\"https:\/\/dev.twitch.tv\/console\/extensions\" target=\"_blank\" rel=\"noreferrer noopener\">developer console<\/a> instead.<\/p>\n\n\n\n<p>You can read more about the Bits product management announcement over on the <a rel=\"noreferrer noopener\" href=\"https:\/\/discuss.dev.twitch.tv\/t\/bits-products-management-for-extensions-in-the-developer-console-is-now-available-in-open-beta\/42344\/\" data-type=\"URL\" data-id=\"https:\/\/discuss.dev.twitch.tv\/t\/bits-products-management-for-extensions-in-the-developer-console-is-now-available-in-open-beta\/42344\/\" target=\"_blank\">Twitch Developer Forums<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">So What Now?<\/h2>\n\n\n\n<p>For those working with Twitch Extensions, you can either write you own tools to talk to various things via the API, such as the <a rel=\"noreferrer noopener\" href=\"https:\/\/dev.twitch.tv\/docs\/api\/reference\/#get-extension-configuration-segment\" target=\"_blank\">Config service<\/a> or<a rel=\"noreferrer noopener\" href=\"https:\/\/dev.twitch.tv\/docs\/api\/reference\/#get-extension-bits-products\" target=\"_blank\"> Bits product management<\/a> or you can use a tool that someone else wrote such as my own <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/BarryCarlyon\/twitch_extension_tools\" target=\"_blank\">Twitch Extension Tools<\/a>. But that leaves out the one thing that the Rig can do but nothing else can, which is view testing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">View Testing<\/h2>\n\n\n\n<p>The optimal way, in my opinion, to do view testing is to get your Testing Base URI setup over SSL, either via using a real URL, or a reverse proxy tool such as NGROK.<\/p>\n\n\n\n<p>But there are times where you don&#8217;t want to do that or just want to quickly test a video or component slot extension without going live, which is where the Rig comes in, you can test those sort of extensions without going live, or even by putting the &#8220;wrong&#8221; channel behind you extension (listen to <a href=\"https:\/\/www.twitch.tv\/monstercat\" target=\"_blank\" rel=\"noreferrer noopener\">M<\/a><a rel=\"noreferrer noopener\" href=\"https:\/\/www.twitch.tv\/monstercat\" target=\"_blank\">onstercat<\/a> whilst working on your extension for example&#8230;.)<\/p>\n\n\n\n<p>The rig is still available for doing that sort of testing, but you may need to reimport\/reopen a project or refresh the projects manifest into the rig, or you have started a new Extension and need to test.<\/p>\n\n\n\n<p>That part of the rig is broken, you&#8217;ll hit the buttons and nothing will work as the API&#8217;s the Rig are trying to talk to just no longer work if they exist at all, to that end I devised a little tool to cover.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Manifester<\/h2>\n\n\n\n<p>Presenting the <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/BarryCarlyon\/twitch_developerrig_manifester\" data-type=\"URL\" data-id=\"https:\/\/github.com\/BarryCarlyon\/twitch_developerrig_manifester\" target=\"_blank\">Twitch DeveloperRig Manifester<\/a> (not affiliated with Twitch naturally).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/i0.wp.com\/barrycarlyon.co.uk\/wordpress\/wp-content\/uploads\/2023\/04\/image.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/barrycarlyon.co.uk\/wordpress\/wp-content\/uploads\/2023\/04\/image.png?resize=584%2C791&#038;ssl=1\" alt=\"\" class=\"wp-image-52138\" width=\"584\" height=\"791\" srcset=\"https:\/\/i0.wp.com\/barrycarlyon.co.uk\/wordpress\/wp-content\/uploads\/2023\/04\/image.png?w=584&amp;ssl=1 584w, https:\/\/i0.wp.com\/barrycarlyon.co.uk\/wordpress\/wp-content\/uploads\/2023\/04\/image.png?resize=221%2C300&amp;ssl=1 221w\" sizes=\"auto, (max-width: 584px) 85vw, 584px\" \/><\/a><figcaption>A Screenshot of the Manifester. It&#8217;s ok the userID is mine I can leak my ID all I want mom!<\/figcaption><\/figure>\n\n\n\n<p>Which provides the following tools:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Import a Project<\/strong>, generate a new project file from an Extension and add it to the Developer Rig<\/li><li><strong>Refresh Manifest<\/strong>, update an existing project file or change the active version,<\/li><li><strong>Reopen Project<\/strong>, when you import an extension into the rig it generates a project file saving with it the views you made, you can then close the project in the rig, this file tool lets you reopen that project file and add it back to the rig.<\/li><\/ul>\n\n\n\n<p>Thats the three main things &#8220;broken&#8221; in the rig that can be replaced.<\/p>\n\n\n\n<p>The other thing missing is &#8220;create a new extension and add it to the rig&#8221;, for that you need to use the <a rel=\"noreferrer noopener\" href=\"https:\/\/dev.twitch.tv\/console\/extensions\" target=\"_blank\">developer console<\/a> and then import to the rig via the Manifester.<\/p>\n\n\n\n<p>Just remember to close the developer rig <em>first<\/em> before trying to use the manifester to do actions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Notes<\/h2>\n\n\n\n<p>It&#8217;s a quick and simple Electron app licensed under <a rel=\"noreferrer noopener\" href=\"http:\/\/www.wtfpl.net\/\" target=\"_blank\">WTFPL<\/a> so go wild!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>So, for helping with your Twitch Extension Development either:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>write you own tools to interact with the API<\/li><li>use the <a rel=\"noreferrer noopener\" href=\"https:\/\/dev.twitch.tv\/console\/extensions\" target=\"_blank\">Developer Console<\/a> for bits product management<\/li><li>use a tool such my <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/barrycarlyon\/twitch_extension_tools\" target=\"_blank\">Twitch Extension Tools<\/a> to talk to the various Extension related APIs<\/li><li>the <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/BarryCarlyon\/twitch_developerrig_manifester\" target=\"_blank\">Developer Rig Manifester<\/a> to continue testing in the rig<\/li><li>test your extensions on the Twitch website with the testing base URI behind SSL (and don&#8217;t forget to have it in a subfolder to model hosted test and above best)<\/li><li>or any combination of the above<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Or is it? Preamble Twitch decided to deprecate the Extension Developer Rig, which is fine, just about everything that the rig could do is avialable via the API now. You can read about the Deprecation on the Developer Forums. The final thing that was API enabled was bits product management, which for a while was &hellip; <a href=\"https:\/\/barrycarlyon.co.uk\/wordpress\/2023\/04\/04\/the-twitch-extensions-developer-rig-is-dead\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;The Twitch Extensions Developer Rig is Dead&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[244,351,312],"tags":[389,352,390,313,354],"class_list":["post-52137","post","type-post","status-publish","format-standard","hentry","category-applications","category-extensions","category-twitch","tag-extension-development","tag-extensions","tag-tools","tag-twitch","tag-twitch-extensions"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/posts\/52137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/comments?post=52137"}],"version-history":[{"count":7,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/posts\/52137\/revisions"}],"predecessor-version":[{"id":52145,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/posts\/52137\/revisions\/52145"}],"wp:attachment":[{"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/media?parent=52137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/categories?post=52137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/tags?post=52137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}