私は最近、 IMDBデータベース からデータを取得する映画オーガナイザーアプリケーションを見つけました。
_ imdb _ はこのためのAPIを提供していますか、それともサードパーティのAPIが利用可能ですか?
IMDbには公開されているAPIがありますが、文書化されていませんが高速で信頼性があります(AJAXを通じて公式Webサイトで使用されています)。
imdb${searchphrase}
形式です)。あるいは、ローカルプロキシを介してパディングを除去または置換することができる。// 1) Vanilla JavaScript (JSON-P)
function addScript(src) { var s = document.createElement('script'); s.src = src; document.head.appendChild(s); }
window.imdb$foo = function (results) {
/* ... */
};
addScript('https://sg.media-imdb.com/suggests/f/foo.json');
// 2) Using jQuery (JSON-P)
jQuery.ajax({
url: 'https://sg.media-imdb.com/suggests/f/foo.json',
dataType: 'jsonp',
cache: true,
jsonp: false,
jsonpCallback: 'imdb$foo'
}).then(function (results) {
/* ... */
});
// 3) Pure JSON (with jQuery)
// Use a local proxy that strips the "padding" of JSON-P,
// e.g. "imdb$foo(" and ")", leaving pure JSON only.
jQuery.getJSON('/api/imdb/?q=foo', function (results) {
/* ... */
});
// 4) Pure JSON (ES2017 and Fetch API)
const resp = await fetch('/api/imdb/?q=foo');
const results = resp.json();
これらのAPIは非公式であり、いつでも変更される可能性があることに注意してください。
更新(2019年1月): Advanced APIはもう存在しません。幸い、Suggestions APIは現在、映画のタイトルと俳優の名前の両方をサポートしています。
新しいAPI @ http://www.omdbapi.com
編集:法律上の問題により、サービスを新しいドメインに移動する必要がありました:)
IMDB自体はデータを配布しているようですが、テキストファイルでのみです。
http://www.imdb.com/interfaces
あなたがグーグルすることができるこの周りのいくつかのAPIがあります。スクリーンスクレイピングは明示的に禁止されています。公式のAPIは開発中のようですが、もう何年も前からそうなっています。
映画の情報を入手するためのもう1つの法的な選択肢は Rotten-Tomatoes API (Fandangoによる)です。
TMDb APIはどうですか。
あなたはMovie.imdbLookupでimdb_idで検索することができます
XBMCメディアセンターはそれを使用しているようです
はい、でも無料ではありません。
.....データの視聴者とどのデータがライセンスされているかによって、15,000ドルからそれ以上の年会費。
モバイルアプリケーションで使用するためのJSON APIは http://app.imdb.com にあります。
しかし、警告はかなり深刻です。
IMDbによって書面で許可されたクライアントによってのみ使用されます。
許可されていないクライアントの作成者およびユーザーは、彼らの行動に対する完全な法的開示/責任を受け入れます。
私はこれが彼らのAPIを通してデータにアクセスするためのライセンスの代金を払っているそれらの開発者のためであると思います。
_ edit _ :キックのために、私はAPIからデータを読もうとするクライアントライブラリを書きました、あなたはそれをここで見つけることができます: api-imdb
明らかに、あなたは警告に注意を払うべきであり、そして本当に、もっと良いそしてもっとオープンなデータベースとして TheMovieDB のようなものを使うべきです。
それからあなたは(私が書いた)このJava APIラッパーを使うことができます: api-themoviedb
https://deanclatworthy.com/tools.html はIMDB APIですが、悪用によりダウンしています。
これを見つけた
IMDbPYは、映画、人物、キャラクター、会社に関するIMDb映画データベースのデータを取得および管理するのに役立つPythonパッケージです。
2016年8月現在、IMDBは直接APIを持っていないようですが、私は多くの人が上記のスクレーパーやものを書いているのを見ました。 ここ は、興行用話題APIを使用して映画データにアクセスするためのより標準的な方法です。無料プランでJSON形式のすべての回答と1日あたり5000クエリ
APIが提供するもののリスト
これはKrinkleからの問い合わせに基づいてショーを名前でフェッチする簡単な解決策です:
AJAXを使って直接取得しようとする代わりに、サーバーにURLを取得させることでsame-Originポリシーを回避することができます これを行うためにJSONPを使用する必要はありません。
Javascript(jQuery):
function getShowOptionsFromName (name) {
$.ajax({
url: "ajax.php",
method: "GET",
data: {q: name},
dataType: "json"
}).done(function(data){
console.log(data);
});
}
PHP(ファイルajax.php内):
$q = urlencode($_GET["q"]);
echo file_get_contents("http://www.imdb.com/xml/find?json=1&nr=1&tt=on&q=$q");
そのdeanclatworthyはまだ動作しているようであり、もう一つがあります: http://imdbapi.poromenos.org/ /
最近のSXSWi 2012では、彼らの "Mashery Lounge"に、 rovi から呼ばれるIMDBのようなAPIのブースがありました。それは無料のAPIではありませんが、私が話した販売員によると、彼らはあなたの予算に応じて回転シェアか使用料のための均一料金を提供します。まだ使っていませんが、かなりかっこいいです。
映画の詳細を知りたい場合はapi
OMDB API これはOpen moviesデータベースです。IBDB評価、IMDB投票、およびRotten Tomato評価も含めることができます。
または他にも使えます
My Api Films IMDB IDで検索して詳細情報を返すことができますが、リクエスト制限があります。
わかりました私はこの1つのIMDBスクレーパーを見つけました
c#の場合: http://web3o.blogspot.de/2010/11/aspnetc-imdb-scraping-api.html
ここにPHP: http://web3o.blogspot.de/2010/10/php-imdb-scraper-for-new-imdb-template.html
あるいは、c#のimdbapi.org実装:
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; }
}
}
これは、IMDB Webサイトからデータを取得するためのAPIを提供するPythonモジュールです。
あなたが見つけたアプリケーションが実際にそれらの情報をThemoviedb.orgのAPIから得ていることをかなり確信しています(彼らはそこにあるもののほとんどをIMDBから得ています)。彼らは映画オーガナイザー/ XMBCアプリケーションの多くで使用されている無料のオープンAPIを持っています。