A GraphQL API built on top of the TVDB v4 rest api.
Having a GraphQL API on top of the REST API allows for more flexibility and ease of use. For example, you can query for multiple resources in a single request, and you can get only the fields you need. Additionally, new capabilities like finding the next episode of a series is added, which is not available in the REST API.
A currently deployed version can be found in https://tvdb-graphql-api.sabith-th.vercel.app/
Install dependencies using pnpm:
pnpm install
Run a local development server:
pnpm run dev
Build the project:
pnpm run build
Run production version:
pnpm start
Before any requests can be made, you need to login and obtain a Token. For logging in you need a TVDB account. Once you have the necessary credentials, you can make a login mutation request and get a token.
mutation LoginMutation {
login(auth: { apikey: "XXXXX" }) {
token
}
}
Once you have the token, you need to pass the token in the header of all your requests.
{
"authorization": "TOKEN"
}
You can then make requests to the API. For example, to query for a series by its id and get back information like genres, characters, and the next episode, you can use the following query, with $seriesInfoId
being the id of the series you want to query for:
query SeriesInfo($seriesInfoId: Int!) {
seriesInfo(id: $seriesInfoId) {
series {
id
genres {
name
}
characters {
name
isFeatured
personName
image
}
overview
}
nextEpisode {
aired
name
overview
runtime
}
}
}
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.