A simple Node.JS module to access and normalize data from the OMDb API by Bryan Fritz.
$ npm install omdb
var omdb = require('omdb');
omdb.search('saw', function(err, movies) {
if(err) {
return console.error(err);
}
if(movies.length < 1) {
return console.log('No movies were found!');
}
movies.forEach(function(movie) {
console.log('%s (%d)', movie.title, movie.year);
});
// Saw (2004)
// Saw II (2005)
// Saw III (2006)
// Saw IV (2007)
// ...
});
omdb.get({ title: 'Saw', year: 2004 }, true, function(err, movie) {
if(err) {
return console.error(err);
}
if(!movie) {
return console.log('Movie not found!');
}
console.log('%s (%d) %d/10', movie.title, movie.year, movie.imdb.rating);
console.log(movie.plot);
// Saw (2004) 7.6/10
// Two men wake up at opposite sides of a dirty, disused bathroom, chained
// by their ankles to pipes. Between them lies...
});
Run a search request on the API.
terms
can either be a string of search terms, or the following object:
{
terms: String, // `s` can also be used
year: Number, // optional (`y` can also be used)
type: 'series' || 'movie' || 'episode' // optional
}
callback
returns an array of movies. If no movies are found, the array
is empty. The array will contain objects of the following:
{
title: String, // the title of the movie
type: 'series' || 'movie' || 'episode',
// If `type` is "series":
year: {
from: Number,
to: Number || undefined // (if the series is still airing)
},
// Otherwise,
year: Number,
imdb: String
}
Run a single movie request on the API.
show
is assumed to be one of the following, respectively:
-
An object with an
imdb
property.{ imdb: 'tt0387564' }
-
An object with a
title
property.{ title: 'Saw' }
-
An object with both a
title
and ayear
property.{ title: 'Saw', year: 2004 }
-
An IMDb ID string.
'tt0387564'
-
A title string.
'Saw'
Additionally, options
object can be passed with the following parameters:
fullPlot
is an optional argument that if set totrue
, will attempt to request the extended version of the movie's plot.tomatoes
is an optional argument that if set totrue
, will attempt to request the Rotten Tomatoes rating info.
Backwards compatibility is ensured so that if options
is not an object but is non-empty, assume fullPlot: true
.
callback
returns an object of the movie's information. If no movies are
found, it will return null
.
See the following for a list of possible properties: https://github.com/misterhat/omdb/blob/master/index.js#L154
Return a readable stream of the poster JPEG.
show
is the same as the show
argument used in .get()
.
MIT