Gestdown is a small project in C# and VueJS 3 made to provide an API and search capabilities to Addic7ed.

The idea

This project started from a desire to have proper subtitles for my media center. My partner and I love to be able to rely on them occasionally when watching shows. You know when that actor is a little bit hard to understand or just you want to be able to munch while watching 🙂

The problem

Addic7ed is one of the best source for high quality subtitles but it doesn’t provide any kind of API. This make it complex to integrate with different media center/subtitle providers (like Emby, Plex or Bazarr). Each of those systems need to implement their own way to query, parse and return subtitles matching the different downloaded episodes.

Moreover, with all those applications querying often the poor PHP (based on an old wiki engine) website, it is down quite a lot, overloaded by all those bot’s requests that rarely implement proper backoff or caching.

This is bad experience for the Website user, and for the users of those applications.

The solution

One API with proper caching of the data of Addic7ed proxy. The idea is simple, having only my website/api take care of querying addic7ed and parsing it’s data while providing an easy to integrate API for others.

API

I first build the API (full documentation available on Gestdown), it’s fully documented using Swagger (OpenApi 3.0). Quite easy to use, two main endpoints, one for searching for subtitle for a specific show, the other to download said subtitle.

Website

I realized, I needed to showcase the ability of the API (and to challenge myself to reuse VueJS) ; hence I build a website : Gestdown. There you can easily search for your favourite show and find subtitles for them.

Keep in mind, currently the cache is quite empty, it will take some usage of the API to have the full 6k shows in my db but I provide an easy way to refresh shows directly in the UI. It’s also done automatically by the API when the needed information can’t be found.