[8WR] XenRio (Streams) PRO

[8WR] XenRio (Streams) PRO 1.2.6b

No permission to buy ($40.00)
  • Added support for Azubu scraping!
There is a significant caveat with Azubu scraping! For some reason, their API is case sensitive. If you submit the following channel to your channels list, it will work perfectly fine:


However, if you submit the channel as follows, it will NOT work:


I have contacted the devs of Azubu and informed them of this issue, but who knows how long it will be before they can fix the issue. In addition to this, Azubu does not currently support JSONP; which means there is no live updating of stream information (such as game/status/viewers data).​
  • BUG FIX: fixed a bug with YouTube scraping.
  • The "Mysqli : Incorrect string value" bug which I addressed in a FAQ entry has been fixed. You will no longer be required to convert tables to utf8mb4 and make file edits to Application.php. I have done some research and found a way to address this issue without any work from you guys! This update will revert any changes you've made to your database in regards to this issue, but it will not revert any changes to Application.php.
  • Added an AdminCP option to display offline approved channels. The channel offline image will not display properly until the next time that channel gets scraped. You can either wait till that time, or you can choose to force rescrapes of your approved channels.
  • The channel rescrape time has been lowered to every 7 days, instead of 28 days.
  • The Hitbox.TV service can now be scraped using the game restriction.
  • The top stream on the tile view will now only be embedded on page one of the list.
