Skip to content
Fetch your personal data from Trakt.TV with metadata from TMDB
TypeScript
Branch: master
Clone or download
Latest commit e5f42a7 Jul 29, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
.nvmrc
.prettierrc
.travis.yml
README.md
package.json
tsconfig.json
tslint.json
yarn.lock

README.md

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.

You can’t perform that action at this time.