Tablo lightweight standalone web client, faster start, faster channel change


#1

Hi team,

I was mulling over yesterday’s little glitch for folks who couldn’t use their web app and then thought about how we could have independent access to the Tablo from a web client (that seemed to have caused issues).

I personally could also do with a simple way to get access to our TV without the overhead of guide data syncs from our treadmill to be able to watch telly on the iPad while working out. Also being able to change between the channels super quickly with one button while running was a goal - that’s always been tricky!

I haven’t got my API access yet, asked for it yesterday from team @TabloTV who are going to hook me up - psyched about that! In any case, here’s a screen grab below of how far I got since dinner time. Is this anything that folks would be interested in being able to use?

I’ll throw the code up on GitHub right now it isn’t touching anything more than what you can pull using the Plex client, but as you can see it’s just a simple jQuery standalone piece of HTML with easy access to css styled buttons on the left. Right now it does a couple of AJAX fetches for the stations, and pops up an embedded video for the current channel. Basically uses the same URL hints as the Plex channel code that is already available here:

Plex Channel Github

If it turns out folks think this is of any use, I’ll probably pop it up on the Github in a couple of days once I get it finished off and get it looking in a bit better shape. :smile:

Here’s where I’ve got so far… any ideas/thoughts would be super welcome!


Samsung Tizen LiveTV
#2

Very nice!!


#3

Full disclosure, the eventual idea is to integrate it with another crazy project I happen to have to provide a “single pane of glass” for our treadmill so you can manage speed, incline fans and also watch and change the channel for the telly at the same time. I’m still threatening the Alexa plug in for both of them… “ALEXA: Station PBS, incline 5%, at 7 mile per hour”. Should make a fun youtube that one :wink:

You’ll see from the treadmill project below there is a significant overlap in “interface design” cough… yeah basically the same dodgy jQuery code :smile:.

… also /me waves at @ventz - we used to work together, he’s been a solid partner in crime for years, and we seem to always pick similar tech! hehehe!


Preventing outages on Tablo when Tablo servers are down
#4

Hello all,

I’ve uploaded my example code for a standalone client to GitHub in case folks want to follow along. Right now you can see the application working on iOS and inside of Safari. There’s a linked YouTube inside the git repo and simple instructions to get going. So far so good, but this is like version 0.000001, your milage may not only vary, you may not even get any… :wink:


#5

(haven’t looked at your code) About my only concern is that the token for access to the data is temporal. Might have to be refreshed in playback. I know I’ve considered this for future surlatablo releases.


#6

Yeah - I only just got my API access letter that I’ve yet to sign and return today so I’m digging about in the dark right now. The m3u8 seems to return about 12 hours worth of URL, so I’m guessing that might be enough. Who knows, if it lasts an hour I’m in good shape, can’t stand any longer on the treadmill ;-). I’ve not really coded in years, so this is all a little erm… well - yeah, you get the idea.


#7

@jamescuff

Was excited until I read on github only usable with Apple Interfaces.

I’m an Android man only.

That’s ok… I’m patient.

Thanks for developing this.

Chas


#8

Thanks @cthompgh - it’s so simple right now the whole thing is just a few lines - the trick is to parse out the m3u8 there’s some libraries that I can probably use (see below). Also - thanks for looking!

I just found an absolutely horrendous error in the code after removing the hardcoded links before publishing, that wasn’t passing the Tablo IP to the functions so it failed superhard. Fixed in GitHub, I’m such a muppet!


#9

Yeah this is totally the thing, I’ll try and whack it in tomorrow. Neato!

Hehe - and look at that! If you look at that page, there’s a logo for a company we recognize who use this library in production. Well wouldn’t you know! I guess that’s going to be supported once I work out how to use it. hehe! :smile:


#10

Hello team,

Update today - the HLS code worked a treat. Now works fine on Android, OSX and Windows with Chrome, IE and Safari. I’ve started to try and convince jQuery.mobile to be able to work with Playstation4 and with Samsung/WebTV browsers, but haven’t got very far, something strange about these platforms will need more work. Feel free to pull from my GitHub and have a go. If folks have any ideas on the jQuery mobile stuff that would be great, in the meantime good progress today :wink: I’ll have another poke tomorrow.


