OMG how embarrassing...I must've been half asleep when I made this post because I completely forgot about it until coming here today to see what's going on with epCheck and saw your reply. My apologies.
I have a question about TVmaze: how easy/difficult would it be to add as an option to use the TVmaze API? I mean in addition to TVDB, as a selectable option. I'm gonna go out on a limb and say it's probably not trivial, but I'm interested to know.
The main reason is that often for very recent episodes, TVmaze has the correct info, i.e. ep title and airdate sooner than TVDB. Occasionally it's the other way round but I find I often have to check their website when something doesn't match up.
This a bit disjointed to explain, so let me preface it a bit:
- I'm not a huge fan of most web-browser based interfaces. Some are awesome, though.
- I like to think that I have a decent knack for desktop interface design.
- I enjoy working with standard REST/SOAP APIs such as TVDB, OMDB, ChartLyrics, Subsonic, etc. Most of these APIs return data in XML or JSON format -- I can easily work with either.
- I enjoy making desktop apps for said APIs (frontends, basically). A lot of the programs I've written are exactly this type of application. Ask mouser...I have something of a listview fetish.
I'm also not a fan of browser-based interfaces, I much prefer a well crafted software solution, like epCheck! You do have a knack for design. It's looks good and it works. Simple form, simple function.
So, that said, working with the TVmaze API wouldn't be any easier or harder than working with the TVDB API. It's a matter of figuring out the particular endpoints you need for the data you want. However, it gets tricky when you want to combine multiple APIs into one interface. Namely:
- You have to put up with the extra time it takes to query multiple websites. This is more time-consuming than you might think. Something as simple as adding a show becomes more complex. Multiple searches for the show name, multiple user confirmations, and, now, multiple show IDs to deal with for a single show. Because the show IDs are not going to match between sites, you basically have to maintain separate sets of data for each API you're dealing with. It gets to be a [email protected]#$ really quickly.
- You have to put up with potential API changes on multiple fronts now.
- What if one (or more) of the sites is down?
- What if one (or more) of the sites goes down permanently?
- Which database's information takes precedence for a given field?
- I often pay out of my own pocket for premium API access in order to make my apps better for the end user. Faster API response times, more allowed API hits per day, access to more data, etc. While I'm gainfully employed and writing freeware is a hobby, this type of investment is not insignificant. Think hundreds of dollars per year across all the apps I've written that use APIs. More APIs can mean more costs.
Indeed, all of this can be dealt with, but, as you can imagine, it can be a bit of a hot mess at times. I really hope some of the above helps to clarify things.
I take your points, but I can only understand them from a user, not developer perspective, so forgive me if some nuances are lost on me. I suppose my question has suddenly become more relevant than ever with the shitshow that was TVDB's API change. It would have been fantastic to have a "switch" that could've shifted all the enquiries to TVMaze.
Again, not a dev so if my points sound lame, uneducated, clueless etc then I'm sorry, I'm just spitballing from a "wishlist" angle. I would love epCheck to have a function where you select your primary API and a secondary API, or leave it as is for tvdb and never touch the switch. I suppose it would have two create two separate DBs, because as you said, which DB takes precedence for a given field? Also, show IDs not matching etc. Perhaps it could be implemented via the profile function you've already implemented. Or maybe it couldn't work that way, I don't know.
However, I guess as a user, I would LOVE to have that choice! Wait times, hard drive space etc are trivial matters. I wouldn't mind the extra time getting the two DBs setup initially. You could work off the primary and periodically refresh the secondary or just leave it until disaster strikes like it has now. There are certain shows I follow that I would probably check both weekly because often the data is different and was the reason for my initial enquiry.
I didn't realise you paid for these APIs out of your own pocket; that alone is reason enough to say "not gonna happen bud". I appreciate this even more now.
Bonus question: Have you ever considered open sourcing the project to Github or similar?
Nope. There's really no voodoo or magic going on here. It's simple API calls and munging the returned text into an interface.
The reason I asked has, again, kind of become more relevant now. If other devs had access to source, and more time on their hands than you, they could tweak, merge code, handle pull requests, etc. At times like this, maybe it would be good to join forces with a colleague/peer that could help out. If I could code, I'd do it in a heartbeat.
I saw someone here mentioned DuckieTV. My extensive searching eventually brought me to Duckie and I've been using it for a few days. It's good not great. It's too "web browser-ey" for my taste and it has too much dynamic zoom in/zoom out action going on but once you've got your shows in (I've barely even scratched the surface, I had over 1800 shows in my epCheck DB), and switch to a weekly view, the list is easy enough to use.
One feature I REALLY, REALLY like that I would dearly love implemented in epCheck (pretty please with sugar on top, once this API thing is fixed) is an extra check box for "Mark as Downloaded". It would be so good to have that instead of just mark as watched. I end up using that box as a downloaded check because it may take me years to get to get around to watching something! I need the daily/weekly view, the one I work with most, to be more meaningful as a "yep, ok, got that ep" checklist.
So Duckie is fine as a temporary measure but I much prefer epCheck and it would be wonderful to have it functional again. I have backed up the myshows.txt and watched.ini files but the DB itself is ruined as any attempts to update after things went belly up essentially wiped it clean, at least from an in-app perspective. All the folders and their contents are still there, they just show up blank. All that's left is a list of shows. I hope when things are resurrected that a full refresh will bring it all back as long as all the original files and folders are still in place. *fingers crossed*.