Skip to content

getaugur/better-trakt

Repository files navigation

Better Trakt

GitHub license npm

A Trakt.tv client with native Typescript support and quality of life features

Features

  • 🖵 Browser & Node.js support
  • 🔒 No auth lock-in
  • 👥 Able to handle > 1 user 1
  • 🌲 Tree Shakable
  • 🌐 Trakt specific http errors
  • 🏗️ Built with TypeScript

Install

# npm
npm install better-trakt

# Yarn
yarn add better-trakt

# pnpm
pnpm add better-trakt

Usage

import { Trakt } from 'better-trakt';

const client = new Trakt({
  clientId: 'client id',
  clientSecret: 'client secret',
});

// get every movie a user has watched
const watchedMovies = await client.users.watchedMovies({ userId: '1234', accessToken: 'abcd123' });

// get the summary for the show with the trakt id of "1"
const show1 = await client.shows.summary('1');

More examples in the examples folder.

Compatibility

✅: Full Support | 🚧: Partial Support | ❌: No Support

Runtimes

Runtime Supported
Node.js
Browser 2

Trakt Api

(All namespaces are planned, this is just what's currently supported.)

Namespace Supported
Authentication - OAuth
Authentication - Devices
Calendars
Checkin
Certifications
Comments
Countries
Genres
Languages
Lists
Movies
Networks
People
Recommendations
Scrobble
Search
Shows
Seasons
Episodes
Sync
Users 🚧

Docs

Docs for the latest release can be found at https://getaugur.github.io/better-trakt/. For a more complete understanding of the api in general please visit https://trakt.docs.apiary.io/.

Getting Images

As described in the offical docs, you need to use 3rd party APIs. Listed below are some libraries we recommend using, all of which have typescript support:

⚠️ Alpha Notice

Until beter-trakt reaches 1.0, there may be breaking changes in new minor versions.

Footnotes

  1. This really shouldn't need be a "feature," but all the other SDKs can only handle 1 user at a time so it is.

  2. See Axios's supported browsers, might also require a transpiler like babel, esbuild, etc.