Wednesday, February 14, 2007

The future, already

So, Aufero is moving along and will sooner or later reach a version 1 status. But, to be totally honest I am working on a future version (two?) of Aufero as well. The reason for this is simple: I don't think it is feasable to make Aufero do what I really want it to do in a near future (no dates said).

Joost dot com
So what's in it for this future version then? In order to tell you that I'll have to give you a bit of history. Quite frankly I had my hopes up on a somewhat hyped project called "The Venice Project", later on renamed to "Joost" (www.joost.com). It has gotten a lot of good press/bloggage but I wonder how much of that is because Niklas Zennström and Janus Friis is behind it (the guys that founded Skype). What they're basically doing is P2P'd TV and the money will come from advertisement. Now, we all agree this is the way to go down the line (even if Bill Gates thinks so too), at least to some degree.

It describes itself like this:
... uses secure peer-to-peer technology to stream programmes to your computer. Unlike other TV and video-based web applications, it does not require users to download any files to their computers or browse through complicated websites.
The programmes you can watch are a predefined set by Joost.

I got curious since I was working on Aufero and signed up for alpha/beta to see what it was about. This was during fall/early winter 2006, I think. Some time later (January?) I got into the beta and the first impression is what one would expect from beta-software. I'm probably under some kind of NDA or whatever so I won't go into any details -- my point doesn't depend on that anyway. The underlying concept I like, you know, peer2peer media into your living room.

Why!
But why create a new platform? This breaks the entire deal for me. Completely. For something like Joost and it is not available for my platform of choice (eg VMC right now -- who knows tomorrow?) I want open API's. That is if I can't have open source. I want to be able to integrate the backend into my smooth looking start-menu in Vista Media Center.

So I started poking around a bit and realized there is GPL'd code in there (or was at least) which made me slightly excited. I figured the source must be available on the beta-site where you can download the client. Alas. But I won't hold that against them, it is a beta product. I know that the license is pretty unforgiving. And... maybe it was LGPL'd code.

I mailed Joost some time back asking about API's, I did not get a response. I can only assume that they intend to keep it closed and weed out the GPL'd code. Even though I can't for the life of me figure out why (well, I can... money). And to top that off; let's face it, if you are going to open your API's and hope on a developer community around the software, boy are you going to have to struggle if you want to compete with... say, a similar product written for Media Center. Microsoft may do a lot of bad things, but one thing they do know how to do is Development Tools and create an interest in their technologies.

Of course, developing the software and create a huge hype, then selling it to Microsoft could be an option. But all in all, I am not overwhelmed by the technology or the entire package. I'm all for making money, but you can make more money by doing things different.

There is some speculation and I hope I will be corrected. But this blog is not about Joost. Nor about media in general, this is first and last bloggage about Joost. On to what the blog IS about:


Aufero Next Generation
If you haven't guessed it yet, I want to see a p2p based streaming product on top of Aufero's V1's functionality. It was never a far-fetched scenario. Additionally it will also include meta data sharing (more below on that).

There are a few things that needs to be dealt with in order to apply directly on top of current media sharing. Packing with RAR would become a no-no, I am peering at QuickLZ for packing if anything. What encoding? Public or private tracker? Bandwidth for backup-seeding (this is where money rears its ugly head)? The best way to approach these questions would be to sit down with a bunch of clueful people that have an interest in creating an open platform for this, then push for de-facto. Maybe there is one that would fit like a glove -- point me to it!


Sharing Aufero Meta Data
But more within reach is the following, and this is where I am at: Sharing Data and Aufero Meta Data using BitTorrent (or other; should BT vanish in a poof of abuse -- unlikely).

This would include
  • Configuration and fine tuning; this is user-selected data: could be trackers, feeds, ...

  • Refined match-sets are shared; this would include torrent statistics and relation-kills, and similar, ... (A relation-kill is a match that is wrong)

  • Historical data from original sources (read: feeds, scrapes etc) is shared. Reasons for this to exist would be to get new users up to speed right away, since you have such a small dataset when you first start out. This also has the advantage that it will not put any load on other services out there. I picture monthly datasets and daily. The daily datasets would probably have a pretty short lifespan on a public tracker; this would create temporary gaps. In theory a user could rely on these datasets for all data-gathering. Disadvantage is delay in the information you get; but I imagine that it's quite irrelevant if you get information within the hour or within the day (in fact, I could argue that it's better to get it slightly late due to behaviour of torrent-swarms).

  • I'm not too interested in creating any kind of "social networking community" here; there are plenty of good sites for that already. So voting-and-chat-like functionality is not something I am too interested in. What I want is something that maintains itself just by users doing what users would normally do. So, scrap 'social' and make it 'networking community'.

  • It'd strive to be as anonymous as it can technically be.

This was quite the rant but I like the idea of a semi-dynamic data flow like this. There's really no way of knowing if this will work out, but damnit, I'd like it to.

Is there anything out there that relies on public peer-2-peer technology to share data and configurations? Anyone know? Anyone reading?


But first things first. Back to MCML for this author. I will revisit this topic.


Aufero, aufero.vmc@gmail.com

4 comments:

Anonymous said...

Good! Go for it! Dont touch my black army!

Aufero said...

I'm confused :)

Anonymous said...

Why is RAR a no no?

Aufero said...

You don't really need the frames ten minutes into future yet, but getting them doesn't hurt. You want those frames compressed. You also want to fetch frames out of panic because your stream is coming to a halt due to gaps in what you have recieved. RAR will have a hard time supporting this. If you can point me to sources saying that I am completely wrong, I welcome it. Streaming over a public torrent network is not easy to accomplish at all, and this is really just one of the tough questions.

Some would argue bittorrent+streaming existing content as is is impossible in reality. I would be inclined to agree; there would probably have to be an intermediate step where whatever is served on a tracker is fetched, transcoded and served as a stream. This would make it a hybrid (p2p-wise). That said, there is no need to develop this platform from scratch if all you want it P2P-streaming, there are many alternatives out there. Including PeerCast and FreeCast; integrating these into VMC could be a viable alternative.

As for the legal issues behind this, how to pay the content owners, I have no idea. That's why this is also a very hairy issue and it's hard to argue that there would actually even be a legal incentive to implement this as I presented it. But I do think YouTube et al are on the right track, just that we're not yet at quality where I am willing to put it on my 50":er in the livingroom.

Maybe I should have stated more clearly that P2P-streaming is not something I expect to see implemented in Aufero any time soon, rather I would love to see an open platform for this -- in VMC. Now that I look at the blog-entry I see that the only thing pointing in that direction is "...but more within reach is the following", I won't go in and do a post-edit to make it look "more distant" -- that's cheap. :-)

But the second part of sharing other data over P2P is very much intended in version two, or thereabout.