Ne IMDB fournir une API? [fermé]

j'ai récemment trouvé une application d'organisateur de film qui récupère ses données de la base de données IMDB .

Ne IMDB fournir une API pour cela, ou tout tiers Api disponibles?

575
demandé sur user5822117 2009-12-27 20:40:33

19 réponses

L'IMDb dispose actuellement de deux API publiques qui sont, bien que non documentées, très rapides et fiables (utilisées sur leur propre site via AJAX).

  1. statiquement en cache les suggestions de recherche de l'API:

    • http://sg.media-imdb.com/suggests/a/aa.json
    • http://sg.media-imdb.com/suggests/h/hello.json
    • Format
    • : JSONP
    • Inconvénients:

      • C'est dans le format JSONP, cependant le paramètre callback ne peut pas être défini en passant un paramètre callback-query. Pour l'utiliser, vous devrez utiliser le nom de fonction de votre choix (qui est dans le format "imdb${searchphrase}", voir l'exemple ci-dessous). Ou utilisez un proxy local (par exemple un petit fichier php) qui télécharge (et Cache!) à partir de IMDb et de bandes au format JSON-P de rappel, ou le remplace avec un rappel personnalisé.

      • S'il n'y a pas de résultats, il ne recule pas gracieusement, mais affiche une erreur XML à la place

// Basic
window.imdb$foo = function (list) {
  /* ... */
};
jQuery.getScript('http://sg.media-imdb.com/suggests/f/foo.json');

// Using jQuery.ajax (let jQuery handle the callback)
jQuery.ajax({
    url: 'http://sg.media-imdb.com/suggests/f/foo.json',
    dataType: 'jsonp',
    cache: true,
    jsonp: false,
    jsonpCallback: 'imdb$foo'
}).done(function (result) {
    /* ... */
});

// With local proxy to a PHP script replacing imdb$foo with a sanitized
// version of $_GET['callback'] (https://stackoverflow.com/a/8811412/319266)
jQuery.getJSON('./imdb.php?q=foo&callback=?', function (list) {
    /* ... */
});
  1. recherche plus avancée

comme dit, ces deux API ne sont pas documentées. Ils peuvent changer à tout moment.

Voir aussi https://stackoverflow.com/a/8811412/319266 , pour un exemple D'API JSON en PHP.

409
répondu Krinkle 2017-05-23 12:18:27

new api @ http://www.omdbapi.com

edit: en raison de problèmes juridiques a dû déplacer le service à un nouveau domaine :)

193
répondu bfritz 2012-09-09 02:42:14

IMDB eux-mêmes semblent distribuer des données, mais seulement dans des fichiers texte:

http://www.imdb.com/interfaces

il y a plusieurs API autour de cela que vous pouvez Google. Capture d'écran est explicitement interdit. Une API officielle semble être en préparation, mais elle l'est déjà depuis des années.

82
répondu Pekka 웃 2009-12-27 17:47:16

une autre alternative légale pour obtenir des informations sur le film est le Rotten-Tomatoes API (par Fandango).

45
répondu Johann 2017-05-22 18:26:38

Qu'en est-il de L'API TMDb ?

vous pouvez rechercher par imdb_id avec Movie.imdbLookup

XBMC Media Center semble l'utiliser

https://www.themoviedb.org/documentation/api

41
répondu hdorio 2017-03-17 02:59:40

Oui, mais pas gratuitement.

.....les frais annuels varient de 15 000 $ à plus selon l'auditoire visé par les données et les données faisant l'objet d'une licence.

URL :- http://www.imdb.com/licensing /

28
répondu Byran 2013-02-06 10:42:51

il y a une API JSON à utiliser pour les applications mobiles à http://app.imdb.com

cependant, l'avertissement est assez sévère:

Pour une utilisation uniquement par les clients autorisés par écrit par IMDb.

Les auteurs et les utilisateurs de clients non autorisés acceptent la pleine exposition juridique/responsabilité pour leurs actions.

je présume que c'est pour les développeurs qui paient pour la licence d'accès aux données via leur API.

EDIT : juste pour le plaisir, j'ai écrit une bibliothèque client pour tenter de lire les données de L'API, vous pouvez le trouver ici: api-imdb

