NAME

TMDB - Perl wrapper for The MovieDB API

SYNOPSIS

use TMDB;

# Initialize
my $tmdb = TMDB->new( { api_key => 'xxxxxx' } );

# Search for movies
my @results = $tmdb->search->movie('Italian Job');
foreach my $result (@results) {
    print "#$result->{id}: $result->{name} ($result->{year})\n";
}

# Get movie info
my $movie = $tmdb->movie('19995');
printf( "%s (%s)\n", $movie->name, $movie->year );
printf( "%s\n", $movie->tagline );
printf( "Overview: %s\n", $movie->overview );
printf( "Director: %s\n", join( ',', $movie->director ) );
printf( "Cast: %s\n",     join( ',', $movie->cast ) );

DESCRIPTION

The MovieDB is a free and open movie database. This module provides a Perl wrapper to The MovieDB API. In order to use this module, you must first get an API key by signing up.

METHODS

new(\%options)

my $tmdb = TMDB->new({api_key => 'xxxxxxx', ua => $ua});

The constructor accepts the following options

api_key

Requierd. This is your TMDb API key

ua

Optional. You can initialize with your own LWP::UserAgent

The following search methods are available

movie($name)
movie({name => $name, year => $year})
my @results = $tmdb->search->movie('Avatar');           # Using a title
my @results = $tmdb->search->movie('Avatar (2009)');    # Title includes year
my @results =
  $tmdb->search->movie( { name => 'Avatar', year => '2009' } );  # Split them up

The search result returned is an array, or undef if nothing is found. Each element in the result array is a hash ref containing name (movie name), year (release year), id (TMDb ID), thumb (A thumbnail image URL) and url (TMDb movie URL).

person($name)
my @results = $tmdb->search->person('George Clooney');

The search result returned is an array, or undef if nothing is found. Each element in the result array is a hash ref containing name (Person's name), id (TMDb ID), thumb (A thumbnail image URL) and url (TMDb profile URL).

imdb($imdb_id)
my @results = $tmdb->search->imdb('tt1542344');

This allows you to search a movie by its IMDB ID. The search result returned is the same as "movie($name)"

dvdid($dvdid)
my @results = $tmdb->search->dvdid($dvdid);

This allows you to search a movie by its DVDID. The search result returned is the same as "movie($name)"

file($filename)
my @results = $tmdb->search->file($filename);

This allows you to search a movie by passing a file. The file's HashID and size is used to search TMDb. The search result returned is the same as "movie($name)"

movie

# Initialize using TMDb ID
my $movie = $tmdb->movie($id);

# Movie Information
$movie->name();                   # Get Movie name
$movie->year();                   # Release year
$movie->released();               # Release date
$movie->url();                    # TMDb URL
$movie->id();                     # TMDb ID
$movie->imdb_id();                # IMDB ID
$movie->tagline();                # Movie tagline
$movie->overview();               # Movie Overview/plot
$movie->rating();                 # Rating on TMDb
$movie->runtime();                # Runtime
$movie->trailer();                # link to YouTube trailer
$movie->homepage();               # Official homepage
$movie->certification();          # MPAA certification
$movie->budget();                 # Budget

# Cast & Crew
#   All of these methods returns an array
$movie->cast();
$movie->director();
$movie->producer();
$movie->writers();

# Images
#   Returns an array with image URLs
$movie->posters($size)
  ; # Specify what size you want (original/mid/cover/thumb). Defaults to 'original'
$movie->backdrops($size)
  ; # Specify what size you want (original/poster/thumb). Defaults to 'original'

# Genres
#   Returns an array
$movie->genres();

# Studios
#   Returns an array
$movie->studios();

# ALl in one
#   Get a flattened hash containing all movie details
my $info = $movie->info();
use Data::Dumper;
print Dumper $info;

person

# Initialize using TMDb ID
my $person = $tmdb->person($id);

# Details
$person->name();        # Name
$person->id();          # TMDb ID
$person->bio();         # Biography
$person->birthday();    # Birthday
$person->url();         # TMDb profile URL

# Filmography
#   Returns an array with movie names
$person->movies();

# Images
#   Returns an array with image URLs
$person->posters($size)
  ;    # Specify what size (original/profile/thumb). Defaults to 'original'

# ALl in one
#   Get a flattened hash containing all person details
my $info = $person->info();
use Data::Dumper;
print Dumper $info;

DEPENDENCIES

Encode

LWP::UserAgent

YAML::Any

BUGS AND LIMITATIONS

Please report any bugs or feature requests to bug-tmdb@rt.cpan.org, or through the web interface at http://rt.cpan.org/Public/Dist/Display.html?Name=TMDB

AUTHOR

Mithun Ayachit mithun@cpan.org

LICENSE AND COPYRIGHT

Copyright (c) 2012, Mithun Ayachit. All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.