Powershell API/Script to download files from Tablo

I created this since I bought a Tablo to Record and Post Process tv since my trial with the HDHomeRun wouldn’t easily do what I wanted. Also Tablo hasn’t made a official way to download shows natively.

The two threads below inspired me and gave me a good place to start along with code samples

I tried dabbling with the python script and to be honest I couldn’t make it work so I rewrote the portions I needed in powershell to fit what I needed to do. Aka Download the recordings and assemble them into apprioate formats and post process them with MCE Buddy/ComSkip and add them to plex :smiley:
The full post process description along with all the scripts is over on Reddit - reddit.com/r/PleX/comments/3gagqv/the_ultimate_media_system_with_plex_as_a_headend/

The Powershell post Processor script is available on github: https://github.com/creamers/Tablo-API-Powershell


  1. Get available recordings via IDs
  2. Check if they are finished and have correct Metadata and they haven’t been processed before
  3. Add to CSV Database
  4. Download all the .TS file segments
  5. Use FFMPEG and concatenate the files together
  6. Clean up after the script and continue the foreach till it is done.

Its not really a database but a CSV with alot of information in it, to make the process go on forever I would get a small external hard drive and set the Tablo to delete recordings once it runs out of space.

Sadly this is slow due to the tablo not providing fast enough read speed to transfer the files and if I did the files in parallel I would make the attached external drive move the read head to much and cause it to slow down even more.

I hope this helps someone and you can get some use out of it, also I had to hack up the links since the forum won’t let me do more than one link currently.


Edit: 10-03-2015 on the suggestion of @Kevin the script will now check for file names and append the date and time if the file exists for rare cases of the script being fed the wrong information from the Tablo.
The script will now process movies from the Tablo and name the file accordingly for Plex to index it.

@TabloTV Please let us know a status on a official downloader we can use to avoid interfacing through scripts

This script works great and is very clean. :slight_smile: Great work! Do you happen to know how to remove the show from the Tablo once it has been downloaded? I can’t seem to find that anywhere, so any help would be appreciated,

Thanks in advance!

Its possible to do - http://www.superhac.com/tablo/#tablo-client-verifier

Though I tried to play around with it and I was unable to get it to work, getting data is easy for me. Posting it through a web call is another challenge. I would suggest setting it to auto delete recordings and or deleting recordings every so often.


I have just setup this script, and I ran into an interesting problem. I set the tablo to record two back to back episodes of ‘The Adams Family’ The Tablo did not identify the episode, instead it named both episodes “The Addams Family - The ghoulish adventures of Gomez and Mor”. Your script processed the first file just fine, but the second file, which was named the same as the first was left in the ‘TV Shows\tmp’ directory, presumable because the file exists. I am worried that when a third episode is downloaded, it will just overwrite the second file. May I suggest adding the option to append the date and time to the end of the file names to handle when the season episode information is not in the EPG. Thank you.

Other than that, it is running flawlessly. Great work.

It sounds like Tablo has the metadata wrong for the episodes.

This is the string to name a TV episode
$FileName = $ShowName + “-S” +$JSONEpisode.seasonNumber + “E” + $JSONEpisode.episodeNumber

So it would be “The Adams Family” plus the S# and then Episode#. I’m not familiar with that show but it named it with “The ghoulish adventures of Gomez and Mor” it considers them the same episode. I just published a new version a few minutes ago and it has built in exceptions that a user can specify to name it by air date and such it will overwrite on duplicate file names.

I took your suggestion and added the logic to not stall on existing files but instead append the date in this format (HH:MM-yyyy-mm-dd)

Also I updated the script to process movies from the tablo now.

Let me know if you see any other room for improvement and sorry for the late reply.