@elselab-io/node-tmdb-sdk
Version:
A lightweight JavaScript SDK for The Movie Database (TMDB) REST API
106 lines (91 loc) • 3.19 kB
JavaScript
import TMDB from '../src/index.js';
// Initialize the SDK with your API key
// You can get an API key from https://www.themoviedb.org/settings/api
const tmdb = new TMDB('');
// Example 1: Get basic movie details
async function getBasicMovieDetails() {
try {
// Fight Club (1999) - ID: 550
const movie = await tmdb.movie.getDetails('550');
console.log('Basic movie details:', {
title: movie.title,
releaseDate: movie.release_date,
overview: movie.overview,
rating: movie.vote_average
});
} catch (error) {
console.error('Error fetching basic movie details:', error.message);
}
}
// Example 2: Get comprehensive movie information
async function getComprehensiveMovieInfo() {
try {
// The Godfather (1972) - ID: 238
const [movie, credits, videos, providers] = await Promise.all([
tmdb.movie.getDetails('238', {
language: 'en-US'
}),
tmdb.movie.getCredits('238'),
tmdb.movie.getVideos('238'),
tmdb.movie.getWatchProviders('238')
]);
console.log('Comprehensive movie information:', {
title: movie.title,
director: credits.crew.find(person => person.job === 'Director')?.name,
cast: credits.cast.slice(0, 5).map(actor => actor.name), // Top 5 cast members
trailers: videos.results.filter(video => video.type === 'Trailer'),
watchProviders: providers.results
});
} catch (error) {
console.error('Error fetching comprehensive movie info:', error.message);
}
}
// Example 3: Get movie recommendations and similar movies
async function getMovieSuggestions() {
try {
// Inception (2010) - ID: 27205
const [recommendations, similar] = await Promise.all([
tmdb.movie.getRecommendations('27205', { language: 'en-US' }),
tmdb.movie.getSimilar('27205', { language: 'en-US' })
]);
console.log('Movie suggestions:', {
recommendations: recommendations.results.slice(0, 5).map(movie => ({
title: movie.title,
rating: movie.vote_average
})),
similarMovies: similar.results.slice(0, 5).map(movie => ({
title: movie.title,
rating: movie.vote_average
}))
});
} catch (error) {
console.error('Error fetching movie suggestions:', error.message);
}
}
// Example 4: Rate a movie and get account states
async function rateAndCheckMovie() {
try {
// Rate Inception (2010)
await tmdb.movie.rateMovie('27205', 9.0);
// Get account states (including your rating)
const accountStates = await tmdb.movie.getAccountStates('27205');
console.log('Movie account states:', accountStates);
// Delete your rating
await tmdb.movie.deleteRating('27205');
console.log('Rating deleted successfully');
} catch (error) {
console.error('Error with movie rating:', error.message);
}
}
// Run the examples
console.log('Running TMDB SDK Examples...\n');
const runExamples = async () => {
await getBasicMovieDetails();
console.log('\n---\n');
await getComprehensiveMovieInfo();
console.log('\n---\n');
await getMovieSuggestions();
console.log('\n---\n');
await rateAndCheckMovie();
};
runExamples().catch(console.error);