APL Tablo Client

.23 is up. I’m very excited about this update, it has a few new features that I’ve personally been waiting for, so please go download and let me know what you think of all the new options

1 Like

com on @djk44883, nothing? Several features that you have requested in the update and nothing? :slight_smile:

I’ve been arguing with a PC upgrade :frowning:

1 Like

Oh no! In Recordings, I’ve lost some Show titles - just episode titles. First looked like things were completely screwed up on my tablo, via web UI, nope it’s ok. So I used capto to get a text listing and noticed for several listing on each tablo it just has EpisodeTitle - sXXeXX for a variety of channels.

I haven’t really gotten beyond this nor do I have a clue why I stared at this point. I’ll probably send you some screen shots just for verification/clarification.

Go into your db and clear your objects table, it’ll be cleared up after that, it’s just you because you had the beta version.

1 Like

Way too cool, templates for file names… (have checked [] delete after export)

2020-03-07 22:02:41,262 [DEBUG] Streaming URL: http:///stream/pl.m3u8?ZSN2vnZlYnnakW1qDmqiVg
2020-03-07 22:02:41,263 [INFO ] FileTitle: Stand Up Nashville! - s01e02.mp4
2020-03-07 22:02:41,264 [DEBUG] Command:  /usr/bin/ffmpeg -y -i http:///stream/pl.m3u8?ZSN2vnZlYnnakW1qDmqiVg -c copy /media/dvr/Stand Up Nashville! - s01e02.mp4
2020-03-07 22:02:41,280 [DEBUG] Command in process

Notice URL then

2020-03-07 22:02:41,322 [ERROR] Command completed with error
2020-03-07 22:02:41,323 [INFO ] Export Done
2020-03-07 22:02:41,732 [INFO ] Stand Up Nashville! - S01E02 - Aaron Weber removed from tablo2

Completes with error and deleted recording :shrug: (yes, it was relatively unimportant)

FYI, is do have my tablo’s LAN’s name, tablo.lan instead of IP, but it doens’t seem to matter for anything else. It still collects show, add to schedule, finds recordings, etc

I choose to export ShowName - sXXeXX.mp4 it looks like it got that right, not sure if that has any impact on missing the server. I’ll try checking discovering at startup and see…

That’s screwy, the rest of APL Tablo works the the Qualified Name:

