Steffest Digitale Pulptuur

Opening up Telenet Yelo: TV on your android

Part 2 in the Telenet Yelo series. (following this and this)

Update:
Due to a formal complaint from Telenet I have edited this post and removed all references to their internal API and closed down the demo program.



Telenet is working on an Android app for Yelo. Yes, but when will they release it, if ever?
Luckily, there's no need to wait.
As the Android platform get more and more mature, also the streaming video app gets better.
The HTTP Live streaming format that Apple invented and Yelo is using can now also be played on non iOS platforms like Android.
The only thing we need is the URL for the TV stream.
After some sniffing, here's a super easy way to get them.

the front door is located at *removed*

Where you replace *yourlogin* and *yourpass* with your telenet credentials.

You get a little XML in return stating something like

*removed*

That code in the response tag is your session ID.
You'll need that as the TV-streams are tied to your telenet account (you didn't think you're watching anonymous, did you?)

What TV channels are available is located at *removed* (it's an XML, so you might need to do a "view source" to see them)

Every channel has an ID.
e.g.

 *removed*



The livestream then is contructed as  *removed*

for the example above, that would be *removed*

That's it, nothing more to it.
if you copy that url into your browser on your iPhone or IPad it will play.

on Android 3.0, this should also work (theoretically, never tested it) but as most of us are on Android 2.2 or less, we need an extra tool.
Thankfully, BelgianWaves (who's also from Belgium, could you tell?) did the INCREDIBLE job of writing a http live stream player from scratch and released it as Mirage.
This has nothing to do with Yelo, it is a generic video player (and an Airvideo client, I might add - again: INCREDIBLE work by BelgianWaves) and it happens to play the yelo streams just fine.

Ok, this works, but copy/pasting urls and sessioncodes around is annoying and should be automated.
I wrote a little script that does exactly that: it takes your login and pass as input and returns a list of urls of all TV channels available.

The script is  *removed*. nothing fancy just a quick 1 file script.

As a demo - and for my own personal use - I wrapped in a little webfrontend at http://www.stef.be/projects/yelo/ (*offline*)

It works fine on any iOS device and on Android (with the help of Mirage)
Theoretically it might work on Safari on a recent (Snow Leopard) Mac, but that's untested.
In fact... I only tested it with my own login, but there's no reason it wouldn't work for all Telenet users.
One big note: the Yelo streams are tied to your IP address too and they only work when you're connected using a Telenet connection. It won't work on any other provider (yet ... but more on that another time)

Here are some screenshot from iOS
yelomob1 yelomob2  

And an Android device playing Yelo TV
yelomob3
yelomob4

Have fun with it, and - for peeps sake - DON'T go entering your Telenet credentials in any webform you see, if you have any doubt that this or this is not safe, get the url's manually as described above. (or write your own script of course)

Probably for their (future) Android Yelo App, Telenet is using a different video streaming technology but in my opinion, maybe they should reconsider that.
HTTP Live streaming is turning into a valid video streaming technique for multiple platforms.
Android 3 has native support for it and Mirage supports it to.
You should think that Telenet is happy with that development, no?
They already have a decent HTTP Live streaming backend in place, serving their iPhone and iPad users.
It would be common sense to use that same backend for other devices, right?


That's not what Telenet must be thinking. On the contrary: they contacted the Mirage author and specifically asked them to stay away from Yelo.
Argh ... instead of saving themselves lot's of time and effort, they bully a small developer to halt his activities.
Come on, Telenet: the internet is open by design: locking your web services to your apps and your network only doesn't work and will never work. Someone will ALWAYS find a way around it.
Do yourself a favour and license the Mirage technical core, wrap it into your Yelo service and release it as Android client:  it will be far far cheaper (and faster) than developing your own solution.


Anyway: now with Yelo usable on Android devices, the next step is to make it usable from anywhere, even outside the Telenet network.
More on that in part 3.
Enjoy!

PS. Why is this post in English? Darn, I have written too much code lately :-)

Tags: in English, Mobile, ScriptingGeef je reactie (213)