{"id":52148,"date":"2024-04-13T14:53:40","date_gmt":"2024-04-13T14:53:40","guid":{"rendered":"https:\/\/barrycarlyon.co.uk\/wordpress\/?p=52148"},"modified":"2025-02-02T12:44:18","modified_gmt":"2025-02-02T12:44:18","slug":"the-end-of-twitch-pubsub","status":"publish","type":"post","link":"https:\/\/barrycarlyon.co.uk\/wordpress\/2024\/04\/13\/the-end-of-twitch-pubsub\/","title":{"rendered":"The End of Twitch PubSub"},"content":{"rendered":"\n<p>Finally Twitch EventSub is at feature parity with third party supported\/documented PubSub, that the end of PubSub has been announced.<\/p>\n\n\n\n<p>In a <a href=\"https:\/\/discuss.dev.twitch.com\/t\/legacy-pubsub-deprecation-and-shutdown-timeline\/58043\">forum post over on Twitch Developers<\/a> it has been announced the schedule for the shutdown of Twitch PubSub for access by third party developers.<\/p>\n\n\n\n<p>The final death date is April 14th 2025.<\/p>\n\n\n\n<p>Which I guess means it&#8217;s time for me to complete my own migration from PubSub to EventSub. Which at least is JUST ABOUT planned&#8230;.<\/p>\n\n\n\n<p>At least for 90% of what I need it&#8217;s <em>ALL<\/em> USERNOTICE as an EventSub topic, which is this case is <a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelchatnotification\">channel.chat.notification<\/a> and then whatever I choose to go with for consuming cheering.<\/p>\n\n\n\n<p>So then for anything else I&#8217;ll need that doesn&#8217;t exist, either from it not existing in the first place OR a undocumented topic I might be using, off to <a href=\"https:\/\/twitch.uservoice.com\/forums\/310213-developers\">uservoice<\/a> I&#8217;ll go!<\/p>\n\n\n\n<p>Off hand I think there is only one thing but we&#8217;ll see when I work on and complete my migration! The only other barrier is gonna be authentication but I have authentication or can get it for everything I need.<\/p>\n\n\n\n<p>It is worth noting that Extension PubSub is unaffected, as that for the most part is a completely different system that just shares the same name.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Topic Migration notes<\/h2>\n\n\n\n<p>Edit: I guess I should add some notes about migration<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>PubSub<\/td><td>EventSub<\/td><\/tr><tr><td>channel-bits-events-v1.&lt;channel_id&gt;<\/td><td><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelcheer\">channel.cheer<\/a> or <a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelchatmessage\">channel.chat.message<\/a><\/td><\/tr><tr><td>channel-bits-events-v2.&lt;channel_id&gt;<\/td><td><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelcheer\">channel.cheer<\/a> or <a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelchatmessage\">channel.chat.message<\/a><\/td><\/tr><tr><td>channel-bits-badge-unlocks.&lt;channel_id&gt;<\/td><td><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelchatmessage\">channel.chat.message<\/a> &#8211; the <code>bits_badge_tier<\/code><\/td><\/tr><tr><td>channel-points-channel-v1.&lt;channel_id&gt;<\/td><td><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelchannel_points_custom_rewardadd\">channel.channel_points_custom_reward.add<\/a><br><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelchannel_points_automatic_reward_redemptionadd\">channel.channel_points_automatic_reward_redemption.add<\/a><\/td><\/tr><tr><td>channel-subscribe-events-v1.&lt;channel_id&gt;<\/td><td><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelchatnotification\">channel.chat.notification<\/a> is what I will use for my use case of overlay\/on stream alerts. Other type segregated topics exist<br><br>This topic also includes raids and a bunch of other event types<\/td><\/tr><tr><td>automod-queue.&lt;moderator_id&gt;.&lt;channel_id&gt;<\/td><td><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#automodmessagehold\">automod.message.hold<\/a> and <a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#automodmessageupdate\">automod.message.update<\/a><\/td><\/tr><tr><td>chat_moderator_actions.&lt;user_id&gt;.&lt;channel_id&gt;<\/td><td><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelmoderate\">channel.moderate<\/a><\/td><\/tr><tr><td>low-trust-users.&lt;channel_id&gt;.&lt;suspicious_user_id&gt;<\/td><td><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelsuspicious_userupdate\">channel.suspicious_user.update<\/a> and <a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelsuspicious_usermessage\">channel.suspicious_user.message<\/a><\/td><\/tr><tr><td>user-moderation-notifications.&lt;current_user_id&gt;.&lt;channel_id&gt;<\/td><td><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#channelchatuser_message_hold\">channel.chat.user_message_hold<\/a><\/td><\/tr><tr><td>whispers.&lt;user_id&gt;<\/td><td><a href=\"https:\/\/dev.twitch.tv\/docs\/eventsub\/eventsub-subscription-types\/#userwhispermessage\">user.whisper.message<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>This Post was updated on February 2nd for additional migration paths and adding a link to the new <a href=\"https:\/\/dev.twitch.tv\/docs\/pubsub\/migration\/\">PubSub Migration guide<\/a><\/p>\n\n\n\n<p>The <a href=\"https:\/\/discuss.dev.twitch.com\/t\/legacy-pubsub-deprecation-and-shutdown-timeline\/58043\">First shutdown window<\/a> is February 10th at 7pm UTC for an hour!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Finally Twitch EventSub is at feature parity with third party supported\/documented PubSub, that the end of PubSub has been announced. In a forum post over on Twitch Developers it has been announced the schedule for the shutdown of Twitch PubSub for access by third party developers. The final death date is April 14th 2025. Which &hellip; <a href=\"https:\/\/barrycarlyon.co.uk\/wordpress\/2024\/04\/13\/the-end-of-twitch-pubsub\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;The End of Twitch PubSub&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":52029,"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":[88,45,312],"tags":[82,391,313,326],"class_list":["post-52148","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-geekery","category-geekery","category-twitch","tag-code","tag-pubsub","tag-twitch","tag-work"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/barrycarlyon.co.uk\/wordpress\/wp-content\/uploads\/2021\/07\/twitchdevblog2.jpg?fit=1280%2C780&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/posts\/52148","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=52148"}],"version-history":[{"count":5,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/posts\/52148\/revisions"}],"predecessor-version":[{"id":52161,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/posts\/52148\/revisions\/52161"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/media\/52029"}],"wp:attachment":[{"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/media?parent=52148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/categories?post=52148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/barrycarlyon.co.uk\/wordpress\/wp-json\/wp\/v2\/tags?post=52148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}