évidemment, vous devriez prêter attention à l'avertissement, et vraiment, utiliser quelque chose comme TheMovieDB comme une base de données Meilleure et plus ouverte.

alors vous pouvez utiliser ce Java API wrapper (que j'ai écrit): api-themoviedb

22
répondu Omertron 2013-07-25 14:40:23

https://deanclatworthy.com/tools.html est une API IMDB mais a été désactivé en raison d'abus.

9
répondu Valentin Golev 2015-02-18 01:21:36

trouvé celui-ci

IMDbPY est un paquet Python utile pour récupérer et gérer les données de la base de données de films IMDb sur les films, les gens, les personnages et entreprise.

http://imdbpy.sourceforge.net /

6
répondu markiv 2013-12-30 21:52:05

IMDB ne semble pas avoir d'API directe à partir d'août 2016 encore, mais j'ai vu beaucoup de gens écrivant des racloirs et des trucs ci-dessus. ici est un moyen plus standard pour accéder aux données des films en utilisant l'API buzz box office. Toutes les réponses dans un format JSON et 5000 requêtes par jour sur un plan libre

liste des éléments fournis par L'API

  1. Cinéma
  2. "151990920 de Film" ID
  3. Les Images Du Film
  4. Get film IMDB id
  5. obtenir la liste des films les plus récents
  6. Obtenir de nouvelles versions
  7. Get film release dates
  8. Obtenir la liste des traductions disponibles pour un film spécifique
  9. Obtenir les vidéos, bandes-annonces et teasers pour un film
  10. recherche d'un film par titre
  11. prend également en charge les émissions de télévision, les jeux et vidéos
5
répondu PirateApp 2016-08-18 03:45:27

que deanclatworthy semble toujours fonctionner et il y en a un autre: http://imdbapi.poromenos.org/

3
répondu 2010-07-23 20:32:37

Voici une solution simple qui récupère les shows par nom basé sur la requête de Krinkle:

vous pouvez contourner la Politique de même origine en demandant à votre serveur de récupérer L'URL au lieu d'essayer de le faire directement avec AJAX et vous n'avez pas besoin d'utiliser JSONP pour le faire.

Javascript (jQuery):

function getShowOptionsFromName (name) {
    $.ajax({
        url: "ajax.php",
        method: "GET",
        data: {q: name},
        dataType: "json"
    }).done(function(data){
        console.log(data);
    });
}

PHP dans le fichier ajax.php):

$q = urlencode($_GET["q"]);
echo file_get_contents("http://www.imdb.com/xml/find?json=1&nr=1&tt=on&q=$q");
3
répondu Brett Pennings 2013-11-16 21:00:48

NetFilx est plus de service de médias personnalisés, mais vous pouvez l'utiliser pour l'information publique concernant les films. Il supporte Javascript et OData.

Regardez aussi JMDb : l'information est essentiellement la même que vous pouvez obtenir en utilisant le site Web IMDb.

2
répondu ThePCWizard 2013-01-17 09:06:12

récemment à SXSWi 2012, dans leur "Mashery Lounge", il y avait un stand pour une API IMDB-like appelée de rovi . Ce N'est pas une API gratuite, mais selon le vendeur à qui j'ai parlé, ils offrent soit une part rev ou un forfait pour l'utilisation, en fonction de votre budget. Je ne l'ai pas encore utilisé mais ça semble plutôt cool.

1
répondu bpapa 2012-03-15 23:01:53

ok j'ai trouvé ce grattoir IMDB

pour C#: http://web3o.blogspot.de/2010/11/aspnetc-imdb-scraping-api.html

PHP ici: http://web3o.blogspot.de/2010/10/php-imdb-scraper-for-new-imdb-template.html

variante a imdbapi.org mise en œuvre pour c#:

using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Xml.Linq;
using HtmlAgilityPack; // http://htmlagilitypack.codeplex.com/


public class IMDBHelper
{

