I got a 2-tuner Tablo about a month ago, and aside from some glitches I’m absolutely loving it. But now I’m really regretting getting only the 2-tuner version. I want to record more programs at once.
@pngwolffman yes you have to pick which Tablo you want to use. In a browser or iPad app you select which one. You can always disconnect and use the other one. In Roku currently it will ask everytime you start the app.
2 Tablos need 2 HDDs
It detects Tablos and you choose which one to connect to at that time. You can disconnect from that one and connect to another. Perhaps keep track of which channels you use which device for?
@pngwolffman - It’s totally possible. You should see the list of Tablos on our local network at the office! :)
Now there’s some great ideas!
BTW - did you get a deal on all those Tablos in the office - perhaps the sale Amazon had on the quad a while back?
Hey @TabloTV, how about showing the Name of the Tablo instead of the IP Address? Surprised I had not asked for that before
@Jestep - This is only on the Roku app. I’ll ask the dev team if they can fix that in the new version.
The other apps all show the Tablo names.
:-bd
I got really creative with my Tablo name. I named it Tablo so I’d recognize it on my network
I wondered when Jestep asked that as I had this “huh?” thought - I see the name of mine… but support just explained it perfectly.
Oh welI, I may just buy the 4-tuner Tablo and give the 2-tuner one away as a present to my parents. To bad I can’t get a loyal customer discount on the new one.
@pngwolffman, I’ll speak to my program, SurLaTablo.
0. Download http://endlessnow.com/ten/SurLaTablo/surlatablo-0.5-py-txt and rename the file to surlatablo.py. You will need to know where this file got downloaded to so that you can invoke it.
1. You need your Tablo’s IP address (I think you can get that from Settings)
2. You will need to have Python 2.7 installed on your computer (https://www.python.org/)
3. You will need to have ffmpeg installed (https://www.ffmpeg.org/)
4. (optional but recommended) You will need to have ccextractor installed (http://ccextractor.sourceforge.net/)
5. You can read the very long help, \python.exe surlatablo.py --help
Essentially you need to setup the SURLATABLO_ROOT=/, the location of a directory for the two cache files surlatablo will create (this is for speed, required). You will need to set you Tablo IP in the array TABLO_IPS = [ ‘’ ], you need to supply the path (preferably full so program can be executed from anywhere) for FFMPEG = /ffmpeg.exe and CCEXTRACTOR=/ccextractor.exe. All those variables can be place into a file called surlatablo.conf in your default home dir (the place you “land” directory/folder wise after logging in, Windows it’s usually C:\Windows\Users\, but I’m used a mulit-user network).
So in \surlatablo.conf (I’d use forward slashes instead of backslashes, else you’ll have to double them up since backslash is an escape char in the real world).
SURLATABLO_ROOT=
TABLO_IPS = [ ‘’ ] #notice the quotes
FFMPEG = "/ffmpeg.exe"
CCEXTRACTOR = "/ccextractor.exe"
If you get stuck, just post… I’ll do my best to remote troubleshoot.
Once installed and configured you can do:
/python.exe /surlatablo.py -q "McHale’s Navy"
Which will force cache of anything not known (which is everything on first run) and then it queries the local cache for the string.
To pull and convert the matches just add -c and optionally (if you have ccextractor) -C… so
/python.exe /surlatablo.py -q “McHale’s Navy” -C -c
By default the paths and files will be created underneath the current directory you’re at at the time of invocation, but it is all configurable.
You can add a ‘-n’ parameter to that last call to skip a cache refresh if you already know that what you are doing is know by the local cache. But you want to keep the cache refreshed as it will keep up with new recording additions and your deletions.
(so if you don’t mind the minor delay, just never do that ‘-n’ option).
SurLaTablo’s query and configuration controls are very powerful btw… interesting to some (like me)…
I’ve not even touched the real power, not even close to what it COULD do.
The initial call to surlatablo will cache every show on the device. Future calls merely show you the update (the additions since the last run or the deletions). That’s the first action it does unless the -n parameter is used. The first thing… update the cache (that is make the cache representative of what is on the Tablo (sur la Tablo)). If it’s the very first time run, the cache is empty thus you see every program recorded on the Tablo. The cache dbs are to make future runs fast and give the option of querying without update to make things even faster.
So… that default action isn’t meant to show what’s on the Tablo, only what has changed since the last run. And it’s more for debugging than parsing or use. The idea is you want an updated cache, then you can just use queries to do the pulls. By default, surlatablo will not overwrite what has already been written, so it will merely warn that it’s not going to overwrite which allows you to keep running it for a particular query (could be the query -q . which means everything) and if the -c (and optionally -C) options are given, every show not pulled and transcoded yet will be transcoded and saved.
My original goal really as for a more intentional query than “everything”, but certaiinly “everything” does work. Actually, the original history was just for queries, no transcodes, the program could produce rec_ids that could be piped into the pull and transcode engine, but obviously that makes things even more complex… though I regard the current program and even that original intent as being very trivial (but I know it’s going to trip too many people up… not everyone is a sysadmin/programmer type or wannabe).
In 0.7 (guessing) the -Q (query format) option will allow to specify file templates and not merely string template arguments for query results. This is the first step into make surlatablo something that is cli-able under a web server.
Though I think I’ve posted something like this before, try something like:
surlatablo.py -q meta_type~=TV -Q '${rec_id}\t${channel_sign}\t${channel_res_name}\t${video_durationh}\t${lair_date}\t${friendly_title}'
You can even add the -c (-c -C) option to that… you’ll just get the nice output prior to each transcode.
That makes sense since subsequent runs like that show that it’s deleting things from the cache that’s been removed from the Tablo device itself. If I deleted a recorded show off the Tablo then run that again, it shows that it’s also deleting that show and then shows what’s new since then.
I’ve not done much else with it yet but I used this a lot lately as I wasn’t sure I could trust what was being shown otherwise since the web app was refusing to connect no matter what devices I tried it from, so figured your script would at least tell me if certain shows really DID end up being recorded and if my last “delete” action took, which it did not according to your script! I tried to delete a recorded show and the Tablo was puking about that time - so did it get deleted or not? your script said ! so when I finally DID get back in I looked and sure enough it was still there. I deleted it (again) and this time your script resulted in a text file that said it was removing that recorded show so I used your script as verification and some troubleshooting since it got in and nothing else did. (nice to have a back door if nothing else!)
Guys, I’m just confused… I tried following your instructions and I’m not getting anywhere…