2020-03-07 13:24:07,323 [DEBUG] CookieSpec selected: default
2020-03-07 13:24:07,324 [DEBUG] Auth cache not set in the context
2020-03-07 13:24:07,324 [DEBUG] Connection request: [route: {}->http://tablo2.lan:8885][total kept alive: 0; route allocated: 0 of 2; total allocated: 0 of 20]
2020-03-07 13:24:07,324 [DEBUG] Connection leased: [id: 1][route: {}->http://tablo2.lan:8885][total kept alive: 0; route allocated: 1 of 2; total allocated: 1 of 20]
2020-03-07 13:24:07,324 [DEBUG] Opening connection {}->http://tablo2.lan:8885
2020-03-07 13:24:07,325 [DEBUG] Connecting to tablo2.lan/
2020-03-07 13:24:07,325 [DEBUG] Connection established<->
2020-03-07 13:24:07,325 [DEBUG] Executing request PATCH /guide/series/episodes/95889 HTTP/1.1

It worked here to schedule a show.
It gets drive info, retrieves schedules shows and list recordings, yet when it extracts a streaming URL for exporting via ffmpeg (or in general) it explicitly needs an IP ?!? Well I realize it’s designed or intended to use IPs, so ok. I’ll research more tomorrow.

I went to the names when I was upgrading/updating/swapping routers and used different address for them to keep things organized 0 vs 1 (didn’t feel there should be a need to check the internet each time) so I didn’t have to change all the tablo IPs if I changed things around.

Not sure how that slipped past my extensive QA process…I have verified that in the next release, if the export fails, it won’t delete the recording…sorry about your lost recording, glad to hear that it wasn’t relatively important

So, I won’t act like I understand the internals of Tablo…but the ‘proper’ way of requesting a Streaming URL is to do a post to a specific URL, this post creates essentially a token, and that token is used to ‘authorize’ you to access the recording for a period of time…I know we aren’t using SSL or anything here, but I know in the SSL world, there is a certificate that says ‘my name is x’…and while you can setup a host entry, or some other name/ip translation that says that y is the same IP as x, if you try to connect with y, the client balks and complains that you are connecting to y, but the server itself says it’s x…so it considers it an insecure/dangerous situation…I don’t know if the token you get for streaming is similar or not, but if you are having issues with accessing ‘by name’ instead of ‘by ip’, that could be part of it…if you cared to post the error you get when getting the streaming url via name vs ip, I’d be happy to play with it to see if I can figure out what’s going on :slight_smile:

No error, just not a complete URL, seems to be by tablo’s design. I changed IP to name in capto’s settings and got similar results. The non-error/not working-

ffmpeg: /usr/local/sbin/ffmpeg -i http:///stream/pl.m3u8?v_oOyv245rBDTN40Y2lSfA

APL Tablo

 Command:  /usr/bin/ffmpeg -y -i http:///stream/pl.m3u8?ZSN2vnZlYnnakW1qDmqiVg 

nothing between the second and third // / seems to be integral to device’s programing, or something like that. How ever, I can use LAN name here

ffmpeg -loglevel warning -i http://tablo1.lan:18080/pvr/256307/pl/playlist.m3u8 

and extract a recording - different methodology altogether apparently. Just one of those things I suppose.

This is why I’m apprehensive with firmware upgrades. Right now I can get things done, if what they call an improvement, I find a hindrance and may not find out until it’s too late. Already we need to get tablo support to access our device to check our logs.

@LJ_LongWing, How is the “Clean” flag set? Is it something read from the Tablo or is it calculated or otherwise determined?

If you click “Copy tablo URL” and past it into a browser… it comes from tablo. Of course LJ can (?) provide an actual explanation.

I believe it’s set when the recording is complete - successfully, you know, not segmented, or still in progress.
[edit] that is pasting the URL in a sourse other than Chrome, something to parse the JSON - Firefox, PaleMoon or even HTTPie

It’s set by the Tablo, there is the ‘Do Not Record Duplicates’ flag, but sometimes there are duplicates recorded, Tablo explains that if the first copy wasn’t clean it’ll record another copy, I found that flag and realized that it was likely the info they were using to determine if another copy was needed, I decided to expose this flash so you could see if you had clean copies :grinning:

1 Like

I started over with .23 on both Linux, which is working fine, and Windows 10 which works except I cannot get to the settings (see error below). What am I doing wrong?
2020-03-17 17:15:04,821 [INFO ] APL Tablo .23
2020-03-17 17:15:04,821 [INFO ] Logging set at INFO
2020-03-17 17:15:04,821 [INFO ] Starting Processing
2020-03-17 17:15:05,608 [INFO ] Retrieving list of Tablos from https://api.tablotv.com/assocserver/getipinfo/
2020-03-17 17:15:06,658 [INFO ] Adding Tablo ‘TeeVee’ ( Firmware 2.2.28
2020-03-17 17:15:06,843 [INFO ] Loaded 1 Tablos with 4 tuners
2020-03-17 17:15:06,843 [INFO ] AutoRecord: Starting Processing
2020-03-17 17:15:06,843 [INFO ] AutoRecord: Removing old AutoRecordHistory records
2020-03-17 17:15:06,843 [INFO ] AutoRecord: Removing old AutoRecordHistory records complete
2020-03-17 17:15:06,858 [INFO ] AutoRecord: Finished Processing
2020-03-17 17:15:19,784 [ERROR] Unable to load settings:

I’m not 100% sure. I don’t see the ‘setting up database’ in your log, which means that this isn’t the first launch of the tool…you might try deleting your APLTablo.db file (starting over from scratch) and see how that first run looks…see if it throws any errors that cause problems later…

It’s working now. It was my own fault for not following instructions. Growing up I never colored within the lines :cowboy_hat_face:
I was using Java 8, even though you had indicated Java 11. I chose 8 because it did not require that I create an Oracle account to download and I got 8 to work, at least through .22. I found a “safe” download site for Java 11 SDK that did not require an Oracle account, and scanned the download file, checked the digital signature, etc. After installation and some minor changes to my desktop shortcut it began to work perfectly, in fact it is much faster than it was using Java 8.

1 Like

FYI - OpenJDK has “Reference Implementations” for :cry:Windows
Java Platform, Standard Edition 11 Reference Implementations

Red Had Developer has Red Hat OpenJDK for a :frowning_face:Windows platform. Info here… Chapter 1. Getting Started with OpenJDK 11 for Windows Both are free and open-source implementation of the OpenJDK or the JDK Project.

disclaimer: Obviously this is just information, I can make no claims anything functioning on a proprietary OS.

1 Like

API Tablo Client does not “see” recordings.

I have been using the API Tablo Client for some months now, running it on a Mac mini where my Plex server resides.

My Tablo recently had a database corruption that was unrecoverable, requiring me to perform a factory resent. However, even before I performed the factory reset the API Tablo Client stopped seeing recorded shows. It did recognize the Tablo, a dual tuner model, yet when I double click on the Tablo in the list (I only have one) it says there are no recordings. However, there are recordings on the Tablo’s hard drive and space is showing as being used.

As a reference, I’ve also used the Tablo Export tool as well, and it does the same - shows there are no recorded shows, even though there are.

Here are the logs from a run this morning:

2020-04-09 09:11:13,825 [INFO ] APL Tablo .23
2020-04-09 09:11:13,828 [INFO ] Logging set at INFO
2020-04-09 09:11:13,828 [INFO ] Starting Processing
2020-04-09 09:11:16,549 [INFO ] Initalizing DB
2020-04-09 09:11:16,632 [INFO ] Retrieving list of Tablos from https://api.tablotv.com/assocserver/getipinfo/
2020-04-09 09:11:19,160 [INFO ] Adding Tablo ‘Tablo’ ( Firmware 2.2.28
2020-04-09 09:11:19,325 [INFO ] Loaded 1 Tablos with 2 tuners
2020-04-09 09:11:19,328 [INFO ] AutoRecord: Starting Processing
2020-04-09 09:11:19,331 [INFO ] AutoRecord: Removing old AutoRecordHistory records
2020-04-09 09:11:19,332 [INFO ] AutoRecord: Removing old AutoRecordHistory records complete
2020-04-09 09:11:19,333 [INFO ] AutoRecord: Finished Processing
2020-04-09 09:11:37,761 [INFO ] Starting: Tablo recording list
2020-04-09 09:11:37,816 [INFO ] Finished recording list
2020-04-09 09:11:37,890 [INFO ] Starting HD data collection
2020-04-09 09:11:37,996 [INFO ] Tablo 0.97% used of 1968GB
2020-04-09 09:11:51,924 [INFO ] Starting: Tablo recording list
2020-04-09 09:11:51,933 [INFO ] Finished recording list
2020-04-09 09:11:51,954 [INFO ] Starting HD data collection
2020-04-09 09:11:52,009 [INFO ] Tablo 0.97% used of 1968GB

Help! I really need to be able to export my shows, as I don’t trust the Tablo to be stable for more than a few months at a time.

Unfortunately you may be out of luck. So…my tool, and I’m sure others as well rely on the Tablo Server to tell us what’s on the Tablo…we don’t do direct file interrogation…so if you had DB corruption that caused you to do a Factory Reset, that means that the internal Tablo DB says that there aren’t any recordings because it doesn’t have a reference link back to the files on the file system…I have seen several discussions in the forums regarding being able to connect the HD to a Linux machine and pull the .ts files off of the filesystem and combine them into a single file…figure out which episode of which show it was and then rename the file appropriately for use with your Plex…but besides going out and ‘hacking it together’…I know of no other way to recover those recordings.

Thank you.

I don’t care about recovering files/shows, but you do bring up an important point - I did not (re)format the hard drive, so whatever reference there is back to the file system on the hard drive must be broken.

Looks like if I reformat my hard drive and rejoin it to the Tablo as a “new” hard drive all should be well again.

Since I’ve essentially started over anyway, it really doesn’t inconvenience me to do this. I’ll try it and report back.

1 Like

So here’s what I did:

Removed the hard drive from the Tablo. Reformatted it on my Mac (ExFAT). I noticed there was a very, very small partition at the beginning of the drive that was not disturbed. Hmm.

Reinstalled the hard drive on the Tablo and was prompted to format it. Formatted the drive using the Tablo OS. Here’s where it gets interesting:

Despite formatting the drive both externally and through the Tablo, the previous recorded shows from yesterday are still available through the Tablo interface. However, the API Tablo client and other tools (Tablo Export, etc.) still show nothing.

So I’m assuming that I need to perform another factory reset and a hard drive format to completely clear all of the old reference files out?