I've been using XBMC since back in the old day where you had to find a precompiled binary "somewhere else" for your XBOX classic.
With the release of Eden a lot of nice features have been added and my living room experience even better then before.
XBMC is truly a marvelous piece of engineering and all you developers, addon creators, skin designers, translators and supporters should be really proud of yourself.
Since I've been following this for a very long time (and even contributed now and then).
I have done a lot of thinking on how to make XBMC the ultimate media companion.
This is my list, it's long, it's somewhat far fetch and I'm totally aware that most of it would never been implemented. But you can dream eh ;D
Todays database schema is old and outdated. A lot of things have changed over the years.
- Drop RDMS and build a NoSQL database. The pros of making nsql database for XBMC are endless. Faster response times, seamless upscaling. No need to for static schemas. Addons can share infomation over the lan etc etc etc. I can go on for long time .
- Metadata should be stored in a flat state and predefined filters (and user custom made) creates an illusion of hierarchy in the frontend.
- Metadata should have recursive linking, A tv-show is a remake of a tv-show who is a spinoff from a tv-show who is based on a move that have a soundtrack and the movie is based of a audiobook and that book is based of a move etc etc.
- Headless server mode. All media and it's meta data should be managed from here.
- Distributed network of servers. Different backends can handle different stuff. Me my self want to seperate my media since various media groups (Tv series, Anime, Adult content etc) have different traditions on how to organize it's metadata. Prefable would be to have one of the servers to act as a controller node and add subnodes (other XBMC server) if they are avaible in Zeroconf-esc way. Is the subnode is powered of, all it’s content are seamless removed (aka adult content mode ).
The server should also be able to transmit some events over a WAN.
Ex: one of my clients is a production company and have servers and clients on different locations.
The controller nodes should have some way to communicate over WAN to tell each other that media has been changed/added.
- DLNA support. To stream from and to various devices and applications. As today the XBMC can select a source to stream from, the frontend should be able to selected a source to stream to. Airplay, DLNA etc.
- Realtime Transcoding. This is a feature i have missed for many years. With this the possibles are endless. Stream to android, make a pure webbased fronted in html etc etc.
- Homeautomation. The server should be able to handle the lights, coffemaker, lawnmover, heck, anything that speak one or more of the open HA protocols.
Addons gets more and more popular but I think they have the wrong focus today.
As an expample: I subscribe to alot(!) of youtube channels. I want the addons to be able to tell me when a new video is avaible just as XBMC is able to tell me today when a new episode/move has been added. And be implemented in a nice way to my library.
- Able to fork events and functions to the systems. the World of Warcraft Addons is a good example of how this could work.
- Script/programming-language independent.
- Store information in the backend database.
- Media content. Merged in to the Library and be able to send notifcations of new media added etc. It should use the similar flat state as the database and fork into it seamless. the XBMC fronted have no reason to know if it's a addon or localy stored data who is displayed/played.
Be able to fork and add functions to XBMC . The JSON-RPC should have some announce function to tell clients what kind of services are available.
With this in a far future there is alot of possibles; add console emulators right into to the library? just go a head.
- Media information
The scraper functions as of today works fine, however it would be nice to chain them and add functions or even link to other services. Ex: Scrape with IMDB, download images from The TVD and download subs from Opensubs etc, perhaps a service have forked the scraped complete event and announce the new data to you with a SMS.
As same is todays "Programs" but with the extended capabilities as stated before
- Talks to the backend either localy or over lan.
- XBMC theme http support. This is perhaps the most far out there idea but it would be truly awesome if the inbuilt web server could translate the current skin to an AJAX webpage solution.
- Continue play at.. be able to select send what you are currently looking at to another frontend. I have a couple of XBMC’s and it’s often that I’m watching something in the liviingroom and it’s getting late. To be able to send what I’m looking at and the time state to my bedroom would be nice.
- Flat library, Instead of today where you have a hardcoded hirarchy of media, Movies, TV-Shows, Addons, Pictures with subcategories (Actors, Years) etc it would be better to have predefined filters and be able to create your own. (Se the backend part)
- Content filtrering I’m a dude. I watch adult movies now and then. I’m also abit OCD about meta data. But having my adult content listen in my library when I’m having people over for a video night isn’t that appealing. Like modern browser who have a Incognito Mode (aka Porn mode) xbmc should have something similar a system for filtering by age-rating.
I hope you find some of my ideas interesting.