tmdb

TMDb SDK.

Usage no npm install needed!

<script type="module">
  import tmdb from 'https://cdn.skypack.dev/tmdb';
</script>

README

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.