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?
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).
-
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) {
/* ... */
});
-
recherche plus avancée
- recherche de nom (json): http://www.imdb.com/xml/find?json=1&nr=1&nm=on&q=jeniffer 1519100920"
- recherche de titre (xml): http://www.imdb.com/xml/find?xml=1&nr=1&tt=on&q=lost
- Format: JSON, XML et plus
- à la Baisse:
- No JSONP. Afin d'utiliser le cross-domain de JavaScript, un proxy local est requis.
- Pas de documentation, d'autres formats peuvent être disponibles
- à L'envers
- Live de recherche!
- nommez aussi les acteurs!
- repli approprié de l'objet vide
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.
new api @ http://www.omdbapi.com
edit: en raison de problèmes juridiques a dû déplacer le service à un nouveau domaine :)
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.
une autre alternative légale pour obtenir des informations sur le film est le Rotten-Tomatoes API (par Fandango).
Qu'en est-il de L'API TMDb ?
vous pouvez rechercher par imdb_id avec Movie.imdbLookup
XBMC Media Center semble l'utiliser
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.
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
https://deanclatworthy.com/tools.html est une API IMDB mais a été désactivé en raison d'abus.
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.
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
- Cinéma "151990920 de Film" ID
- Les Images Du Film
- Get film IMDB id
- obtenir la liste des films les plus récents
- Obtenir de nouvelles versions
- Get film release dates
- Obtenir la liste des traductions disponibles pour un film spécifique
- Obtenir les vidéos, bandes-annonces et teasers pour un film
- recherche d'un film par titre
- prend également en charge les émissions de télévision, les jeux et vidéos
que deanclatworthy semble toujours fonctionner et il y en a un autre: http://imdbapi.poromenos.org/
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");
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.
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.
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; }
}
}
si vous avez besoin D'informations TV vous pouvez essayer TVmaze.com .
C'est gratuit, rapide et fiable. Voici la page du développeur:
voici un module Python fournissant des API pour obtenir des données à partir du site web IMDB""
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.
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.