APL Tablo Client

https://www.tablotv.com/software-license-agreement/

You shall not reverse engineer, disassemble, reverse translate, decompile or in any other manner decode the Software except to the extent the Software is distributed with any Open Source Software that prohibits the imposition of such a restriction or to the extent the foregoing restriction is expressly prohibited by applicable law notwithstanding a contractual obligation to the contrary.

To whom and to what was this in reference to?

To anyone who reverse engineers, or reverse translates, or decodes and then discloses what would be a products proprietary or intellectual property.

Why?

Are you thinking that myself specifically or anyone on this thread are doing that?

Wouldn’t know what Nuvyyo considers are proprietary or intellectual property.

Or what decodes or reverse means.

Or, since they supply the stack, what part of the layout really is intellectual property of pixelworks/xcode.

When I got my tablo I specially looked for a EULA or “click here to agree” to be bound to some license agreement - NONE. Not even the upgrade, or the next.

IF YOU DO NOT ACCEPT THE TERMS AND CONDITIONS OF THIS AGREEMENT PLEASE DO NOT DOWNLOAD, INSTALL, OR USE THE SOFTWARE AND DOCUMENTATION AND PROMPTLY RETURN OR DESTROY THE SOFTWARE AND DOCUMENTATION.

They just politely ask you not to use it if you don’t agree… What if I ask if I could try it out first? I may be waiting for an answer as far as I know.

Section 3 references this now 404 link www.Nuvyyo.com/opensource !? I’ve pointed out tablo has lighttpd, “Open Source licensed under the revised BSD license”, which in part stats:

  • Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.

It’s redistributed… where’s it’s included copyright notice?

IF YOU DOWNLOAD, INSTALL, OR USE THE SOFTWARE AND/OR DOCUMENTATION, YOU WILL HAVE ACCEPTED AND AGREED TO THESE TERMS AND CONDITIONS.

I needed an exemption to make a final decision, that was in agreement for my money they accepted :neutral_face:

I apologize, got sucked into another thread hijacking.

APL Tablo is awesome already, by the time it’s “released” it’s bound to be amazing!

1 Like

You will find that version .10 offers show filters that include Pilot, so you can find anything on your Tablo that’s a Pilot, I hope you will find the other tags available useful as well

1 Like

You sir, are my hero! Thank you so much. I like the other tags as well.

These aren’t sort options or considered “tag” Season 1 - Episode 1, would equate to pilot… generally.

It appears tags aren’t specific to the “object”, of course, it’s just a record of the “series” and it only premieres once same for new. These would only apply to type series then individual episodes. APL Tablo doesn’t show the schedule for the shows… currently.


How do you remove something from being blacklisted? I sort on scheduled and :heavy_check_mark: show blacklisted. I’ve got one N, there doesn’t seem to be an option to remove it. I’ve moved down the list NG,G all just allow me to Add.


When a shows status is Recording, it’s size is always 1K, no matter how long it’s into the process, refresh or restart it’s size is 1,024 — but I know it’s not
Recording in process - does it protect the user from themselves. If I inadvertently click export while a recording is in process, will it let me know it’ll be flubbed up? Am I sure I want to continue kind of warning (I didn’t want to find out for myself).

version APL Tablo .10 has no console output! Clarify this has nothing to do with function. When I launch the jar I’d get lines of [info] status or update. Now - nothing - not even initial APL Tablo .10

Other than I don’t like it, I guess it’s my problem. Cleared APLTablo.log and there’ nothing there either, now that’s a shame.

###Log4J Settings
log4j.logger.com.apl.Tablo=info
#log4j.logger.com.apl.controllers.Functions=info

log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] %m%n

log4j.appender.FileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.FileAppender.File=APLTablo.log
log4j.appender.FileAppender.MaxFileSize=5MB
log4j.appender.FileAppender.MaxBackupIndex=1
log4j.appender.FileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] %m%n

log4j.rootLogger=error, Console, FileAppender

Not that I recall changing anything, but is this where I can set to debug?

Tags are specific to an airing of a show, so some airings of a show may be new, while others are not, some might be a series/series premier, while others are not…

You currently have one option…go into the DB and remove it manually…how you say?..well, that’s a bit more difficult…it’s an SQLite DB, so you can use any DB client you would like…I personally use
https://dbeaver.io/download/
…when I finish building out the GUI, I’ll have a ‘Manage Blacklist’ capability that will allow you to remove shows/genres from the blacklist.

I agree…the information I’m presenting is what the Tablo is presenting to me…it’s almost like they wanted to provide a ‘hey…something’s here, but I don’t know how big yet’ type of thing…I’ve considered leaving the size blank while the status is Recording, because Tablo’s not giving me ‘actual’ info on how big it is, so I would almost prefer to not show anything than the 1k that it gives me