    public static imdbitem GetInfoByTitle(string Title)
    {
        string url = "http://imdbapi.org/?type=xml&limit=1&title=" + Title;
        HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
        req.Method = "GET";
        req.UserAgent = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))";
        string source;
        using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))
        {
            source = reader.ReadToEnd();
        }
        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(source);        
        XDocument xdoc = XDocument.Parse(doc.DocumentNode.InnerHtml, LoadOptions.None);
        imdbitem i = new imdbitem();
        i.rating = xdoc.Descendants("rating").Select(x => x.Value).FirstOrDefault();
        i.rating_count = xdoc.Descendants("rating_count").Select(x => x.Value).FirstOrDefault();
        i.year = xdoc.Descendants("year").Select(x => x.Value).FirstOrDefault();
        i.rated = xdoc.Descendants("rated").Select(x => x.Value).FirstOrDefault();
        i.title = xdoc.Descendants("title").Select(x => x.Value).FirstOrDefault();
        i.imdb_url = xdoc.Descendants("imdb_url").Select(x => x.Value).FirstOrDefault();
        i.plot_simple = xdoc.Descendants("plot_simple").Select(x => x.Value).FirstOrDefault();
        i.type = xdoc.Descendants("type").Select(x => x.Value).FirstOrDefault();
        i.poster = xdoc.Descendants("poster").Select(x => x.Value).FirstOrDefault();
        i.imdb_id = xdoc.Descendants("imdb_id").Select(x => x.Value).FirstOrDefault();
        i.also_known_as = xdoc.Descendants("also_known_as").Select(x => x.Value).FirstOrDefault();
        i.language = xdoc.Descendants("language").Select(x => x.Value).FirstOrDefault();
        i.country = xdoc.Descendants("country").Select(x => x.Value).FirstOrDefault();
        i.release_date = xdoc.Descendants("release_date").Select(x => x.Value).FirstOrDefault();
        i.filming_locations = xdoc.Descendants("filming_locations").Select(x => x.Value).FirstOrDefault();
        i.runtime = xdoc.Descendants("runtime").Select(x => x.Value).FirstOrDefault();
        i.directors = xdoc.Descendants("directors").Descendants("item").Select(x => x.Value).ToList();
        i.writers = xdoc.Descendants("writers").Descendants("item").Select(x => x.Value).ToList();
        i.actors = xdoc.Descendants("actors").Descendants("item").Select(x => x.Value).ToList();
        i.genres = xdoc.Descendants("genres").Descendants("item").Select(x => x.Value).ToList();
        return i;
    }

    public class imdbitem
    {
        public string rating { get; set; }
        public string rating_count { get; set; }
        public string year { get; set; }
        public string rated { get; set; }
        public string title { get; set; }
        public string imdb_url { get; set; }
        public string plot_simple { get; set; }
        public string type { get; set; }
        public string poster { get; set; }
        public string imdb_id { get; set; }
        public string also_known_as { get; set; }
        public string language { get; set; }
        public string country { get; set; }
        public string release_date { get; set; }
        public string filming_locations { get; set; }
        public string runtime { get; set; }
        public List<string> directors { get; set; }
        public List<string> writers { get; set; }
        public List<string> actors { get; set; }
        public List<string> genres { get; set; }
    }

}
1
répondu fubo 2013-06-06 08:05:06

si vous avez besoin D'informations TV vous pouvez essayer TVmaze.com .

C'est gratuit, rapide et fiable. Voici la page du développeur:

http://api.tvmaze.com/

1
répondu Saeed Masoumi 2016-05-17 17:22:49

voici un module Python fournissant des API pour obtenir des données à partir du site web IMDB""

http://techdiary-viki.blogspot.com/2011/03/imdb-api.html

0
répondu vikas 2011-03-10 15:12:21

Je suis assez confiant que la demande que vous avez trouvé obtient réellement leur formulaire d'information Themoviedb.org ' S API (they get most of there stuff from IMDB). Ils ont une API libre ouverte qui est utilisée beaucoup des applications d'organisateur de film / XMBC.

0
répondu Mike 2012-05-04 04:22:39

si vous voulez l'api détails d'un film, vous pouvez prendre en considération

API OMDB qui est Open movies Database Renvoie la note IBDB, les Votes IMDB et vous pouvez inclure la note tomate pourrie aussi.

ou bien vous pouvez utiliser

My Api Films " ce qui vous permet de rechercher avec L'ID IMDB et retourne des informations détaillées, mais il a des limites de requête.

0
répondu Akshay Khale 2016-03-25 13:16:06