# Made a VB.NET streaming app, want to TiVo-ify it.



## DJQuad

Hey all, I developed a Windows app in VB.NET that streams videos from a popular website. I'd like to know how easy or hard this would be to make a TiVo app from it. I've already skimmed the SDK/APIs and it doesn't seem that involved. Heck, I may even outsource it.

Thanks in advance!


----------



## davidblackledge

DJQuad said:


> Hey all, I developed a Windows app in VB.NET that streams videos from a popular website. I'd like to know how easy or hard this would be to make a TiVo app from it. I've already skimmed the SDK/APIs and it doesn't seem that involved. Heck, I may even outsource it.
> 
> Thanks in advance!


I suppose it depends what your app does, but there are enormous differences in HME versus any normal app environment. And I don't think there's a VB version of the SDK, although there is a .NET version (http://www.tivocommunity.com/tivo-vb/showthread.php?t=382139) and I don't know enough about VB to know if that makes it immediately compatible. I can answer questions for the Java SDK ;]

Anyhow, in HME you can't draw arbitrarily on the screen or all sorts of "normal" stuff due to many software and hardware limitations and what you can do may suffer from network latency since your code has to run on a computer external to the TiVo that is displaying stuff.

The good news is if your video stream is in a compatible format, the TiVo does most of the work and just sends you events to let you know where the video stream is displaying currently.


----------



## DJQuad

Thanks for the reply 

The program simply streams a live broadcast, much like how Roku and Fire TV does it. There are tens of thousands of live streams so the TiVo app would actually browse them like visiting the web site, but also have the ability to define a particular stream. On the web the format is like http://www.stream.com/user/johndoe. That includes the Flash embed that my app uses. I also make a few simple calls to their API which makes things a bit easier.

Think of it like the YouTube app but instead of browsing and searching for on-demand videos, the videos are live-streamed.

I hope that all made sense.


----------



## davidblackledge

DJQuad said:


> That includes the Flash embed that my app uses. I also make a few simple calls to their API which makes things a bit easier.
> 
> Think of it like the YouTube app but instead of browsing and searching for on-demand videos, the videos are live-streamed.


and here we hit a technical wall. While Premiere and above can run Flash, we have yet to have fully cracked the way to launch arbitrary code from 3rd party apps (aside from a defunct developer program that never really got off the ground).

We do know it's possible (EWz link "TiVo's (hidden) Apps" will launch some of the apps that immediately then launch the Flash app version), nobody has figured out how to do it, and more importantly, it might be the case that it has to be an already-registered app to launch that way, vs. this "flash embed."

Sorry to be the barer of bad news...but this is the software and hardware limited world we "Developers Corner" folks live in.


----------



## moyekj

Other possibility is using html5 and javascript on the TiVo side instead of HME or Flash. If you sign up as Opera TV developer (see Opera Store Backdoor) then you will get a URL Launcher from which you can launch your own web pages. There's already a project under way to make a TiVo Plex client. The thread for that is: Plex HTML5 App WorldWide Request
If you go that route you have to live with video codec constraints imposed by TiVo Opera browser. Namely H.264 video and AAC audio in a few different container formats, so you would need a transcoder to handle incompatible video streams.


----------



## moyekj

davidblackledge said:


> We do know it's possible (EWz link "TiVo's (hidden) Apps" will launch some of the apps that immediately then launch the Flash app version), nobody has figured out how to do it, and more importantly, it might be the case that it has to be an already-registered app to launch that way, vs. this "flash embed."


 Arbitrary flash page launching is possible and still works via RPC (unlike web page launching which TiVo blocked):


Code:


{"uiDestinationType":"flash","type":"uiNavigate","bodyId":"tsn:8400001xxxxxxxx","uri":"x-tivo:flash:http://www.bbc.co.uk/science/humanbody/sleep/sheep/reaction_version5.swf"}

EDIT to add: It can't be any type of flash page, there are constraints which I no longer remember the exact details since it's been too long, but at one point I was able to make my own flash test page that I could launch on the TiVo using above method. Here's relevant portion of the thread with information on that:
http://www.tivocommunity.com/tivo-vb/showthread.php?p=9328863#post9328863


----------



## DJQuad

moyekj said:


> Other possibility is using html5 and javascript on the TiVo side instead of HME or Flash. If you sign up as Opera TV developer (see Opera Store Backdoor) then you will get a URL Launcher from which you can launch your own web pages. There's already a project under way to make a TiVo Plex client. The thread for that is: Plex HTML5 App WorldWide Request
> If you go that route you have to live with video codec constraints imposed by TiVo Opera browser. Namely H.264 video and AAC audio in a few different container formats, so you would need a transcoder to handle incompatible video streams.


Could VLC be used at all? I could use that instead of Flash.

http://vlcdotnet.codeplex.com


----------



## moyekj

DJQuad said:


> Could VLC be used at all? I could use that instead of Flash.
> 
> http://vlcdotnet.codeplex.com


 Using VLC would be easier to integrate into other programs. Currently you don't have much choice for a TiVo front end though. HME is the only somewhat well documented front end available to you, and there are Java and python implementations of those available. Other than that as I mentioned html5/javascript is the only other possibility, but going that route you'd have to submit app to Opera TV for acceptance/distribution, so HME is really the only viable choice if you want to avoid that.


----------



## DJQuad

moyekj said:


> Using VLC would be easier to integrate into other programs. Currently you don't have much choice for a TiVo front end though. HME is the only somewhat well documented front end available to you, and there are Java and python implementations of those available. Other than that as I mentioned html5/javascript is the only other possibility, but going that route you'd have to submit app to Opera TV for acceptance/distribution, so HME is really the only viable choice if you want to avoid that.


Yeah this is getting frustrating, not to mention over my head. 

It seems like Opera would be the best option. For those that haven't figured it out by now, it's for http://twitch.tv. An example stream is like 



. It includes an embed.

Twitch already has an iOS app - 




The thing that most confuses me the most is that TiVo apps already stream videos from Flash. YouTube, Netflix, etc are all Flash.


----------



## moyekj

YouTube on TiVo is html as in Pandora. There's debate on what Netflix is but it doesn't launch as a web page like YouTube does.


----------



## DJQuad

moyekj said:


> YouTube on TiVo is html as in Pandora. There's debate on what Netflix is but it doesn't launch as a web page like YouTube does.


Figures. Well, I'm not sure if y'all saw the news, but Twitch got acquired by Amazon for nearly 1 billion. Hopefully that will give them the resources to add Twitch either within Amazon Instant, or a separate app for multiple set-top boxes. It will obviously probably be on Fire TV first.


----------