That’s the weird part…it might not actually be flubbed up…so, I’ve done exactly that, told it to export a show that’s currently recording…what I found is that it ‘catches up’ to live, and continues exporting as long as the stream is good…so, in theory you COULD start exporting something before it’s done, and it should be able to export it and catch all the way to the end and then when the stream is over, it’ll stop streaming/writing…and you should have a complete file :slight_smile:

I knew I was forgetting something when I packaged it up this morning. I’ll fix this in .11, but you can fix it for yourself now. In the APLTablo.properties file, replace

log4j.logger.com.apl.Tablo=info
with
log4j.logger.com.apl.MainApp=info

I did some major re-writing of code and moving things around between .09 and .10 and eliminated the ‘Tablo’ object altogether…so the main class is now MainApp, where I store all of the goodies…so the logging needed to change to the new one as well…sorry I forgot about that when packaging it up this morning.

Relatively minor, yet a what a PITA :slight_smile:
Does this line

log4j.rootLogger=error, Console, FileAppender

set logging/verbose level? ie) info,warn,error,debug


SQlite DB directly editing isn’t a big problem, for now. I’d toss in DB Browser for SQLite, it works across multiple platforms, it’s intuitive, let’s you brows data and directly edit. It’s designed for users and developers.


As for exporting a recording in process, ffmpeg never reaches an EOF, so why would it stop… just the same as recording OTA, or -i http://file.over.slow.inter.net It doesn’t really care at what rate the segments arrive (well I’m sure there’s some cut-off).
Because I can stream an “in process” recording via the playlist URL.

Ok here’s-the-thing, if user does start to export, not noticing it’s still recording, and thinking in a few minutes they’ll get another… will you indicate that they are about to export a recording in process and it may take until the set time the recording is finished to before you can shut the program down :neutral_face: ?

Really?
image
a genre maybe, a show?!? I’m not sure it’s worth trying to cross reference that.

oh no! Airings worked earlier. Condensed version

 [INFO ] Starting: tablo all airing list
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
...
Caused by: org.json.JSONException: JSONObject["/guide/series/episodes/137418"] is not a JSONObject.

$ http tablo.lan:8885/guide/series/episodes/137418
HTTP/1.0 404 Not Found
content-length: 106
content-type: application/json

{
    "error": {
        "code": "object_not_found",
        "description": "No episode found with specified id.",
        "details": 137418
    }
}

I suspect this occurred when a show gets deleted and the shows list isn’t updated? I relaunched, opened Shows the Airings and was alright.

You can set debug either in the line you replaced at the top, that ends in =info, or you could change the line at the end from error to debug…additionally, if you didn’t want to log to console, you could remove Console from that last line, and the logging would only go to the log.

No problems at all…I choose DBeaver because it works well across ALL db’s that I need to work with, both personally and professionally, so it’s easier to have a single client for work and play :slight_smile:

I decided to block the export of recordings till they are ‘Finished’…it’s just easier that way

Yea…so, I just finished building delete from Blacklist into the show list, so you won’t need to deal with that much longer…I could tell you what that hash is, but you probably don’t care, and it’s not important, now that I have it in the GUI :slight_smile:

So this happened when opening shows or airings? I’ll need a bit more detail on what you think happened in this scenario so I can track and trap this error.


Just “kicking the tires”. Seems I cut the title bar, top All Airings, tags = premiere | Shows, tags = Premiering. So these are two (2) completely different tags, for what ever reason.

I have 6 “shows” premiering, but they don’t give that option to find out when it airs… because it’s not a premier? Not sure if this is what you get from tablo, or trying to make the most of things. (to me, it’s not be a big deal - just say’n)
As with tags, they appear vague and general as to how it’s decided what 's used…


I had opened Airings. I suspect a show had been deleted or otherwise removed. It looks like it was trying to find a show/episode that doesn’t exist. Refreshing up shows list, maybe cleared it up. I haven’t done it again. Just to see, I open airings first when I start it up, just in case.

So, the tags, other than pilot are being retrieved from the Tablo, the other premieres are likely season premiere and series premier, which will be a different tag on the airing list, the next version has the ability to drill to the airings from the show list, so this sort of thing will be a bit easier to see

1 Like

Just uploaded .11. This version finally has the ability to modify schedules directly from inside the app…something I’ve personally been looking to be able to do for months

2 Likes

This thing just keeps getting better! It actually does what we want/need it to do. Actual schedule. Listings, and can now schedule without have to individually going through all the tiles/pictures one at a time.

2 Likes