[8WR] XenRio (Streams) PRO

Unmaintained [8WR] XenRio (Streams) PRO 1.2.6b

No permission to buy ($40.00)
This hotfix is for a "seek" error if you are running "No Restrictions" with Twitch.
This also fixes an error related to MySQL and "PLAYER UNKNOWN'S BATTLEGROUNDS".

Twitch has once again, deprecated their API. They have just released their v6 API, and because of that, they are now sun-setting their old v5 API. Because they release a new API every year, we should all be used to dealing with this by now. Thankfully, you don't need to resubmit your channels this time, as I've implemented some silent on-boarding methods into previous versions of the addon which automatically prepped channels for this update.

However, I was not able to do such a thing with the games database. With the v6 API, you are no longer able to scrape the Twitch API based on the name of the game they are playing; instead it must be scraped using game IDs; similar to how it already works with Mixer. Because of this, you will need to update all your game spellings for Twitch with their game IDs, instead of game names. If you do not do this, and you use a "Games" scrape restriction; you won't find any live streams.

So now you may be asking, "Where do I find game IDs?"

Well that's the best part! Head to your approved games list, and click the edit wrench next to each game. On the edit screen, for Twitch (and Mixer/Smashcast), simply type the name of the game in the associated field and click submit. The system will automatically attempt to find the correct spelling in the Twitch database and replace the game name with the correct game ID. If it can't find the game, it will return an error.
BEFORE uploading and installing this update, please DELETE the contents of /library/EWRrio/Services from your XenForo directory. If you don't do this, you WILL get errors. If you fail to do this, the easiest solution to fix it is to completely uninstall and re-install the addon.
  • Azubu, Beam.Pro and Hitbox.TV no longer exist!
  • Azubu and Hitbox have merged together to become Streamcast... as such Azubu channels will no longer function and it is recommended you disable this service. Hitbox has been renamed to Streamcast. Right now Streamcast is using the Hitbox API, but who knows when things will change with the inclusion of Azubu. URLs and scraping have been updated with the Streamcast endpoints, but be on the lookout for future updates if needed.
  • Beam.Pro is now Mixer (awful name). With Microsoft buying Beam.Pro and pushing it hard on the Xbone, its becoming a lot more popular. URLs and scraping have been updated with the Mixer endpoints, but be on the lookout for future updates if needed.
  • The default stream layout option in the admin CP has a new option called "REDIRECT". If selected, clicking on a channel/stream link will now forward the user to the stream URL outside of your forum, instead of keeping people within the forum. A lot of people like this, and my members, which have been using this for the past few months think its a lot better.
  • Preliminary support for Picarto has been added. Picarto doesn't have embedding options, so the only stream layout available to the service is redirection.
  • Like
Reactions: Neal
This update removes the "Games" restriction from YouTube. As of last week, YouTube has completely removed the granular freebase topic ID system from their API. Because of this, you can no longer search the API based on what game a streamer is playing.
This update also fixes the white chat boxes with YouTube if you run the upgrade script.
  • Like
Reactions: Luke F
  • Channel rescraping is now DAILY, instead of weekly.
  • The streams database now contains a "start" value; which stores when a stream first gets detected as coming online. This data really isn't used for anything in XenRio; but I'm using it for addons which extend XenRio, such as my Discord Integration.
  • Like
Reactions: Neal
You will need to re-submit your TWITCH channels after this update.
  • Twitch announced last month that their current API (v3) will be deprecated in February. With that announcement came a new API (v5). With this new API, channels can no longer be scraped with the channel name (ie: 8wayrun); instead, channels will only be scraped from channel IDs (ie: 5521605). Because of this, all your current twitch channels will need to be re-submitted in order to fetch the previously useless cryptic data of that channel's ID.
