Tja ... het staat niet echt expliciet op hun gebruiksvoorwaarden op http://www.tv.be/privacy maar het zal inderdaad niet helemaal hun bedoeling zijn dat de site zo gebruikt wordt.
Och ja: 't is een meerwaarde voor hun product hé ;-)
Zeer leuk, telenet zou een officieel (open) API moeten maken!
De grootste inbreuk hier is waarschijnlijk het "leegroven" van hun databank. (tip: lees eens iets over de wet databanken van 31 aug. 1998)
Ze vermelden het zelfs expliciet:
"De site is tevens een databank beschermd door het auteursrecht en de wetgeving inzake de bescherming van databanken. Het is verboden zonder voorafgaand schriftelijk akkoord van Telenet de op en via deze website aangeboden informatie geheel of gedeeltelijk op te slaan (anders dan noodzakelijk om de website te kunnen bekijken), te reproduceren, te wijzigen, openbaar te maken, te distribueren of te verzenden, te verkopen of anderszins over te dragen of enige rechten hierop te verlenen aan derden."
Ik sta volledig achter dit initiatief, maar pas toch maar op :)
Bravo, sir. +2 internets to you!
Straks eens testen op Symbian...
Standaard werkt de tv.be-site niet voor mij...
properkes , nice work !
Native App is idd misschien zelfs niet nodig.
Ik vind dit uitermate cool !
die android-app komt er misschien nog wel, maar een web-apps is imho nog beter.
En : data moet open zijn !
Free (as in freedom) software FTW!
Telenet zou mogen tevreden zijn dat er iemand zo'n mobile webapp maakt. Je bestraffen op gelijk welke manier dan ook, zou een verkeerd signaal zijn en creativiteit alleen maar inperken.
Nice job!
misschien is Telenet zelf bezig met de ontwikkeling van mobiele applicaties en willen ze eerst hun eigen applicaties promoten.. Wel jammer, had graag API eens uitgespit!
+1 voor maker
- oneindig voor kut telenet die echt nog in de jaren 90 lijken te leven met hun schijte digicorders en hun toekomstvisie
Wat is de stand van zaken?
@Amedee:
Wel, Telenet ging normaal gezien al lang met hun eigen mobile client zijn uitgekomen, maar het blijft er verdacht stil rond, nietwaar?
Hun grootste probleem was dat ik telenet-login gegevens vroeg waar potentieel wel wat mee mis kan gaan (en daar heb ik zeker begrip voor) dus als ik een manier vind om hetzelfde te doen zonder zelf die login gegevens te vragen (dus eerst inloggen bij telenet, dan een 3-de partij app openen) is er voor hen geen probleem.
(En dat ik hier voor mijzelf nog gebruik, daar hebben ze ook niets op tegen, van een beetje scraping liggen ze niet wakker. tging hen louter om de paswoorden)
Zo lang geleden was het... Kan je nu de broncode niet openbaar maken als het al sowieso niet werkt? Groetjes.
A few months ago, Telenet finally made the jump and opened up their digicorder devices to be controlled through their TV web portal TV.be.
Nice!!!
Finally you could schedule your TV recordings from anywhere using a web browser instead of a infrared remote and the dorky digicorder interface.
Controlling media devices through web interfaces happens to be one of my sweet spots so the first thing I did was firing up Firebug to see what kind of communication was going on between their various web applications.
They've done a really good job, as they created an internal API to talk to the digicorder.
Figuring out how the API works has the same attraction as seeing a crossword puzzle in a newspaper: it tickles your mind but at the same time it's not too hard and with some time and logic the puzzle is quickly solved.
So, let's get to work to create a more open API to control your TV recordings from any software package you want instead of only through the tv.be website.
First step: login
Telenet uses a single-sign-on system, providing a token that authorises you as "logged in" and that you can take with you to other sites.
It sends you on a redirect path towards multiple domains - telling each domain you have logged in.
The script just recreates that path and makes sure to collect and pass all cookies to the next step. (That's really easy in .net - just use the same cookiecontainer for each request)
After that you can use the Telenet remotePVR API from the script as an authenticated user.
One problem though: to schedule a new recording you need the eventID of the program you want to record.
That's where tv.be and some good old screenscraping comes in: a Channel listing for each day is requested on the tv.be website and the EventID codes get extracted and saved to a local cache (so we don't have to hammer the tv.be site more then we need to)
Technically that might be against Telenet's Terms of Use policy, but hey - we're all in favour of free and open data, aren't we?
That's it.
I created a more simple API as .net wrapper class with the following syntax
Dim tvbe as new tvbe
tvbe.login()
tvbe.logout()
tvbe.recordings()
tvbe.reminders()
tvbe.zenders()
In a webapp that translates to URLs as
/login
/logout
/boxes 'gets info on your digiboxes and digicorders
/recordings 'gets a list of your scheduled and completed recordings
/recordings/schedule/ID ' schedules a new recording, ID is an eventID provided by tv.be
/recordings/delete/ID ' deletes a recording, ID is an eventID provided by tvbe/recordings
/reminders/ 'gets a list of your scheduled reminders
/reminders/schedule/ID ' sets a new reminder, ID is an eventID provided by tv.be
/reminders/delete/ID ' deletes a reminder, ID is an eventID provided by tvbe/reminders
/zenders ' (short)list of available channels
/zenders/channelname ' program guide of the channel with name "channelname"
/zenders/channelname?date=dd-mm-yyyy ' program guide of the channel with name "channelname" of a given day
The sourcecode can be found here.
After a (very friendly) request from Telenet I'm taking the sourcecode and the demo application offline.
However I do hope I can contribute following their open invitation to help unlock their digital services towards a more open communication (API?) in general and mobile devices in particular.
To be continued ...
As a demo I created a little frontend for the API for use on mobile devices.
http://tv.stef.be it is.
You can use the TV guide without login in, but if you want to manage your recorders you have to create an account at tv.be (and be a Telenet Digital TV customer of course)
It's a bit of a trust-issue to enter your telenet credentials in a "rogue" app like this, but i can assure you it's safe: your credentials are not stored anywhere and are only used to pass through the Telenet login sequence.
If you're still hesitating to enter your login, you can grab the source and try it on your own machine.
Here are some screenshots.
The API still has some holes, mostly because not all tv.be content is easily available.
Most important i would love a simple system to convert EventID's to program names and vica versa, maybe if i ask the tv.be people nicely? :-)
Also it's not really suited if you have more then one digicorder.
A search function would be nice ... maybe I'll implement that.
Of course it works fine as long as Telenet doesn't change their internal API, which is always a risk, but well, then the cat and mouse game can continue.
I was planning to build an Android app for it but actually http://tv.stef.be works very well on mobile devices and since you still would need a data connection to talk to your digicorder, why would you create a native app when a webapp will do?
Happy recording!