There’s a very good chance you’ve never used XBMC Profiles. Or you exclusively use them because you’ve got kids, and you’d like your kids to see a different library than the one you see. I’m going to call this the B&B* filter.

*Boobs and Bombs**

**Note: when searching for an image to attach to a story, make sure safe search is on before googling “bombs and boobs.”

I personally have never seen the need for profiles in a regular XBMC install until very recently. I don’t have kids, so I don’t need to filter out my B&B. In my world, profiles have only been useful for testing out scraper updates or messing around with test libraries and other Q/A activities.

Profiles – What are they, anyway?

XBMC ProfilesSimply put, a profile is the place where you stick most of your userdata. So if you have set up XBMC to look different with a special skin or if you’ve added video and music files to your library, that’s all stored in a profile. Most people don’t know or care about them, because one profile is all they need on their home HTPC.

The only time they’d be useful for the average user is if that user wanted to test out something or mess with a new library without screwing up their already perfect existing library. Or if the user had a roommate or significant other, and the two liked to keep their content separate. Or, as previously mentioned, for B&B filtering.

But now everything is changing, and it’s all due to the move to Android (and to some extent, the move to iOS) and the major shift to UPnP serving.

GSoC – The Great Catalyst and Related Improvements

GSOC 12 logoIn the past, instances of XBMC rarely communicated with each other unless a user had hacked together a mysql server, and those cases were few and far between.

Last summer, however, student dev alcoheca (Alasdair Campbell) substantially updated XBMC’s UPnP server as part of his GSoC project. Many of those features are now part of XBMC. While many features still need to be coded into XBMC 13 (for example, right now the server library doesn’t update when a show has been watched), the most important part, a fully visible UPnP served library, was already included in XBMC 12.

Now, as will be reported in the XBMC February Cycle announcement, dev elupus (Joakim) has added support for controlling external UPnP instances via UPnP. The upshot of this support is you can select a video on one XBMC device and make it play on another.

AirPlay without the Suck

Even an iPhone can make a great mini XBMC tablet.

Even an iPhone can make a great mini XBMC tablet.

Consider how awesome that is. Let’s say you’ve got your main HTPC in the living room. Now, you can watch a show on your XBMC tablet in the kitchen, stop the show, and then tell the very XBMC tablet you’ve been watching your show on to keep playing the show on your HTPC in the living room.

In time, your HTPC, acting as a UPnP server, will be able to serve the list to your tablet, and your tablet can then tell your HTPC (or any UPnP compatible device) to play a video from that list (or from your Youtube or Hulu addon or your tablet’s local library). And when it’s done, if it’s coming from your UPnP server, the show will be marked as watched on your entire network!

It’s basically Airplay without all the limitations that come from Apple and with all the benefits that come from having an awesome XBMC setup and a server.

 Bringing it Full Circle

Which brings us to Profiles. I don’t know about any of the other readers of this blog, but I am a major evangelist for XBMC among family and friends, which means I’ve set XBMC up for my mom, my sister, various friends, and I’m still working on figuring out a non-insane arrangement for my dad who lives out on a farm where there is no broadband.

Needless to say, as the resident tech troubleshooter for the family, I travel from house to house a lot, and I always bring with me various mobile devices, including my phone and my laptop. Whenever I can put together the money, I’ll no doubt also purchase a tablet.*

*I’d ask you to donate to the Get Nathan a Tablet fund, but the only donation links I’m hosting on this site are donation links for the XBMC Foundation. I have bigger priorities than getting Nathan a Tablet. c’est la vie. With that said, if there are any manufacturers out there who want to straight up give me a tablet, I’m not going to turn it down!

Anyway, in my house to house jaunts, I’ve discovered one thing: regardless of your mobile device, Profiles are fantastic, especially now that libraries can be shared throughout the house. Right now, I have XBMC on my laptop set to the My House profile. If I agree to babysit for my sister on Friday, I’ll bring my laptop* along and switch to the Sister’s House profile. Maybe over the weekend I’ll finally get the system totally worked out at my dad’s house. Then, I’ll switch to my Dad’s House profile. The options are only limited by the number of locations that you have to visit. You could even keep a tablet-only profile, specifically for watching local media on the tablet and pushing it to any house you like.

*Or generously donated tablet! Hint hint, hardware people!


Unfortunately, until UPnP serving is perfected and skins are designed to better take advantage of it, Profiles are merely a single piece in a larger puzzle. As well, the uses outlined here are really only a portion of the final plan for Profiles, as several devs have acknowledged that Profiles as they exist are missing numerous key features. Where Profiles head in the future (likely after 13 has been released), remains to be seen.

With that said, I highly recommend taking a look at one of the nightlies (or waiting for the February Cycle to end to take a look at the first monthly alpha). You can “play to” another device using XBMC right now. It’s surprisingly usable already, for being mere alpha code with hardly any UI code accompanying it. While it doesn’t support straight up screen-sharing, as Airplay Mirroring and Miracast promise to do, it goes a surprisingly long ways in turning an XBMC instance into a full remote control.

As always, the future looks bright.

This has been part of the XBMC Future Series, in which we look at code being worked on right now that has the potential to radically change XBMC. For other entries in the series, see The XBMC Mesh and An Xbox 1 Competitor.

One of the most exciting ideas put forth at this year’s devcon was a concept called the XBMC Mesh. It was a natural extension of Alcoheca’s GSoC project and is slated as a potential feature for the version of XBMC that comes after Frodo.*

*Somebody seriously needs to come up with a good ‘G’ name.

Today, we have software that works like XBMC, where there’s a database and a player all built together in one piece of software. We also have software like Plex, where the database has been pulled out and acts as a central server, and each instance of player software acts as a mindless drone being controlled by the all powerful server.

