Tablo Tools - Bulk Export/Delete on Win/Mac/Linux

v0.2.4 with some bug fixes is out now.

The only noticeable bug this fixes is with the Movie Details page. However, in doing that I learned how to add a general error page instead of the reported White Screen of Death (mostly) and believe an update to the error reporting client fixes source maps (again) so I can tell where errors are and fix them. Yay.

ok, sorry that was an over simplified generalization.

maybe start with something like

tablo-tools --updateDB [device]

Then an export (actually I presume it’s one command) There may need a device specification, if there are multiple tablo devices involved.

tablo-tools [--device=tablo1] --saved-search="NameOfShowExporting" --naming-template="SpecificTemplate" --delete-on-finish [ --export-control=increment ]

Back to the GUI, if/when I do bulk export - when I select shows (episodes) to export,

I want to apply a saved naming template to these, can I do “all at once”? Here’s there’s only 2, so clicking each isn’t a hassle, but several more can be a PITA. I think I’m making it complicated.

Okay, yes, good. These are definitely options to be built-in.

--updateDB will default to something reasonable - either always running or only running if the db’s older than 30 minutes.

And definitely dealing with multiple devices. Would you expect it to run only on a specified device or every device that can be found by default?

Back to the GUI, if/when I do bulk export

Yes, you currently have to go change the default. For every recording type included in the search that you need to change. I’ll need to make that 4 naming template options via the cli. I’ll see what I can do.

I would “expect” it run on a specific since the GUI does… but if one-app-fits-all cool!

Note: APL Tablo does this.

1 Like


Do the clean/dirty/finished/unwatched icons only show for “bad” recordings?

I have a couple recordings tablo reports "state":"finished","clean":false without any errors. That’s odd, but that’s what it says.

I have other’s on my second device, "state":"failed","clean":false and reports errors. I know this has little to nothing to do with Tablo Tools specifically.

Just asking some have have the icons some don’t, if there’s a pattern.

Do the clean/dirty/finished/unwatched icons only show for “bad” recordings?

Now, yes. That’s a result of collapsing them when comskip is not in use. This also happily happened to make the comskip/comskip-less “all’s good” display the same.

If you’re more curious, here’s the code that does that.

Of course every bit of the logic for those determinations I made up and hoped for the best.

Thanks, I can follow the logic flow, if now completely understand the programming. If it’s a complete success, as reported finished and clean it’s a green check. Otherwise it gets some icons to indicate “issues”.

Ok, not specific to Tablo Tools, finished, unclean - I believe due to being 7 seconds short. I made NO manual adjustments to scheduling offsets. Yet is shows recorded_offsets":{"start":6,"end":1} so it cut off seven seconds

2 tuners, Scheduled 6pm - 12am 1 hour “marathon” episodes recording. 11:00 & 11:30 half hour episodes of another show… so it trims a few seconds, then labels clean = false.

Note: tablo’s web app does not report this. unclean on it’s own isn’t necessary “a problem” from their perspective (and really 7 seconds is negligible)

I’d have to look at the full records you’re talking about or have a more clear description of the recording schedule to try to duplicate what you’re seeing.

In the end, if the shows duration is 1800 and the recording comes up short - 1793, “clean”:false but there’s no error. In tablo’s [web] app it doesn’t report and issue with it. I think I’d have to look at the root - read only log directory to follow which tuners were in use. I’m not going to do that.

Just because it’s “dirty” …tablo’s app don’t seem to report it as bad, I presume, if there’s no error. I suspect it trimmed the few seconds to use the tuner.

I am learning to find the naming templates useful. The the point -n- click is beatiful. It’s really handy for the occasionally recorded shows I don’t have something set up for already. :slight_smile: thanks!

Finally found how and added Error Handling page to (mostly) prevent White Screens of Death.

Not sue how, but I found a way around it :frowning: wasn’t even trying - honest I wasn’t

No notion of what you’d clicked on or were doing when that happened? If not, hopefully I’ll find it in the error logs on my next pass through.

Sorry, just launched it. Worked the previous day, but hard to say where I left off

FunTime with {{Handlebars}} been trying real hard to figure this out… the possibility may exist, though not possible to implement.

Seems there’s a replace function, maybe from different “libraries”

I prefer show titles not start with “The” so I’m trying things like

