The Movie Database (TMDb) SDK.
- Automatic rate-throttling
- Strict types
import {
Tmdb
} from 'tmdb';
/**
* @see https://developers.themoviedb.org/3/getting-started/authentication
*/
const apiKey: string = '';
const tmdb = new Tmdb(apiKey);
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
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',
});
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;
}
}
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.