#11

Would it work remotely as well ? I assume it will need a open port and fixed ip address or use a service that changes dhcp to a name.


#12

yep - simple port forward… I’d need to put http auth and some https around a proxy though - I wouldn’t be too keen on having the Tablo sitting out in the breeze with zero auth… that would end in all sorts of poorly :slight_smile: The client talks direct to the Tablo as it is right now, so that python would need to get smart. Mind you once you head down that path it starts to look like Plex… I’m so trying not to build a media server… I think I’m going to head that way though… must resist must resist! heheh! :slight_smile:


#13

We were just talking about this. One option is what you suggested. Another “trick” (not really, pretty standard now a days) is a reverse connection to an online service. A particle photon (or one of their fancier new mesh devices - you just need the $15 wifi one) or a raspberry pi on the particle network (free) would work well. This would give you a remote API that would trigger something locally in your house / behind a firewall / without a static IP or caring about your DHCP ip. It works really really well for this purpose.


#14

This. This is why I always used to love working with Ventz. I’d call him “Ideas Ian”, if his name was Ian. :slight_smile: Brilliant as ever. Perfect use case!


#15

Okay, so I’m going to be selfish and greedy because I keep mentioning this…

You my friend are extremely talented. Would you consider instead of building a home media server, be willing or able to get Tablo recordings straight into plex?

I will gladly contribute a couple cases of beer and whatever else you might want within reason lol to be able to easily get my recordings into plex and use the built in comskip functionality.

There is an existing Tablo channel, don’t know if it maintained any longer. But maybe you can do something with that code…


#16

Aww bless you @Canons900! Too kind! It’s been years since I actually coded, it’s fun having a go again at little bits and pieces. Ref: you question though, does @rbw’s script manage to do this for you? The code looks good to me at first blush, includes comskip also, link here: Nightly offload from Tablo to Plex Uses TabloToGo. I’ve not tried this idea, but I’m sure folks like @cjcox do something similar with SurLaTablo.py. Maybe I missed what you were after? I’ve been interested in the Plex DNLA code that does allow DNLA clients to be able to watch LiveTV. I’ve been obsessing about the LiveTV aspects more than anything recently hence all the activity on the “thin client” idea. But as you can see… I’m starting to rethink this whole “javascript as a client” idea and thinking more about running this in node.js on a server… now if only I could load a few lines of javascript/html directly onto the @TabloTV:wink:


#17

Ok, so I run macs in the house and many of the products are for pc’s.

I have been using an app or script from the forums to take shows off the Tablo drive and covert them to mp4. I can remember the name of it it for the life of me…but I found the info here on the forum. This a manual process for me. Running the app, waiting for the conversion, moving to a usb drive. Going from usb drive to plex server and loading the shows myself onto my plex server.

Someone also created a docker image that would do this, alas, I cannot figure out how to get it setup.

What I am looking for is the ability to call the Tablo and this may not be the right term. Or better yet, something that runs at night and takes that nights recordings, converts them to mp4 for direct play via plex. Moves the shows to my plex server in the proper location/folders. I can live with manually skipping commercials using thumbnails.

I’m looking for way to get shows off the Tablo hd and moved into plex nightly or early morning. And have it be an automated process.

I am computer literate, but some of this is beyond me. We use tablo for mostly dvr. News and live sports so the slow channel changes are not an issue. Once watch, we watch. We do not channel surf.

We can take it off line if you want to pm me for more information. I am happy to test and help out any way. If not I’ll continue doing what I am doing…

Thanks for your work and positive response. Hope I am more clear this time around.


#18

I am now looking at the rbw post. Maybe I can make sense of that! Thanks for the reference.

That looks like it will do the job. Looks to be a very clean solution! Gotta figure out to set that up and give it go…gonna be a learning curve.