{{replace "The " "" show.series.title}}

From handlebars-helpers replace actually, I probably want replaceFirst

Replace the first occurrence of substring a with substring b .

It doesn’t seem to parse “the” substring

This isn’t working. Maybe I’m missing the syntax? . Could be what I’ve read it an extra handlebars-helper and beyond the scope of this project. Maybe I just don’t have a clue :frowning:

I recorded several shows titles starting "The " so I’ve something to work with. Should I just have a “post processing” file rename, or explicitly name files/shows with custom templates?

Very close, you just have the variables out of order. This is the extra set of handlerbars helpers I added in, and here’s replace specifically.

So either of these should work:

{{replace show.series.title "The" ""}}
{{replace showTitle "The" ""}}


Ultimately I believe strip more closely covers what I’m looking for.

Suppose to work with reg exp, ok, I’ve never learned the art of regular expressions, just the extreme basics. Thinking I just want the "The " from the beginning I could use something like /^The / maybe toss in a $, but anything other than double quotes are literals.

well, never mind, replace and/or strip are working. Not sure how many show titles have capital The in the middle of the title anyhow.

Now for something really exciting.

Can these be nested or compound helpers on a single title?

The Martha Stewart Show - 20200728_1300

{{pascalcase stripShowTitle}}

is awesome (since camelcase leaves the very first character lowercase) results:


Now to remove “The” I can do one of the other. I believe I’m complicating things. Probably would need the complexity of adding “shortcuts”/custom modifications and have it done there. I’m manipulating the variables you’ve already manipulated. I know I overthing things, just getting rid of "The " in one step is cool! Compressing filenames is yet another option I’m really liking! :slight_smile:

I just released v0.3.0-beta.1 which is the CLI. Yay! Here are some pics, go read the minimal release notes, and sorry if you can’t figure out how to run it yet, I’ll have that worked out soon enough.

1 Like

hyper sensitive, I understand it’s a preview beta

- u yes errors with

Invalid values:
Argument: u, Given: "yes", Choices: "YES", "NO", "NAT"

What’s up with object_ids ? I presume it’s the tablo’s objectID. although it’s not readily available in tablo-tools, its not hard to dig out. So I try to get rid of a recording I don’t need… since I know how to truncate "The " from show titles now :slight_smile:

tablo-tools delete -S SID_5087B820425C -i 35290 -u YES
Current Device:  tablo2 - - SID_5087B820425C

 No "saved-search" or "ids" parameter found

I’m using this object_id, and had it update, so it could try harder

I presume it’s using the default naming template? for all exporting right now?
it may be worth noting,

The one I definitely know is that the AppImage works using ./TabloTools-0.3.0-beta.1.AppImage --help

or maybe this is how appimage works, your example uses an absolute path. May or may not work for everyone depending on OS and configuration.

- u yes errors

I made this be case-insensitive

What’s up with object_ids

Definitely the Tablo object_id and I’d broken the CLI option. I don’t really know when it will be used - my best thought has been to provide them in a pre-built command for a set of Selected Recordings.

I presume it’s using the default naming template?

Yes. I knew I’d forget to add at least one major thing! There will be an option to set this.

1 Like

could use something like /^The /

Ultimately this is what you want with strip , but it looks like regexs aren’t working, so you’ll just have to hope no shows appear with capitalized “The” in the middle of the name (shouldn’t?) for now :confused:

Can these be nested or compound helpers on a single title?

Yup. Try this:
{{pascalcase (strip "The" showTitle) }}

OhBoyOhBoy that’s way too cool! I was using too many {{}} for nesting. This has great power and enormous potential beyond …just cool.

I just thought I’d try, since I had a list of shows starting with "The " I didn’t need. You’ve never really worked with objectID, so I didn’t expect too much at this point. But, yea if the CLI can display a list it can be quicker to copy 'n past a handful of numbers than a bunch of show titles for some quick operations. -someday, maybe

That’s find. I was just trying to get things tight and clean. The strip quotes will cover almost every thing, and it’s not overly common. (just one of those annoying things)

With the shortcuts provided and the handlebars-helpers, and even nesting can come up with creative and universal templates.
I just realized the nesting is with (parenthesis) really, I suppose it’s documented, somewhere, but it just seems counterintutitive to the curly brace handlebar theme.

1 Like