webapiconfig routeconfig route mvc maphttproute asp.net-web-api imdb

asp.net web api - routeconfig - ¿IMDB proporciona una API?



webapiconfig default (19)

Recientemente encontré una aplicación de organización de películas que obtiene sus datos de la base de datos de IMDB .

¿Ofrece IMDB una API para esta o alguna API de terceros disponible?



Actualmente, IMDb tiene dos API públicas que, aunque no documentadas, son muy rápidas y confiables (utilizadas en su propio sitio a través de AJAX).

  1. Una API de sugerencias de búsqueda en caché estática:

    • http://sg.media-imdb.com/suggests/a/aa.json
    • http://sg.media-imdb.com/suggests/h/hello.json
    • Formato: JSONP
    • Abajo:

      • Está en formato JSONP, sin embargo, el parámetro de devolución de llamada no se puede establecer pasando un parámetro de consulta de devolución de llamada. Para usarlo en varios dominios, deberá usar el nombre de la función que elijan (que está en el formato "imdb $ {searchphrase}", vea el ejemplo a continuación). O use un proxy local (por ejemplo, un pequeño archivo php) que lo descargue (y almacene en caché) de IMDb y elimine la devolución de llamada JSON-P, o la reemplace con una devolución de llamada personalizada.

      • Si no hay resultados, no retrocede con gracia, pero muestra un error XML en su lugar

// 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://.com/a/8811412/319266) jQuery.getJSON(''./imdb.php?q=foo&callback=?'', function (list) { /* ... */ });

  1. Búsqueda más avanzada

Como se dijo, ambas APIs están sin documentar. Podrían cambiar en cualquier momento.

Vea también https://.com/a/8811412/319266 , para un ejemplo de una API JSON en PHP.



Encontré este

IMDbPY es un paquete de Python útil para recuperar y administrar los datos de la base de datos de películas de IMDb sobre películas, personas, personajes y compañías.

http://imdbpy.sourceforge.net/


Estoy bastante seguro de que la aplicación que encontró en realidad obtiene su información de la API de Themoviedb.org (obtienen la mayoría de las cosas de IMDB). Tienen una API abierta gratuita que se utiliza en muchas aplicaciones del organizador de películas / XMBC.


Hay una API JSON para uso de aplicaciones móviles en http://app.imdb.com

Sin embargo, la advertencia es bastante severa:

Para uso exclusivo de clientes autorizados por escrito por IMDb.
Los autores y usuarios de clientes no autorizados aceptan la exposición legal completa / responsabilidad por sus acciones.

Supongo que esto es para aquellos desarrolladores que pagan la licencia para acceder a los datos a través de su API.

EDITAR : Sólo por diversión, escribí una biblioteca cliente para intentar leer los datos de la API, puede encontrarlos aquí: api-imdb

Obviamente, debes prestar atención a la advertencia, y realmente, usar algo como TheMovieDB como una base de datos mejor y más abierta.

Luego puedes usar este contenedor de API de Java (que escribí): api-themoviedb


IMDB no parece tener una API directa a partir de agosto de 2016 todavía, pero vi a muchas personas que escribían raspadores y cosas arriba. Here es una forma más estándar de acceder a los datos de películas usando la API de buzz de taquilla. Todas las respuestas en formato JSON y 5000 consultas por día en un plan gratuito

Lista de cosas proporcionadas por la API

  1. Créditos de la película
  2. ID de la película
  3. Imágenes de la película
  4. Obtener película por identificación de IMDB
  5. Obtener la última lista de películas
  6. Obtener nuevos lanzamientos
  7. Obtener fechas de estreno de la película
  8. Obtenga la lista de traducciones disponibles para una película específica
  9. Consigue videos, trailers y teasers para una película.
  10. Busca una película por título
  11. También soporta programas de televisión, juegos y videos.

Los propios IMDB parecen distribuir datos, pero solo en archivos de texto:

http://www.imdb.com/interfaces

Hay varias API alrededor de esto que puedes Google. El raspado de la pantalla está explícitamente prohibido. Una API oficial parece estar en las obras, pero ha sido así desde hace años.


Otra alternativa legal para obtener información de la película es la API de Rotten-Tomatoes (por Fandango).


Recientemente, en SXSWi 2012, en su "Mashery Lounge", hubo un puesto para un API tipo IMDB llamado de rovi . No es una API gratuita, pero de acuerdo con el tipo de ventas con el que hablé, ofrecen una cuota de revoluciones o una tarifa fija para el uso, dependiendo de su presupuesto. No lo he usado todavía, pero parece muy bueno.


Sí, pero no de forma gratuita.

..... tarifas anuales que van desde $ 15,000 hasta más, dependiendo de la audiencia de los datos y qué datos se están licenciando.

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



Si quieres detalles de la película api puedes considerar

La API de OMDB, que es la base de datos de películas abiertas, devuelve la calificación IBDB, los votos de IMDB y también puede incluir la calificación Rotten Tomato.

O bien puedes usar

My Api Films, que le permite buscar con identificación de IMDB y devuelve información detallada pero tiene límites de solicitud.



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

edición: debido a problemas legales tuvo que mover el servicio a un nuevo dominio :)


ok encontré este rascador IMDB

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

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

alternativamente una implementación imdbapi.org para 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; } } }


NetFilx es más un servicio de medios personalizado, pero puede usarlo para información pública sobre películas. Soporta Javascript y OData.
También vea JMDb : La información es básicamente la misma que puede obtener al usar el sitio web de IMDb.



Aquí hay una solución simple que obtiene programas por nombre basados ​​en la consulta de Krinkle:

Puede evitar la política del mismo origen haciendo que su servidor obtenga la URL en lugar de intentar obtenerla directamente con AJAX y no tiene que usar JSONP para hacerlo.

Javascript (jQuery):

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

PHP (en el archivo ajax.php):

$q = urlencode($_GET["q"]); echo file_get_contents("http://www.imdb.com/xml/find?json=1&nr=1&tt=on&q=$q");