asp.net web api - routeconfig - ¿IMDB proporciona una API?
¿Qué pasa con TMDb API?
Puedes buscar por imdb_id con Movie.imdbLookup
XBMC Media Center parece usarlo
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).
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) {
/* ... */
});
Búsqueda más avanzada
- Búsqueda de nombre (json): http://www.imdb.com/xml/find?json=1&nr=1&nm=on&q=jeniffer+garner
- Búsqueda de títulos (xml): http://www.imdb.com/xml/find?xml=1&nr=1&tt=on&q=lost
- Formato: JSON, XML y más
- Abajo:
- No JSONP. Para utilizar desde JavaScript dominio cruzado, se requiere un proxy local.
- Sin documentación, más formatos pueden estar disponibles.
- Al revés
- ¡Búsqueda en vivo!
- Nombre de apoyo para los actores también!
- Correcto retroceso al objeto vacío
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.
Aquí hay un módulo de Python que proporciona API para obtener datos del sitio web de IMDB
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.
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
- Créditos de la película
- ID de la película
- Imágenes de la película
- Obtener película por identificación de IMDB
- Obtener la última lista de películas
- Obtener nuevos lanzamientos
- Obtener fechas de estreno de la película
- Obtenga la lista de traducciones disponibles para una película específica
- Consigue videos, trailers y teasers para una película.
- Busca una película por título
- 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.
Si necesita información de TV, puede probar TVmaze.com .
Es gratis, rápido y confiable. Aquí está la página del desarrollador:
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.
ese deanclatworthy todavía parece funcionar y hay otro: http://imdbapi.poromenos.org/
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; }
}
}
https://deanclatworthy.com/tools.html es una API de IMDB pero se ha caído debido a un abuso.
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");