🍿 @lorenzopant/tmdb

Details

Get the top level details of a movie by ID.

Get the top level details of a movie by ID. Supports appending sub-resources in a single request via append_to_response.

async details<T extends readonly MovieAppendToResponseNamespace[] = []>(
  params: MovieDetailsParams & { append_to_response?: T }
): Promise<T extends [] ? MovieDetails : MovieDetailsWithAppends<T>>

TMDB Reference: Movie Details

Parameters

NameTypeRequiredDescription
movie_idnumberTMDB movie identifier.
append_to_responseMovieAppendToResponseNamespace[]Sub-resources to append to the response.
languageLanguageLanguage for localized results. Defaults to en-US.
include_image_language(Language | "null")[]Extra languages for an appended images block. Serialized comma-separated.

When you append images and pass a language, TMDB treats the language as a filter on the appended block and returns only images tagged with it. Logos are always language-tagged and most backdrops are untagged, so both come back empty. Pass include_image_language to get them:

const movie = await tmdb.movies.details({
	movie_id: 550,
	language: "it-IT",
	append_to_response: ["images"],
	include_image_language: ["null", "en"], // untagged + English
});
// 68 posters, 87 backdrops, 23 logos
// without include_image_language: 3 posters, 0 backdrops, 0 logos

Use "null" for untagged images (textless posters, most backdrops), and pair it with at least one real language code — ["null"] alone still returns zero logos.

Returns

MovieDetails when no appends are provided, or MovieDetailsWithAppends<T> when append_to_response is specified.

Example

// Basic details
const movie = await tmdb.movies.details({ movie_id: 550 });
console.log(movie.title); // "Fight Club"

// With appended data
const movie = await tmdb.movies.details({
	movie_id: 550,
	append_to_response: ["credits", "videos", "images"],
});
console.log(movie.credits.cast);
console.log(movie.videos.results);

On this page