Multiple Tablos on the same network

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.

So my question is what happens if I buy another Tablo and put it on the same network? Do I have to select a certain Tablo on start-up or does just choose it automatically for me depending on the availability of the tuners on my 2 units? Can I connect two Tablos to a single hard drive to keep the recorded shows in one location? 

I’m not sure how it works but I’m curious because I’m seriously considering buying a second tablo so I can record more programs. 

@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?

Yeah, well answered - they can’t share a drive. It’s already so complex that if you swap drives the Tablo can’t take what’s on one drive and shift it to another. Apparently they track the low-level drive information as far as exactly what is where, 
makes sense since Tablo has an OS of it’s own and needs to keep track of the file system like any other OS.

@pngwolffman - It’s totally possible. You should see the list of Tablos on our local network at the office! :) 

Some folks who run multiple Tablos assign a certain box to a certain family member or assign one to the kids and one to the adults. Doing something like that will make managing your recordings and knowing what shows are on which box easier. 

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 :wink:

@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. 

UPDATE: Confirmed with the Roku powers that be that IPs are out and Tablo names are in for the new Roku interface  

And @shadowspapa - That’s the benefit of working at the company. Tablos for everyone! 

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.

@TabloTV - Is there a way to copy the videos I have already recorded to some format on my PC? I hate to loose everything when I switch over.


SurLaTablo or tablo2go


SurLaTablo or tablo2go

Thanks! How do I use these?

@pngwolffman, I’ll speak to my program, SurLaTablo.

0. Download and rename the file to  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 (

3. You will need to have ffmpeg installed (

4. (optional but  recommended) You will need to have ccextractor installed (

5. You can read the very long help, \python.exe --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).

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   / -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  / -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. 

This simple line lists your Tablo current content to a text file:

c:\python27\python > current-shows.txt

My python app is installed in- gee, c:\python27. I run this command from the surlatablo folder and redirect the output to a text file. 
My script is in this path - C:\apps\SurLaTablo
I’ve created simple batch files to run common commands so i don’t have to remember things I may do more often. I can simply edit the batch file if anything changes. 

This is the output of that command above - 
Mine shows where the script is apparently removing deleted shows from the cache, then it lists al the current shows on the device:

TV Series/Program 14177
  The High Chaparral - s04e09 - The Forge of Hate
TV Series/Program 16491
  Scorpion - s01e15 - Forget Me Nots
TV Series/Program 14359
  Daniel Boone - s01e21 - The Devil’s Four
TV Series/Program 18555
  NOVA - s42e03 - Sinkholes — Buried Alive

You can tell my wife has programmed her stuff into it- westerns.

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: -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…