Skip to main content
Community Plugin
View plugin on GitHub
See starters using this

gatsby-source-trakt-tmdb

This source plugin for Gatsby fetches personal statistics from Trakt.tv and optionally enhances them with metadata from TMDB. This can be used to display a list of watched movies and series with their respective posters.

gatsby-source-trakt-tmdb is compatible with gatsby-image so you can easily optimize posters and backdrop images during build time.

Sample Query

query {
  allTraktWatchedMovie(
    limit: 6
    sort: { fields: last_watched_at, order: DESC }
  ) {
    edges {
      node {
        last_watched_at
        movie {
          ids {
            slug
          }
        }
        tmdb_metadata {
          title
          poster {
            localFile {
              childImageSharp {
                fluid(maxWidth: 300, maxHeight: 450, quality: 90) {
                  ...GatsbyImageSharpFluid_withWebp
                }
              }
            }
          }
        }
      }
    }
  }
}

If a Trakt.tv movie or show doesn’t have a TMDb id yet, which could be the case when a show or movie is new, tmdb_metadata will be null, so make sure to check it before using it.

Configuration

To use this plugin, you have to obtain API keys for Trakt.tv and TMDB:

{
  resolve: `gatsby-source-trakt-tmdb`,
  options: {
    traktApiKey: "TRAKT_API_KEY",
    username: "YOUR_TRAKT_USERNAME",
    tmdbApiKey: "TMDB_API_KEY", // optional, to fetch metadata
    language: "en-US" // optional, language for metadata (e.g. titles)
    limit: 10 // optional, number of items to fetch per category
  },
},

Try to keep the limit below or at 10 items per category (40 items in total) to avoid rate-limits by TMDb. Limit can also be an object providing individual limits for each Trakt category:

{
  limit: {
    watchedMovies: 6,
    watchedShows: 6,
    watchlistMovies: 6,
    watchlistShows: 6,
  },
}

Contributing

As this is my first source plugin for Gatsby, I think it has room for improvement. If you’re interested in contributing, please feel free to open a pull request.