hmerritt/imdb-api

IMDB API that can fetch film data and search results

Installs: 7 079

Dependents: 0

Suggesters: 0

Security: 0

Stars: 53

Watchers: 2

Forks: 19

Open Issues: 1

Type:project

1.2.14 2023-12-19 13:29 UTC

README

Latest Stable Version CircleCI Coverage Status

PHP IMDB-API that can fetch film data and search results.

Install

Install the latest version using composer.

$ composer require hmerritt/imdb-api

Usage

// Assuming you installed from Composer:
require "vendor/autoload.php";
use hmerritt\Imdb;

$imdb = new Imdb;

// Search imdb
// -> returns array of films and people found
$imdb->search("Apocalypse");

// Get film data
// -> returns array of film data (title, year, rating...)
$imdb->film("tt0816692");

Options

Name Type Default Value Description
curlHeaders array ['Accept-Language: en-US,en;q=0.5'] Custom headers can be passed to cURL when fetching the IMDB page
cache bool true Caches film data to speed-up future requests for the same film
cacheType string file or redis Choose how the caching is done. Either a local file database, or connect to a redis server
cacheRedis array [ 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '', 'database' => 0 ] Redis options
techSpecs bool true Loads a films technical specifications (this will take longer as it makes a separate request)
category string all What category to search for (films tt, people nm or companies co)
$imdb = new Imdb;

//  Options are passed as an array as the second argument
//  These are the default options
$imdb->film("tt0816692", [
    'cache'        => true,
    'curlHeaders'  => ['Accept-Language: en-US,en;q=0.5'],
    'techSpecs'    => true,
]);

$imdb->search("Interstellar", [
    'category'     => 'all',
    'curlHeaders'  => ['Accept-Language: en-US,en;q=0.5'],
]);

Best Match

If you do not know the imdb-id of a film, a search string can be entered. This will search imdb and use the first result as the film to fetch data for.

Note that this will take longer than just entering the ID as it needs to first search imdb before it can get the film data.

// Searches imdb and gets the film data of the first result
// -> will return the film data for 'Apocalypse Now'
$imdb->film("Apocalypse");

Features

Film Data

- Title
- Genres
- Year
- Length
- Plot
- Rating
- Rating Votes (# of votes)
- Poster
- Trailer
    - id
    - link
- Cast
    - actor name
    - actor id
    - character
    - avatar
    - avatar_hq (high quality avatar)
- Technical Specs

Search

Search IMDB to return an array of films, people and companies

- Films
    - id
    - title
    - image
- People
    - id
    - name
    - image
- Companies
    - id
    - name
    - image

Dependencies

All dependencies are managed automatically by composer.