tmdb icon indicating copy to clipboard operation
tmdb copied to clipboard

The Movie Database (TMDb) SDK.

TMDb

GitSpo Mentions Travis build status Coveralls NPM version Canonical Code Style Twitter Follow

The Movie Database (TMDb) SDK.

Features

  • Automatic rate-throttling
  • Strict types

Usage

import {
  Tmdb
} from 'tmdb';

/**
 * @see https://developers.themoviedb.org/3/getting-started/authentication
 */
const apiKey: string = '';

const tmdb = new Tmdb(apiKey);

API

Refer to the source code and the type definitions.

Note: Only a subset of the API is implemented. I will be adding new methods as needed. If you need a method added, raise a PR. Alternatively, you can use the low-level get method to construct any API calls.

async findId (resourceType: 'movie' | 'person', externalSource: 'imdb', externalId: string) => Promise<number>;
async get (resource: string, parameters: QueryType = {}) => Object;
async getMovie (movieId: number) => Promise<MovieType>
async getMovieBackdropImages (movieId: number, includeImageLanguage: $ReadOnlyArray<string>) => Promise<$ReadOnlyArray<MovieBackdropImageType>>;
async getMovieCastCredits (movieId: number) => Promise<$ReadOnlyArray<MovieCastCreditType>>;
async getMovieCrewCredits (movieId: number) => Promise<$ReadOnlyArray<MovieCrewCreditType>>;
async getMoviePosterImages (movieId: number, includeImageLanguage: $ReadOnlyArray<string>) => Promise<$ReadOnlyArray<MoviePosterImageType>>;
async getMovieVideos (movieId: number) => Promise<$ReadOnlyArray<MovieVideoType>>;
async getPerson (personId: number) => Promise<PersonType>;

get

get method is the most primitive TMDb API method and it can be used to construct any of the API queries.

Example: GET /search/movie API method is not implemented. However, you can still use it as:

await tmdb.get('search/movie', {
  query: 'The Terminator',
});

Handling errors

Methods that are expected to return a specific resource will throw NotFoundError if the resource is not found.

import {
  Tmdb,
  NotFoundError
} from 'tmdb';

const tmdb = new Tmdb([..]);

try {
  await tmdb.getMovie(1);
} catch (error) {
  if (error instanceof NotFoundError) {
    console.error('Movie TMDb ID #1 not found.');
  } else {
    throw error;
  }
}

Logging

This package is using roarr logger to log the program's state.

Export ROARR_LOG=true environment variable to enable log printing to stdout.

Use roarr-cli program to pretty-print the logs.