ベストアンサー1
IMDb には、文書化されていないものの、高速で信頼性の高いパブリック API があります (公式 Web サイトで AJAX 経由で使用されています)。
検索候補API
https://v2.sg.media-imdb.com/suggests/h/hello.json(2019年現在)
- フォーマット: JSON-P
- 注意: JSON-P 形式であり、コールバック パラメータはカスタマイズできません。クロスドメインで使用するには、コールバックの関数名 (形式内
imdb${searchphrase}
) を使用する必要があります。または、ローカル プロキシ経由でパディングを削除または置換することもできます。
https://v2.sg.media-imdb.com/suggestion/h/hello.json(2020年現在)
- フォーマット: JSON
- 注意: CORS は有効ではありません。アプリやサーバー側スクリプトで使用する場合は問題ありません。Web アプリで使用する場合は、単純なプロキシ経由でルーティングする必要があります (キャッシュを有効にすることも検討してください)。
// 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 to the clean `/suggestion` API.
jQuery.getJSON('/api/imdb/?q=foo', function (results) {
/* ... */
});
// 4) Pure JSON (plain JavaScript; Modern ES6, ES2017, and Fetch API)
// Serve a "/api" route in your app, that proxies (and caches!)
// to v2.sg.media-imdb.com/suggestion/h/hello.json
const resp = await fetch('/api/imdb/?q=foo');
const results = await resp.json();
詳細検索
-
名前検索 (json): http://www.imdb.com/xml/find?json=1&nr=1&nm=on&q=jeniffer+garner - タイトル検索 (xml):http://www.imdb.com/xml/find?xml=1&nr=1&tt=on&q=lost
- フォーマット: XML
-
利点: 映画のタイトルと俳優名の両方をサポートします (Suggestions API とは異なります)。
これらの API は非公式であり、いつでも変更される可能性があることに注意してください。
更新 (2019 年 1 月): Advanced API は存在しなくなりました。朗報としては、Suggestions API が映画のタイトルや俳優名による検索の「高度な」機能もサポートするようになったことです。