Sucks. I've always through one of the great things about the Twitch's API was not having to deal with cryptic data such as IDs (such as YouTube or Ustream). IDs aren't used anywhere on Twitch; but now we gotta parse based on that data? Meh...
  • Added rudimentary support for FC2Live streaming. Embedded chat rooms are not yet available.
  • From now on, all services will be marked as DISABLED when installing this addon. Administrators now must make a conscious effort to enable the services they want to use; rather than disable the services they don't want to use.
  • Made an alteration to how Twitch's AJAX scraping as handled so that streams don't immediately show up as "OFFLINE" after viewing them. Their API changes are being a pain in the ass to work with.
  • Switched over to Hitbox TV's new HTTPS API.
  • Added some avatar fallbacks for Stream.Me.
  • Made a few changes to the way YouTube handles streams that have 0 viewers. Still not perfect, as YouTube's API doesn't distinguish between streams that have 0 viewers and streams that are offline... so I'm doing what I can.
  • BUG FIX: Fixed a bug with game data getting lost when trying to update a game.
  • BUG FIX: Fixed a bug where a YouTube channel with two streams active would only have one of the streams listed.
  • NOTICE: Planned support for StreamUp has been dropped as it appears their platform is now dead.
  • Like
Reactions: THLove
This is a HOTFIX. If you already have 1.2.1, you do not need to run the upgrade script.
  • Fixed an issue with changes to game categories not saving.
  • Fixed an issue where YouTube streams were not being labelled as "featured" when the parent channel was marked as such.
  • Like
Reactions: Neal
There was an error with the install file for 1.2.0... 1.2.1 fixes it.

This is a significant and important update!
Please read all the patch notes before you install this update!

  • The way additional "spellings" of categories/games has changed!
The previous approach was more of a "buckshot" approach where every service was pinged with every different spelling of a game, even if the spellings were not relevant for certain services. The new approach instead has spellings defined for each service individually. Because of this, you will need to setup your spellings again to match the new system.

This new method was implemented because it will greatly reduce the number of cURL operations required for this addon. Let me show an example of how it works with the game "Final Fantasy XV". Depending on which service you ping, the spelling of this game could be different... for instance (these are examples, not necessarily correct)​
  • Final Fantasy XV (Twitch)
  • Final Fantasy 15 (Hitbox)
  • /m/08cmr6 (YouTube)
  • 18752923 (Beam)
  • final-fantasy-xv (Azubu)
With the old system, every service would be pinged with all 5 spellings. So if you have 5 services enabled, thats 25 cURL operations. With the new system, each service will only be pinged with spellings matching their service... reducing it to only 5 pings.

Naturally, because of this new system, it takes a small bit more setup on your part... but its much better for performance in the long run. Below is an example of what my setup would be for the game "Overwatch":

  • With the above changes to how the spelling system works, you can now fetch YouTube live streams using the "Games" restrictions. YouTube uses the "freebase" ID system, rather than the actual name of the games, so the spelling would have to match that.

    For those curious on how to get the Google "freebase" ID of a topic (such as Overwatch), you would simply need to go to the following URL (with your API_KEY for YouTube):


    Also keep in mind that the freebase system is deprecated from Google, even though its what YouTube still uses. Because of this, it can sometimes be a bit finicky and inaccurate.

  • You can now fetch BeamPro live streams using the "Games" restriction.

  • Updated all API calls to prepare for the new Twitch API changes coming on August 8. In the future, an API key (Client-ID) will be required to fetch details from the Twitch API. You can read about it here. If you use my Twitch Subscribers addon, you just use that Client-ID as your API key.

  • There is now a stream listing page for each service, which you can access from the admin services menu.

  • BUG FIX: Dailymotion chat rooms now works again.
  • Like
Reactions: Neal
This update contains an XSS security fix! Please upgrade ASAP!
  • Added support for Stream.Me as a streaming service.
  • YouTube Live Streaming now has a chat system!
  • The multi-viewer system has been COMPLETELY redesigned! Its now much easier to use and you'll find its probably the best multi-viewer system on the net now! (especially since it supports more than 1 streaming service)
  • Changed event listeners from switch-case statements, to XenForo's event hint system. This should provide a marginal boost to performance with larger forums.
  • BUG FIX: closed an XSS security hole.
  • Like
Reactions: Neal and THLove