Try 30 days of free premium.

Offer to help further develop API to provide user-centric show information

nzmike wrote 9 years ago: 1

Hi David (and whoever else of you wonderful people who develop TVMaze)....

Like everyone else that uses the site I am truly appreciative of what you have created and what is on offer but I am finding the API incredibly limited due to not being able to access or update any of my personal show information and was wondering if you need another pair of hands to help develop this sort of functionality. I love what it already does but to me the API really needs to deliver user-centric data to be really useful.

Now I don't know what it's coded in but I'm a C# developer and have 10+ years experience coding, including developing API's, web services, object oriented architecture, etc, etc so I think I'd be well able to help. Even assuming it is not written using .Net I'd still be happy to have a crack at helping out if you were keen. (What is it written in just out of interest?)

Re authentication of users during API calls, I can't see that adding a basic layer of security to validate a user request would be difficult and perhaps it could be as simple as using a static token assigned to each user when they sign up, just like the calendar one. Then it would just be a matter of adding perhaps the username and the token to each API request that requests (or updates) personal show data (i.e: my shows, eps watched etc) and if it's not valid for the user then return an error as you currently do for an invalid API call. Perhaps this may be too simplistic but since the site is not holding any sensitive information (and pretty obviously is never likely to) I'm pretty sure this would suffice - personally I'd be very happy using this basic level of authentication. For example, to get a dataset of all the shows I follow you could use something like this:
http://api.tvmaze.com//followedShows?user=nzmike&token=Mr5bUCTt5WIDjiwpZHa37NIWW977blRr

To give you an idea what I'd like to see, I am writing a Windows 10 Universal app to be able to keep track of my shows, see information about them, see when they are airing next, update episodes, follow new shows, etc. (Btw, this is just for me and I don't plan on selling it though I could potentially make it available for TVMaze users for free.)
I know the website does all this but the whole reason for any API is to divorce the reliance on one platform - in this case using a web browser and having to constantly load the page, log in etc.

As a starting point, I'd like to see services to do the following:

1. Followed shows - as example above, returns a dataset of all shows followed:
http://api.tvmaze.com//followedShows?user=nzmike&token=Mr5bUCTt5WIDjiwpZHa37NIWW977blRr

This is the really big one and even just this would make the API so much more powerful. At present I have to follow the show on the site (to get the show to appear on my calendar) and also add it from my app by requesting the show via the API.

2. Follow a single show: I'd use the API to find the ID for the show (eg: 29 for Vikings) then send a request such as:
http://api.tvmaze.com/followShow?id=29&user=nzmike&token=Mr5bUCTt5WIDjiwpZHa37NIWW977blRr

3. Update a watched episode for a show.....
http://api.tvmaze.com/updateWatched?id=29&season=1&episode=2&user=nzmike&token=Mr5bUCTt5WIDjiwpZHa37NIWW977blRr

...or even simpler, provide the episode ID (e.g: 618780 for 4x06), showId or season Id :
http://api.tvmaze.com/updateWatched?showId=29&user=nzmike&token=Mr5bUCTt5WIDjiwpZHa37NIWW977blRr
http://api.tvmaze.com/updateWatched?seasonId=29350&user=nzmike&token=Mr5bUCTt5WIDjiwpZHa37NIWW977blRr
http://api.tvmaze.com/updateWatched?epsiodeId=618780&user=nzmike&token=Mr5bUCTt5WIDjiwpZHa37NIWW977blRr

4. Download the calendar of my followed shows in a format that is easier to use than iCal:
http://api.tvmaze.com/calendar?user=nzmike&token=Mr5bUCTt5WIDjiwpZHa37NIWW977blRr

Anyway, you get the idea and I'm sure you have a roadmap for doing this stuff but the offer is there if you need help to develop it - I would be very happy to give back to the TVMaze community as it is by far and away the best TV tracking platform I've come across.

And lastly, apologies for the length of the post - if you've got down to here then my thanks for reading it all. :-)

Mike


david wrote 9 years ago: 1

Hey Mike,

First of all thanks for all your kind words, they're much appreciated! Unfortunately I don't have time for an extensive reply right now, so allow me to keep it brief.

Your offer of helping out with expanding the API is very kind, though we couldn't take you up on it right now. Introducing a new developer to our codebase, code style, infrastructure, etc would require a lot of initial effort on our end (time that we don't really have right now) and only start to pay off in the long term.

A couple of features you suggest might be in the pipeline though. I actually proposed a JSON version of the iCal endpoint a while ago (http://www.tvmaze.com/threads/36/user-specific-schedulecalendar#515) but nobody took us up on it until many months later. There's been more interested in it since, so I hope to get back to this in the future, just like #1.

Write actions (#2 and #3) in the API aren't on our radar right now, but I'll remember your interest. :)

nzmike wrote 9 years ago: 1

Thanks David - disappointed I can't help as I'd have been happy to take on your environment and learn as needed.

I've got to be honest and say I'm very puzzled as to why API write actions are not really even on the radar as this seems to be something that is readily achievable... if it is doable on the web site I'm not sure why it can't be extended to the API just as easily. Naturally I am unashamedly pushing my own agenda here but I have seen quite of lot of posts asking for a more powerful API so again, not sure why it is not even being considered.

I understand the website comes first but some of the things being upgraded or implemented seem to me (again, only my 2c) to be mere bells and whistles compared to what could be offered with a write-enabled API. I did see the other thread you referred to and I note people in that asking for similar things I've suggested.

Anyway, I fully appreciate you guys do it for the love of it (and do a superb job) and whilst I'm disappointed I will cross my fingers for at least #1 in my list to be implemented sooner rather than later. In the meantime I've written some C# to parse the iCal page into a "CalendarEntry" class so I'll post another thread with that code for anyone that wants to use it.... it's basic but it works perfectly for me and am happy to share it.


david wrote 9 years ago: 1

There are a lot of reasons, but primarily we're just really busy, with a lot more requests than manpower. So we choose to focus on specific areas instead of spreading ourselves too thin :)

Try 30 days of free premium.