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