APL Tablo Client

Thanks for .19 . I was trying out the auto-recording feature and I picked a good (bad) example that resulted in an error. Apparently an apostrophe (single quote) throws off the SQL statement since that is also used for delimit the text:

I presume, AutoRecord only works when you start/run APL Tablo Client - obviously. So, at minimum, one would need to run it once with in a 2 week period, to get updated information form guide data.

But this is somewhat trivia, since, if you set AutoRecord, you’re regularly using the application anyhow.

I tried Auto Record. Choosing too general text (for anything, anywhere) pilot. (quickly realized my mistake) Got way more than I cared for. Concerns…

In the settings window, I"m locked into 2/3 - 1/3 a small section to see all the recordings I want to delete. Not too big of a deal… oh wait, I can only select individually what I want to delete. <ugh>

Someday, maybe options for Show/Episode Title, Description. I believe the DB tracks series then episodes - for TV series. I’m not sure what breakdowns options there may be.

Just would like to select multiple entries to clean up messes users may make.

I’ve encountered the same fatal error.

2019-11-24 09:18:50,891 [ERROR] SELECT * from AutoRecordHistory where Type='Text' AND Title='Fatal Encounters - S01E01 - A Mother's Nightmare' AND Date='Mon 12/02/2019 1:00 PM-02:00 PM' AND SID='SID_5087B820425C'
2019-11-24 09:18:50,891 [ERROR] SQLException Getting ObjectList: [SQLITE_ERROR] SQL error or missing database (near "s": syntax error)
Exception in thread "Thread-0" java.lang.NullPointerException
	at com.apl.Functions.getAutoRecordHistory(Functions.java:937)
	at com.apl.model.AutoRecord.run(AutoRecord.java:292)

