Steffest Digitale Pulptuur

Reacties
Interessante uitleg en demo :)
Even kijken of dit ook eenvoudig om te zetten is in een XBMC plugin.
Mntz - 19/04/2011 15:29:07 http://vinci.tera-source.com


Hehe, nice job!
Filip - 19/04/2011 15:32:28

Op je demo krijg ik het niet afgespeeld met zowel mirage als vplayer. als ik op eigen server probeer dan krijg ik als output een test bestand te zien. Ik draai MIUI ROM 2.3 Gingerbread
Andy - 19/04/2011 19:07:05

Hoi Andy,
1: Wat bedoel je met test bestand? Is dat die test-video die als preset in Mirage zit?
Als je die 2 verwijderd uit de history list en opnieuw probeert, nog steeds niets?

2: je zit toch op een telenet verbinding, right? niet via je 3G of zo.

3: Vplayer crashed inderdaad meer dan dat ie iets afspeelt. Die referentie kan ik best verwijderen.


Steffest - 19/04/2011 19:26:40

Waarom zo omslachtig? Ik kijk op mijn Samsung Galaxy S TV via Yelo gewoon in de browser zoals ik op de computer doe. Is misschien niet de meest elegante manier maar werkt wel. :)
Stijn - 19/04/2011 19:28:32

patched? ik krijg een 403 forbidden als ik de authentication url ingeef.
Doublechecked by loging into yello.be en daar is mijn login correct. :-(
patched? - 19/04/2011 19:33:35

Was een typfout, bedoelde text ipv test. Ik zit wel degelijk op telenet verbinding. Op eigen server parse ik via simplexml in PHP. Ik krijg de session id en in een foreach loop maak ik dan de url structuur aan van ieder beschikbaar kanaal.
Andy - 19/04/2011 19:48:18

@Stijn omdat 1: die telenet flash player nog niet beschikbaar is voor iedereen (nog een beperkte testgroep) en 2: die flash player op mijn HTC Desire een framerate van 2 frames per seconde heet of zo. de m3u8 stream afspelen werkt veel beter op mijn toestel.
Steffest - 19/04/2011 20:05:36

@patched ja, was ik nog vergeten te vermelden: je moet de useragent van je browser op "TelenetYelo/1.0.1 CFNetwork/485.10.2 Darwin/10.3.1" zetten, bijvoorbeeld met met firefox via https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/
Steffest - 19/04/2011 20:07:52

@Andy ah, dan zit je op het goed: dat m3u8 bestand is een text-based playlist bestand. Die "playlist" kan worden afgespeeld door iOS en Mirage
Steffest - 19/04/2011 20:09:49

@Steffest dat is nu net het probleem. Op m'n android krijg ik dat tekstbestand in de browser te zien ipv de koppeling naar bv. vplayer of mirage. Getest in de standaardbrowser als Mirenbrowser
Andy - 19/04/2011 20:20:46

@Andy aha. Telenet geeft dat m3u8 bestand inderdaad met een "Content-Type:text/plain;" terug waardoor je dat als text ziet. (en wat volgens mij niet correct is)
In mijn code sla ik die tekst zelf op mijn server op, en serveer het terug maar dan met een "audio/x-mpegurl" mime-type. Dan krijg je dat als download aangeboden en kun je kiezen hoe je dat opent.
Dat opslaan zal niet eens nodig zijn, je zal het ook rechtstreeks naar je browser kunnen sturen met de juiste mime-type
Steffest - 19/04/2011 20:31:53

@Steffest thx :) had ik zelf nog niet bij stilgestaan. Ellendige MIME-Types :D
Andy - 19/04/2011 20:41:44

Dus als ge de user agent instelt op telenet in firefox, en het juiste http adres ingeeft volgens bovenstaande stappen, krijg ik 3 ext-x tekst lijnen in mijn browser, enig idee wat ik juist fout doe? Dankuwel :)
Tom - 19/04/2011 22:58:37

@tom: je doet niets fout.
Dat is de m3u8 playlist die je kunt afspelen met een http live stream player.
Als je die url op bv een iPad in je browser plakt, zal de video gaan spelen.
Als je die in een html5 video tag zet, speelt ie ook (op Apple)
Steffest - 19/04/2011 23:23:18

@Steffest: bedankt voor de snelle reactie, is het ook mogelijk om die op een gewone pc af te spelen (of via VLC player)? Alvast bedankt!
Tom - 19/04/2011 23:35:56

@tom niet dat ik heb gevonden. Maar vroeg of laat schrijft er iemand wel een http live streaming client.
VLC heeft er experimentele ondersteuning voor, maar werkt niet met de yelo streams.
Op pc kun je wellicht ook beter de officiƫle yelo-voor-pc flash player gebruiken op yelo.be (als je al in hun beta programma zit)
Steffest - 19/04/2011 23:45:09

@Steffest ok heb me ervoor opgegeven, is misschien gemakkelijker :) merci
Tom - 19/04/2011 23:50:58

@Steffest : You've acted like a true Belgian - not interested in fighting for your rights.

Belgians are incredibly smart, creative and inventive. I just wish there were more people with balls - that stand up to injustice and corporate greed...
Jonas Olsson - 20/04/2011 19:58:50

@jonas It's my experience that Belgians are creative and inventive enough to not create a big fuzz of everything and just do what they want to do below the radar. Indeed: that's smart: why fight if you just can duck and move on?
Steffest - 21/04/2011 15:00:35


- 26/06/2011 19:24:39


Commentaar toevoegen
Je reactie
Je naam
Url
Antispam
Om zeker te zijn dat je geen Spam-robot bent, moet je even de volgende vraag beantwoorden:
Wat is het kleinst? Olifant, mens, kip, konijn, mier

Geef je commentaar op:
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 :-)