Likes: Neal
  • Well after a YEAR (#289), Twitch finally fixed the autoplay bug with their new fourth generation embed code. Sad that it took a year to get this basic fix implemented; especially on a feature that existed in the first generation embed code. Sadly, still doesn't support SSL.
  • With the new working autoplay codes, I have implemented an autoplay=false system for bbcode embeds. If you view a stream in the stream browser area, it will start autoplaying (if the service supports it). If you are viewing the stream as a bbcode embedded in a post, it will now not autoplay (if the service supports it).
  • The Twitch player now uses their new fourth generation embed code, as their third generation embed code has reached end of life.
  • YouTube scraping now displays what game a streamer is playing. Keep in mind that these results can often be inaccurate because YouTube's API is terrible and uses Freebase, which is often wrong.
  • YouTube embed codes now include an embed for their popout chat room! Sadly, the chat doesn't actually work yet because YouTube has the X-Frame-Options set to "SAMEORIGIN". The moment they change it, it should begin working though.
  • Added External-Chat support for SiropuChat.
Another update for YouTube Data API changes.
  • The EWRrio_Channel template has been replaced with EWRrio_Stream. The new stream page better handles secondary data, which is required for some services, such as YouTube and uStream.
  • When viewing a channel page (rather than a stream page), if the last channel scrape was over 28 days ago, it will rescrape the channel.
  • The URLs and handling of "Popout" pages has been restructured to be more in line with the URL changes implemented in 1.1.3.
  • You can now submit YouTube videos directly, and the system will automatically parse the relevant channel information.
  • The YouTube channel URL link will now link directly back to the channel, instead of the specific video embedded within the stream.
  • Changed the way the bbcode work for YouTube. Since YouTube does not have a universal channel embed code, the bbcode embeds the specific video for the stream.
Likes: Neal
  • Added version checking to javascript calls to eliminate errors related to outdated cached javascript files.
  • Greatly expanded YouTube support as a streaming service. Please be aware of several caveats first.
    • YouTube's API requires an API key. You can get one here. Make sure the YouTube Data API is enabled, and get yourself a server API key. If you use XenMedio, you may use the same key you use there.
    • YouTube's API does NOT expose what game a channel is streaming... so there is no way for us to fetch this information. Because of this, the scrape for approved YouTube channels will simply IGNORE the game check.
    • YouTube channel IDs and video IDs are different; so the channel link in XenRio will auto-forward to the stream link when the stream goes live. However, sometimes BBcodes will be finicky.
    • Javascript live scraping for YouTube is not done with pure javascript, but through AJAX. This is required in order to keep your API keys secure.
Likes: Neal
This is a HOTFIX. If you are already running 1.1.3, you do not need to run any upgrade scripts. Just update the files.
  • With last night's Twitch service update, they broke something...
Previously, we had been using the "Prevent Embedding" privacy flag to hide streams from the live stream list. If a stream owner decided they didn't want their streams to be listed in scrapers such as XenRio, they would only need to enable the "Prevent Embedding" privacy flag from twitch, and then they would be excluded from the lists.

However, I had been complaining to Twitch for TWO YEARS about the problems with this function. While a broadcaster could enable the privacy flag, it didn't actually do anything. People could enable the privacy flag, but it didn't actually prevent anyone from embedding their streams. We respected the flag anyways however, because... you know... privacy.

However, as of last night... instead of fixing the issue; they simply deleted it. The prevent embedding flag is no longer returned on any stream scrapes by the Twitch API. ******** Twitch. I've had issues reported to them that go unfixed for years, that they sweep under the rug. I hate Twitch. Hitbox is so much better. I hope YouTube Gaming eats their lunch.
Likes: Neal
Firstly, the URLs of all streams have changed. In the past, it was "streams/stream_val1.service_id/stream". This used the XenForo Route Linker system. The downside of this, is if you didn't have friendly URLs enabled, the stream_val1 field would be empty and the link wouldn't work. In addition, it precluded functions with services that require stream_val2 to function, such as Ustream and GoodGame.Ru. In the next version, the url will change to "streams/service_id.stream_val1{.stream_val2}/stream". This will fix both issues in that its also not using the XenForo Route Linker, but instead a template helper.

The other change is... if you had a stream, and it matched a channel... the stream link would automatically redirect to the channel URL. This has been changed. Now the reverse happens. Stream links will remain as the end-point. You can still go to channel URLs as well. However, if a channel is currently live, it will redirect to the STREAM url. So basically its a reverse process. This creates more uniformity as previously some streams would link to /channel and others would link to /stream. Now everything just links to /stream.

The change with distinction in /stream and /channel was a necessity for YouTube support. YouTube does not link live broadcasts to channels; live broadcasts are something of their own thing, but with a controlling user/channel. In addition, channels can have more than one live broadcast at a time, so it would have been impossible to know which to embed. YouTube support fetches all the currently live streams on a channel, not just the first. Channel redirects however, redirect to the first live stream it finds.
  • Services have a new field for API KEYS... this means the system can now handle services require an API login. This was mainly put in for YouTube, but it also means it greatly expands the amount of services which can be supported by XenRio.
  • Added support for YOUTUBE! Unfortunately, the new version of their API requires a server application API Key. These keys are FREE, but are not included in XenRio; you must get your own from here. As be informed that the YouTube API does not expose how many people are actually watching a live stream; so it will always say "0" or "???".
  • The Ustream service codes now support vanity URLs, as well as the channel URLs! The system will now automatically differentiate between the two and get the correct channel IDs.
  • Updated the Beam.Pro codes so that it ignores offline streams.
  • BUG FIX: fixes the broken draggable multi stream layout that broke in a more recent jquery update.
Likes: Neal
  • Fixed the embed codes for Beam.Pro. They changed their embed codes a few hours after the last update.
  • Fixed the embed codes for GoodGame.RU. GGRU embeds do not work right now with the multi-views.
  • Changed some small formatting designs to make things look a bit nicer.
  • Running this update will clear your current list of live streams.
This update fundamentally changes the way a lot of scraping is done in order to add the ability to scrape for specific games individually. Please read the patch notes to understand the changes, and why things have changed.

In previous versions, there wasn't actually a way to scrape for individual games. The system actually "cheated" to get it done. What we did was do a simple full scrape, then tossed out streams not playing approved games. The problem with this was the full scrape only fetched the top 1000 streams, and with popular services like Twitch, there was a high chance that a lot of streams were being left off the list because they weren't in the top 1000.

So this new version adds in queries to fetch streams based on what game they are playing, instead of doing a full scrape and tossing. Unfortunately, not every service supports the ability to do a games scrape. To make things a bit easier to understand, I have made this chart:


This chart defines which service can scrape which kind of data. As you can see, every service supports channel scraping. With this new version, there is a new scrape restriction called "Channels OR Games". With this new addition, there are now 5 scrape restriction options:
  • No Restrictions - this is the "full scrape" option. This option will scrape the top 1000 live streams on a supported service. Only 4 services currently support this option.
  • Channels - this is the "channels" option. This option will scrape for only approved channels for each service.
  • Games - this is the "games" option. This option will scrape for any live streams playing approved games on a supported service. Only 3 services currently support this option.
  • Channels OR Games - this is a combination of "channels" and "games". This will scrape for approved channels regardless of what game they are playing... and then it will also scrape for any live streams playing approved games, even if they are not approved channels. This is basically the best of both worlds option as it will work with all services, while simply bypassing the second step for services that don't support the games scraping.
  • Channels AND Games - this is a "channels" option. This will scrape for approved channels, and then if it finds that the channel isn't playing an approved game, it will throw the channel out of the listing. This option is independent of the games restriction and will work with every service, even those that don't have games scraping.
With these new options, please review your settings and make sure they are accurate to your preferences. Also note that games scraping adds an extra cURL operation for each game in your approved games list. So as your games list increases, your cURL rate increases. If your cURL rate gets too high, you may end up getting rate limited.

  • Expanded the options for the bubble count on the navbar which shows the number of live streams. You can now set it to show the number of featured streams only.
  • Added support for Beam.Pro as a streaming service! This stream service seems to be growing in popularity in the Minecraft community.
  • Added support for GoodGame.Ru as a streaming service! I've gotten a few requests asking for this service; so now its in. Keep in mind that only actual GG streams will be accepted; if the stream is just a proxy for a twitch stream it will be rejected.
  • Added support for Dailymotion's new gaming subdomain.
  • Added support for Dailymotion's new live chat rooms!
  • The "side-by-side", "small" and "medium" buttons on a viewing stream/channel view page are now tied to cookies! This means that the user's preferences will be saved and each stream they view will follow the same default layout.
  • Added simple "Who's Online" location support. Now XenForo will be able to display where a user is within XenRio, instead of showing "Viewing unknown page".
  • The tiled view of the stream directory is now more responsive.
  • The sidebar in the stream/channel view page has been redone to look more like a standard XenForo sidebar.
  • BUG FIX: fixed a bug where scraping will fail with an error if a ustream channel was not found.
Likes: Neal