API/interface to pull recorded show listings, metadata, and files off of the Tablo

@ShadowsPapa - The scripts are not performing any transcoding so the video is retrieved from the tablo, combined into a single file (they are stored as many files on the tablo) so the resolution you are seeing is what the tablo recorded it as.  You may want to check the settings page on the tablo and enable HD (if it is not already). 

HD 720P – Roku / Chromecast

Is that what Mr. Kenney is saying?

You may have hit upon why the recordings pause and go into buffering mode now and then - it’s trying to grab the next segment. I can back it up 20 seconds, drag the slider back and forth and no matter what tonight it was stopping and going into long-term buffering mode ALWAYS at the exact same spot in the show. thanks, you just gave me more information to help troubleshoot an issue so very and totally not related to your script.
We now return to the original topic…

Hey, I’m not going to complain - having such easy access to recordings is a big deal to a lot of us and the resolution is secondary at this time for me, maybe even terciary! 

First off I love the script.  I ran it the first time and it downloaded all my tv shows (about 40 of them).  Now my question:  after it completed it goes back to the “c:\python27>python tablo2.py” prompt.  So I hit enter at 10PM today and it downloaded 2 more tv shows for me.


How do I keep this script ‘running’ all the time so that it gets the new tv shows?  Or is this not how it was meant to be used and should be scheduled instead at specific times?

Thank you.

It should be scheduled, and best done well after the final recorded show of the day or time period as it’s safer, IMO, when Tablo is not writing and updating things. at least that’s my generic database experiences, unless we are talking SQL and that’s a totally different animal than this flat file setup.
I did some testing and found in general these scripts can’t always access certain things while they are actively being written to. 
It’s not meant to keep constantly grabbing stuff as it comes in in order to sync with other storage.
So in short, it’s not a sync script, it’s a grab what’s there or what’s new since last time script.

If you want to use it more to keep ALL recordings on another storage device or media server, best to schedule it.  

Makes sense… thank you for the feedback. I’ll schedule it at midnight every night.

@computer33 , @ShadowsPapa


There is an option ( -a ) which allows for the script to continuously run, with a delay between checks.

I recommend a command line like

python tablo2.py -a -db:tablo2.odb 

which will run the script, waiting 1800 seconds between runs (30min), and using a simple caching database (in this case named tablo2.odb) so that information that was already downloaded does not need to be downloaded again.

As a side note, if you type

python tablo2.py -help

you should receive a list of all available options (and their defaults), and if you are comfortable editing the script you can set the defaults to what you wish them to remain by looking for the portion starting with OPTIONS = 

If you want to schedule this process, I still recommend using a cache database to save time.

https://sites.google.com/a/moboard.com/tablo/

jskenney WOW… you thought of everything :  )   thanks.

Maybe I’m missing the point or need, but why would someone want or need (stressing need perhaps) to run this in what I’d consider synchronize mode - why would one need to keep the recordings copied off Tablo at near real-time speeds?

For what purpose? Obviously there is some “need” but it’s hard to envision unless there are so many stations nearby to record from you can’t watch and record them all at the same time or something along those lines? 
Some files are “in flux” while recording and right after a recording so running constantly would seem to be problematic - I suppose that’s the cache purpose, but you still have to update that or you’d soon be very far behind. 
Not criticizing, but asking - why would one need to keep all of the recordings off the Tablo elsewhere at such a frantic pace or rate? No patience for waiting an hour or so to have it on a media server?   

PS - @jskenney - as always thanks for the very helpful tips!

:)>-

@ShadowsPapa , it all comes down to the use case, my setup is rather extensive.


Quick note: tablo2go will not download a file that is currently recording.

I have multiple TiVo’s and 2 Tablos (OTA TiVos will be removed as soon as the tablo folks add multi-channel audio), but I really never watch tv live.  So I have them set to record all of my shows and any new show that is premiering, after a show is recorded it is downloaded and added to my plex server which is actually how I watch tv in my house.

My process is:

I have kmttg running which will download the files from the TiVo’s, compress them, and place them appropriately

I have tablo2go running which checks to see if the video has already been downloaded (from the TiVo or the Tablo’s - hense the -kmttg option) and via the -delay option waits for 6hours before downloading from the tablo (just in case the TiVo hasn’t got to it yet) then places the video on my storage array.

Plex checks hourly to see if anything has been added and updates it’s databases.

I tend to watch tv lightly, then binge watch on bad weather days, so having a lot of old tv is nice.

@ShadowsPapa, I I think this set up is perfect for those who don’t want to watch recordings via Roku. The only time I use Roku, is in the rare instances when I have to watch live TV. I usually don’t watch Live TV, because I hate commercials. This route gives me the quickest access to my recordings without all Roku issues (Loading, skip forward, skip back, FF, etc).

Maybe, my set up will change after the new Roku design launch.

TabloTV, what’s the status of an official app for downloading recordings? I noticed it isn’t mentioned anymore in the FAQ section, but this feature has been promised since launch as coming.

I tend to watch tv lightly, then binge watch on bad weather days, so having a lot of old tv is nice.<<


Same here…you have given me some ideas, as has Krissy. I “get it” now and see how that could be of benefit under those thoughts and conditions. Thanks for the explanations and ideas.

So far it’s been working well except a few times the Tablo froze and I had to restart it. It happens less frequently now that there is less content on the hard drive. I am stuck with one problem. I scheduled a few manual recordings to cover shows that start too early. The recordings don’t download and they don’t show up in the list. Is there something I should be configuring differently?

@HarryR , I hadn’t considered manual recordings, I’ll look to add an ability to download them in the next update, but there will be next to no metadata associated with them, other than airdate, length, and what you named it when you created the manual recording (which is really all that is provided by the tablo…) 

@jskenny That sounds like all that is necessary. Thanks for your reply. I thought I had missed a trick.

sounds great since many of us will be doing more of that to compensate for late times due to “live events”.

@HarryR , @ShadowsPapa , I had a few minutes so I modified the script to handle manual recordings.  Version 2.0.56 has been posted.  Manual recordings are handled as movies now, with the title you gave them and the date they were recorded.  Not sure if this is the best way to handle them, but it works until I work on the next version of this.


Hope that helps.

Cool! I’ll give it a try when I get a chance. Thanks.

Windows user here, new to python, etc.  I have python, ffmpeg installed, and am editing jskenney’s latest script (defaults).  Can anyone lend some basic instructions for how and where to install mutagen?  I assume I download the latest version?  I found the downloads on the site, but a bit unclear on how and where to install it.  Thanks much.  Thanks jskenney et all for your time into this.

@dean5417, you should be able to “pip” install it.  Essentially something like, pip.exe install mutagen.  I’ve been told that if you have a 2.7 or higher version of python installed, somewhere in all that is the pip.exe.

(I’m a Linux person myself)