But what if there was a third way? What if a system were developed where each software instance was intelligent and could communicate with other software instances? For example, you set up XBMC for the first time on your tablet, then when you are done, you receive an Android set-top box in the mail with XBMC pre-installed; you plug that box in, and it announces itself on the network.

Mesh systems are pretty awesome.

Your XBMC tablet sees there is a new instance of XBMC on the network and asks you, “Would you like to add the set-top box to the mesh?” When you say yes, your XBMC tablet tells your XBMC set-top box where all of your shows/movies/pictures/music are and what addons you have installed. Rather than relying upon the tablet or other server for this information, the XBMC set-top learns where everything is located itself, so that it can always find it if the tablet has been turned off or taken out of the house.

Now, because these devices can intelligently communicate with one another, every single one of them can act as a remote control for one or all of the others. Your tablet can watch a show or tell your set-top to watch a show (along with play, pause, fast forward, record, etc.). You could theoretically start a whole-home audio session. You could, naturally, start watching a show in the living room, continue the show on your tablet in the bathroom, and finish the show in your bedroom.

And the crazy thing about this network is that it would be incredibly easy to set up. You tell one device where your content is, and all the rest of the devices know. You turn on your set-top for the first time, it sees the network, and it asks if you want to join. Heck, each device could even be smart enough* that if you, for example, took your tablet to your sister’s house, it could ask if you’d like to switch networks and keep a memory of multiple meshes.

*Eventually, of course, it would become so intelligent that it would decide to destroy all humans. Hopefully that won’t happen until we finally find out who the mother is on How I Met Your Mother.

An important aspect of this mesh system would be in playing nice with devices that exist outside the mesh. For example, the set-top box would likely need to interact with IR remotes and communicate with the CEC of your TV/receiver. Naturally, each device (particularly, each non-mobile device) would need to act as a uPnP server (given that most of the communication would be done via JSON and extended uPnP in the mesh in the first, this should be quite natural) for legacy devices that can only act as DLNA/uPnP clients. Given the cost-effectiveness of ARM hardware and (thanks to Sigma Designs) now MIPS hardware, it would arguably even be possible to set up an inexpensive router with headless XBMC software that not only acted as a mesh base, but also behaved like a simple router for the home network.

Of course, there are some challenges that would need to be ironed out with this idea. Would you still have to share your local content over something like SMB, or would you install XBMC on your local content server(s) and make it(them) act as uPnP servers for the mesh? Would it be better for there to be a shared database that each software instance latched onto while it was in the network, or would it be better for each instance to write to its own database? Or could you do both, so that the library immediately appears on your device via the shared database, but a redundant local database is written in the background while your CPU is idle or you are watching a movie or something? How would you deal with new binary addons like PVR backend addons that are entirely separate programs?  Would each device have to install the binary addon to be able to make use of it, or could you stream from the XBMC instance that has the PVR addon installed and simply communicate with that server via JSON? In fact, would it be possible to abstract out nearly everything to do with XBMC and connect it all together into this mesh, so that, in addition to the normal library, addon settings and other personalized aspects could be shared along the mesh.

Needless to say, something as massive as this idea isn’t going to happen over night. It might not happen at all. To put an idea as huge as this together would take a lot of smart people and a lot of man-hours. But my God, would it be awesome.

The Pivos XIOS DS – The revolution starts here

When XBMC shifted to Linux, OSX, and Windows, it took with it video playback, music playback, and pictures from the Xbox. And it left behind games and opening other applications. With the announcement of XBMC for Android, we finally get all that back again.

Let me back up a moment.

In all this excitement about XBMC for Android, I get the impression that most authors are pumped about the possibilities of XBMC on cheap devices, but are missing out on something much more fundamental.  XBMC can provide the best 10 foot user interface for Android… in the world.

Android UI Realities

To put it simply, Android sucks on anything that isn’t touch based. You are presented a huge list of items in a grid with maybe a few widgets littering the screen. You have to navigate using a mouse or some other alternative to  your finger. And from 10 feet away, you have to somehow see what all those app icons mean without any hope of en-biggening embiggening* them.

*Thanks to user gilles_duceppticon for providing the correct way to spell this made up word!

On top of that, the standard Android UI acts as if everything you might like to do in front of a TV on your couch is of equal importance. You don’t have quick access to a list of your TV shows or movies or TV guide. You don’t have easy access to your music catalog. It’s all just indistinguishable app after indistinguishable app. One of the great moves made by MS with the Windows Phone 7 was to present ACTIONS on the home screen, rather than apps. They called them tiles, but the idea was to let a user click on an action he wanted to perform, rather than clicking on the app he wanted to perform the action in.

It’s a minor distinction, but an important one to make, because that’s exactly how XBMC works. The XBMC home screen presents actions. We don’t ask, “Do you want to open DVDPlayer?” We ask, “Do you want to watch a movie or view live TV? Do you want to listen to music or view a slide show or open an application that doesn’t neatly fit into one of our built in Media Center categories*?”

*At this very moment, Jonathan Marshall is working on a new way to come up with new user created actions for the home screen called “nodes.” As of the May dev cycle, if you are handy with xml files, you can already create new nodes for your video files.  With luck, we should see this new power extended to home screen nodes in the next few months.

The XBMC Switcheroo

XBMC is simply 100% better at the 10-foot UI space than stock Android. So from a user perspective, wouldn’t it make sense if we could drop the Android UI altogether and replace it with the XBMC UI, the same way you could replace the default Xbox 1’s dashboard with XBMC? Of course it would. Which is why, on the Pivos XIOS DS at least, that’s exactly what you will be able to do. Continue reading