New 3rd Party Web app: Tablo Lite

I realized recently that my Tablo (1st gen, I think) is now 13 years old and still going strong. I got worried that some new features in my.tablotv.com might mean that it wouldn’t work with my old device. So, I finally got around to making my own web app as a backup.

The code is available on GitHub and I’ve created a 1.0 Release so that other people can test it. Please feel free to try it out: Releases · Epchk/Tablo_Lite · GitHub

I’ve tested it in Edge, Firefox, and Safari on an iPad. It must be run from a computer that is on the same network as the TabloTV device. It is meant to be served from a static web server.

You can run it from a local file with the file:/// browser method but the initial setup page won’t change after you enter the IP Address of the TabloTV device because it can’t save the value in a cookie. You can, however, click the home icon on the left to proceed.

Limitation

  • Only uses the public (non-authenticated) API in the hopes that it will continue to work even if the tablotv web service is unavailable.
  • Does not use guide data. As a result, only manual scheduled recordings are supported.
  • Can not perform a channel scan because the app is not authenticated.

I, intentionally, do not make use of the guide data from the tablotv device. This was a design choice so that (hopefully) Tablo Lite will still be usable in the event that my device no longer receives even the free guide data.

2 Likes

@eek, thanks for this. I have it running on my Synology NAS’s web server and everything works except watching live or recorded shows. The Watch page shows the correct URL, which I can copy and paste into VLC player and it plays fine, but the player on the Watch page never plays the video. It seems like it’s just trying to download the whole file (I see hard drive activity while the video is trying to load). I have an HDMI TV attached Tablo so that may be the problem. I doesn’t transcode the video to h264 but just serves the raw mpegts video in hls chunks. Do you think this is a limitation of the hls.js player?

I just tried a live show and a recording from my iPad and the audio plays but not the video.

I picked hls.js specifically because it’s supposed to support the raw mpegts container. But the older 2-tuners do trascode the video to h264. Unfortunately I didn’t find any javascript video libraries that would transcode on the fly client side. That does kind-of make sense. It has to be fast to keep up with the stream and doing so in a scripting language (like javascript) probably won’t be able to keep up on slower browsers. [this paragraph was edited to correct misinformation]

I run it from an Apache web server that only serves static pages. I expect your Synology NAS should be about the same (maybe better).

I just double checked on my iPad (iPadOS 17.6.1). The live stream doesn’t auto-play but pressing the play button on the player interface starts it once the stream starts loading. Same for a recording (I had to push the play icon on the video player in the browser).

I think all the original Tablos (except the HDMI TV Tablos) transcode the video to h264. I think this is why the HDMI Tablos don’t have a Windows Store app and the my.tablo.com site doesn’t work with them. It’s the raw MPEG-2 video in ATSC 1.0 that the HDMI Tablos stream that can’t be decoded by browsers. I think I may be stuck just copying and pasting the url displayed on the Watch page into VLC.

How do you use it? I clicked on the website file and put in my ip address and left the url blank. then i clicked on active channels and it went to some canadian channel listing and don’t know where to click after that. thank you

Sorry. That’s kind of experimental. On the setup page (the one that should have showed up first and had you enter the IP address of your Tablo also asks for a URL for something to show TV listings. The default is one that showed up on Google when I did a search.

If you need to get back to that setup page you can delete the cookies for the page or go to #setup to see it again and make updates.

The listing thing is not at all well tested.

Bummer but good to know. I know it’s pushing a stream of .ts files but I didn’t dig into the internal encoding.

So what I did was first try changing from hls.js to video.js but kept getting many errors so that was a bust. I ended up just removing the player on the Watch page and just have it display the bare url at the top. I then copy and paste this into VLC on my PC or iPad. Kind of low tech but it works.

Thanks again for creating this. I can now watch my HDMI Tablo on my PC or iPad.

I did some digging from what I can tell even switching to video.js wouldn’t help. It appears the newer Tablo devices use MPEG2 encoding, the same encoding that is sent to HDMI ports for TVs and very few browsers support it.

Even video.js is a wrapper for the Video HTML tag and it relies on the tag itself to understand the video encoding. The wrappers are just handling the multi-part streaming and buffering.

Right now, I think it one would need a server component to do the transcoding to a format that is supported by the browsers.

I thought people have been importing VLC and using it’s player for years.

I’ve updated the BETA release. This update cleans up the CSS and HTML as well as adding some additional information on home screen and turning off the stream if you switch away from the watch view.

If all goes well, I will put out a 1.0 RELEASE next week.

Sadly, I will not be able to trigger a channel rescan with this app. Doing so requires the app to be authenticated and one of my design goals is that I don’t want this app to rely on the Tablo website. It’s meant as a backup in the even that the tablo website is unavailable (or stops supporting my ancient device).

1 Like

Beta 4 is a release candidate. If no bugs are found, this will become the 1.0 Release.

This update adds:

  • displaying error messages from the TabloTV (such as when a live channel is unavailable)
  • ability to edit the URL to your chosen TV listings provider (such as TVPassport, OnTVTonight, or Zap2It).
  • some bug fixes.
  • expanded instructions on using ffmpeg to save recordings from the TabloTV (now including how to transcode audio and video in the save file).

I can’t type and save the IP address in Microsoft Edge. Maybe I’m missing something there.
I saw in tablo_ota.js the first line had a hard-coded IP address. Changing that to match my setup made the code work.

Yes sorry about that. I think the latest code got that fixed.

Tablo Lite v1.0 Beta.6

Sept 17, 2024

Beta 6 is (hopefully) the last Release Candidate for version 1.0 Release.

Fixes & Enhancements

  • The IP address setup should work now.
  • Added the video title to recordings playback and channel to live streaming playback.

Known Issues:

  • If more than one HDD is installed (including internal and external storage), only the last one gets displayed
  • Playback will not work if the video is encoded in MPEG2. This is the default format for OTA broadcasts and is not supported by the video tag in HTML5 in most (possibly all) browsers. Unfortunately, it appears that newer TabloTV devices save videos in this format.
1 Like

I haven’t found any issues with Beta 6, so I have created the official Tablo Lite v1.0 Release on Github. (see link in the initial post of this thread).

There is one issue. If you have more than 1 HDD attached, it will only display statistics for one of them.