Along with this… I entered, as text S01E01, with limited expetations since this isn’t actually how tablo DB stores, from my understanding. Click OK… guess I was impatient, so I closed then relaunched… and it found episodes/show to add to the schedule - until it found an apostrophe in the title (do you think it’ll like an exclamation or ampersand, what about a paren?

Does the process restart when you OK the auto record dialog and if I waited, it would have done what it did/does when it starts up?

Just for fun, sqlite browser I manually entered the “problem” entry, and using the web app scheduled it. (of course I backed up the db first). It open without issue… except it was able to continue search for shows to Auto Record… and hit another.

It hits the error and halts! really bad. I do have entries with an ampersand. If an entry has an apostrophe - artificially added - it’s not an issue.

@LJ_LongWing, you mentioned the following in another post:
I archive to hard drive, and play through plex. I personally use my tool APLTablo to export and remove commercials…and then I play them through Plex…

How do you remove commercials using APLTablo?

I thought I had taken care of all of the ’ replacements…but apparently not…I have fixed those with .20…verified with Hogan’s Heroes :slight_smile:

Correct, at the moment, the only time auto record executes is on client startup…which means if you setup an auto-record, the only way to get it to fire at the moment is to close the client and re-open…obviously this isn’t ideal, so I’ll need to change it…but that’s the way it works at the moment.

I’ve modified it so that the Auto Record and Auto Record History each take half the screen and resize with the window

I’ve setup multi-select for both tables so multiple deletes can be done now

That’s actually already baked in…so, this’ll all be covered by the manual that I’ll get around to writing at some point…but…when using Text, it looks in the ‘title’ and ‘description’…now, the title is the title as it’s shown in the UI…so, if it’s a movie, it’s just the movie title…if it’s a Series, it’s the Series title…if it’s an airing of a series…it’s the series title, the season, episode, and episode title

And regarding the auto-record delete…the Auto Record History won’t clean up your mess…it’s sole purpose is to ensure that if it sets anything to record, and you decide you don’t want to record that thing that it found…it won’t reset it to record…it’ll leave it un-recorded…so, you can clear out the history if you want, but you still need to go into the shows dialog and change the recording status of everything that you set to auto record :slight_smile:

Yes…that’ll work and it’ll automatically record any airing of a show that is season 1 episode 1


Ok…so, depending on the recording, and your platform, this may or may not work for you. So…when you right click on the recording, there are two options ‘Export’ and ‘Export and Analyze’ (there are more, but these are the one’s I’m discussing at the moment).

If you just choose Export, it does exactly that and nothing more…but if you choose to Analyze as well, one of two things happens. If you have commercial skip enabled, and the commercial skip is done and ‘Ready’ on that particular recording, it creates an MLT file with the Breaks defined by the comskip. if it’s not enabled, or it isn’t finished, or it errored out…AND you are on Windows (Eventually I’ll get this working for linux as well, I run an analysis against the raw file and identify what I believe MIGHT be commercial breaks.

Once that analysis is done you have an MLT file that can be used with the program ‘Shotcut’
which has both Windows and Linux versions…you can use Shotcut to remove the sections that aren’t show, ideally already identified by the analysis…(you don’t need to use the analysis to create your own MLT file though)…and you can use Shotcut to produce an output file that doesn’t include the commercials

Does that make sense? I’ve tried to use all of the popular tools out there but all of them are closed door, completely opaque, and I have no ‘input’ into what’s a commercial or not, so quite often it creates output files that either contain commercials, or have removed a part of the show in question…because my analysis only provides pointers for where the commercials ‘should be’, and allows me to decide manually if it’s accurate or not, I’m always guaranteed to have a finished file that doesn’t contain commercials and hasn’t missed any of the show. I prefer this to the automated…which means that I have manual work to do every time I want to put something on my Plex, but I have a product that contains what I want, which makes me happier.

1 Like

So the apostrophe error is fixed - thanks . I may have a project for the long weekend to try out your commercial skip process. I vacillate between wanting a hands off commercial skip and a manual process, but knowing none of the automated methods is 100% accurate I may opt for your approach.

One more question, how does your commercial detection compare to Tablo’s? Any better?

It brutally records everything and anything - multiple airings of the same episode (at this point I’m just seeing what it’s capable of).
Ok, so I either just let it record what it wants and clean up my recordings later.
Or if I unscheduled one - and not clear it from auto record history… it won’t try to schedule it again?
Or I clear history and unschedule and it won’t try to reschedule it?
The history list has little to no function beyond a reference. Highlighting a specific auto record entry - doesn’t show just shows that were scheduled based on that “rule”.

If I mark a server/tablo inactive (on the server tab of the setting box) just how inactive will it become? …sure I could try it buy by the time I discover what I’ve done it might be too late :frowning:

Some day a long time from now, maybe the export tab might have a file name template? and/or some opportunity to specify a name when you do an export.

My commercial detection relies on drastic changes in brightness of the screen, or completely black frames…so, for episodes that have lightening in them…it sucks…but it’s very good at catching a vast majority of commercials…the down side is that it essentially catches EVERY break…so, it puts a break between each commercial…rarely (lightning) does it put a break in the middle of the show…so, basically, when using mine you need to look at the break, determine if the stuff at the beginning and end of that segment is commercial or show, and if commercial, remove it, all the way through the file…

The Tablo commercial skip has a bunch more intelligence built into it, and as such, provides significantly less breaks, and just like you see on a device that supports it…it’s generally pretty good about starts and ends of shows and commercials

So…I rarely have issues of it not caching a potential break, but mine takes a bit more manual processing of the breaks, but in the end, both result in a file that doesn’t have commercials, which is good…both are faster and easier than just taking the raw export and manually seeking through the program for commercials and removing them.


No…if you leave the auto record line in place, un-schedule it, and then remove it’s tracker to let it know that it already tried to record that…it’ll set it up to schedule again.

Correct…it is a record of what the auto record has done so that it won’t do it again, the auto-record auto cleans up the history when the date/time of the history record is now in the past.

It isn’t considered in any of the other screens, or the auto-record…it’s as if it doesn’t exist for purposes of the tool…then, when you re-enable it at some point in the future, it starts using it again :slight_smile:

that is certainly in the cards…I have several apps I use that have that sort of templating capability that I could base my UI off of…I might even set it up so that it has different templates for Movies vs Series…that’s essentially what I’m doing now, but I don’t give you any input on how you want the export to come out…giving an interface to it shouldn’t be that hard.

The next feature that I want to add is the ability to control the start/stop time of show/episode +/- user configurable amount …that requires more GUI work which I hate though :slight_smile:

1 Like

I don’t generally use APL Tablo for export, but there’s no reason not to, maybe. I’ve always has the settings

I click export and analyze (I know it’s a Windows thing just now). So I end up with 2 files, one with -LowRes 128 x 72 …maybe for a small screen mobile device? AND the recording is still on the tablo. (yes, clicked Refresh Table)
Then clicked on just plain Export - file exists and then deleted recording.
Platform issue?

I don’t always care to have useless (sitcoms) episode names. But really, maybe it’s an old thing, it is contrary to most conventions - I can more easily read s01e01 than S01E01 - the lower case allows the numbers to stand out… for older eyes I guess :slight_smile: when you get a long list.
So being able to name files how users want them matter to some (and APL Tablo is sooo customizable otherwise)

Ok…so, the analyze creating the lowres version, that’s because I’m analyzing each frame of the video to determine if it’s going black, changing brightness and such. it’s faster to create a low res version of the full res file and analyze that than it is to analyze the full size file, but, due to the fact that the analysis libraries aren’t in the download, it can’t finish the analysis…which means the whole thing is in an error state, and as such, didn’t delete the recording from the Tablo because there was an error in the command you provided…if you tried it on Windows at the moment, the lowres file would still be created, but then analyzed, and deleted, and you would have an mlt file with the analysis baked in.

That’ll hafta be part of the templating export part…or are you discussing as part of the UI?

My comment was targeting exporting. But after you asked, I looked things over, and everything does seem to blend together. But generally I’m not looking for specific season and/or episodes.

But in my list of file names, I want to be able to look and see what it is… issues you know.

I’m not sure I understand this one…where are you wanting to not see Season and Episode numbers?

Sorry, I’ve been down sick for few days, maybe not ready yet. My biggest concern was with export file names. You asked about the UI… I looked at the different windows. The S02E04 does look harder to decipher than s02e04 in a long list of show titles. The numbers are slightly more profound.
But it’s not as big of a concern I guess, because I’m not really looking for specifics, or I can deal with it. I agree, conventions would go with upper-case,but for me, this is an exception. Personal preference, that’s all.

1 Like

Protect me from myself… I’ve swapped routers and (I’ve got my reasons) changed address from 192.168.1.x to 192.168.0.x I had unchecked the discovery option… you see where this is going. I figured I could edit SQlite, but decided to wait it out and see what happens, for the sack of others :man_shrugging:.

+ JFXPath=/usr/share/openjfx/lib
+ java --module-path /usr/share/openjfx/lib --add-modules javafx.controls,javafx.fxml -jar APLTablo.jar
2020-01-23 19:11:32,075 [INFO ] APL Tablo .20
2020-01-23 19:11:32,076 [INFO ] Logging set at DEBUG
2020-01-23 19:11:32,077 [INFO ] Starting Processing
2020-01-23 19:13:42,213 [ERROR] Could not get server info, for
2020-01-23 19:20:15,428 [ERROR] Could not get server info, for

The first error’d out in a couple minutes. This it took another 7 for the second tablo to fizz out. Then I clicked the file menu, and maybe bumped the Shows button - all over again.

Can you shorten the time out for ID-10-T error?

1 Like

Programming the ‘happy path’ is always easier than programming for the error situation. I’ll see if I can add a parameter to the settings that allows you to define your network timeout :slight_smile:

I have finally successfully accessed APL Tablo. Thanks to LJ for such a nice interface.

Some possible ideas for the Nice To Have List.
1- Add screen for LiveTV Channel URL’s. So we can watch the live channels in a different viewer…VLC, etc.
There have been comments in the forums that the live view channel URLs
are fairly consistent over time.
Presently I don’t know how to see the actual LiveTV channel URLs.
Screen might refresh the list and provide access to the URLs.
2- Add hotkeys for the pulldown menu items to speed selection.
example: Recorded Shows screen…right click on show…pull down menu…D for Delete
Would save a mouse move for every delete.
3- Put APLTablo icon file into APL Tablo folder.
So we can setup a desktop icon with the proper look.

1 Like