Предоставляет ли IMDB API?

Недавно я нашел приложение организатора кино, которое извлекает его данные из базы данных IMDB.

Предоставляет ли IMDB API для этого или какие-либо сторонние API-интерфейсы?

Ответ 1

IMDb имеет публичный API, который, хотя и не документирован, быстр и надежен (используется на официальном сайте через AJAX).

API поисковых предложений

  • https://sg.media-imdb.com/suggests/a/aa.json
  • https://v2.sg.media-imdb.com/suggests/h/hello.json (альтернативный вариант)
  • Формат: JSON-P
  • Предостережение: это в формате JSON-P, а параметр обратного вызова нельзя настраивать. Чтобы использовать его в междоменном режиме, вам нужно использовать имя функции, которое они выбирают (в формате 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 г.): расширенный API больше не существует. Хорошая новость заключается в том, что теперь API предложений поддерживает как названия фильмов, так и имена актеров.

Ответ 2

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

edit: из-за юридических проблем пришлось переместить службу в новый домен:)

Ответ 3

Сам IMDB, похоже, распространяет данные, но только в текстовых файлах:

http://www.imdb.com/interfaces

существует несколько API, которые вы можете использовать Google. Яркость экрана явно запрещена. Официальный API, похоже, работает, но это уже много лет.

Ответ 4

Другая легальная альтернатива для получения информации о фильме - это Rotten-Tomatoes API (от Fandango).

Ответ 6

Да, но не бесплатно.

..... ежегодные взносы в размере от 15 000 долларов США выше, в зависимости от аудитории за данные и данные, которые лицензируются.

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

Ответ 7

Существует JSON API для использования мобильными приложениями http://app.imdb.com

Однако предупреждение довольно серьезное:

Для использования только клиентами, авторизованными в письменной форме с помощью IMDb.
Авторы и пользователи неавторизованных клиентов принимают полное юридическое право/ответственность за свои действия.

Я предполагаю, что это для тех разработчиков, которые платят за лицензию на доступ к данным через свой API.

РЕДАКТИРОВАТЬ: просто для пинок я написал клиентскую библиотеку, чтобы попытаться прочитать данные из API, вы можете найти ее здесь: api-imdb

Очевидно, что вы должны обратить внимание на предупреждение и действительно использовать что-то вроде TheMovieDB как лучшую и более открытую базу данных.

Затем вы можете использовать эту оболочку Java API (которую я написал): api-themoviedb

Ответ 9

Нашел этот

IMDbPY - это пакет Python, полезный для извлечения и управления данными база данных фильмов IMDb о фильмах, людях, персонажах и компании.

http://imdbpy.sourceforge.net/

Ответ 10

У IMDB пока нет прямого API с августа 2016 года, но я видел, как многие люди писали скребки и прочее. Здесь - более стандартный способ доступа к данным фильма с использованием API казусной казусы. Все ответы в формате JSON и 5000 запросов в день на бесплатном плане

Список вещей, предоставляемых API

  • Кредиты в кино
  • Идентификатор фильма
  • Видеоролики
  • Получить фильм по идентификатору IMDB
  • Получить список последних фильмов
  • Получить новые версии
  • Получить даты выпуска фильма
  • Получить список переводов, доступных для определенного фильма
  • Получить видеоролики, трейлеры и тизеры для фильма
  • Поиск фильма по названию
  • Также поддерживает телепередачи, игры и видеоролики.

Ответ 12

Вот простое решение, которое выводит показания по имени на основе запроса от Krinkle:

Вы можете обойти политику одного и того же происхождения, указав URL-адрес своего сервера, вместо того, чтобы пытаться извлечь его непосредственно с помощью AJAX, и вам не нужно использовать 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");

Ответ 13

Недавно на SXSWi 2012 в своем "Залу Mashery" появился стенд для IMDB-подобного API, называемый rovi. Это не бесплатный API, но, по словам продавца, с которым я разговаривал, они предлагают либо долю rev, либо фиксированную плату за использование, в зависимости от вашего бюджета. Я еще не использовал его, но это выглядит довольно круто.

Ответ 14

NetFilx - это больше персонализированный медиа-сервис, но вы можете использовать его для публичной информации о фильмах. Он поддерживает Javascript и OData.
Также посмотрите JMDb: информация в основном такая же, как вы можете получить при использовании сайта IMDb.

Ответ 15

ok Я нашел этот скребок IMDB

для С#: 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

альтернативно реализация 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; }
    }

}

Ответ 16

Если вы хотите просмотреть информацию о фильме api, вы можете рассмотреть

API OMDB, который представляет собой базу данных открытых фильмов Возвращает рейтинг IBDB, IMDB, и вы можете включить рейтинг Rotten Tomato.

Или иначе Вы можете использовать

My Api Films, который позволяет вам искать с IMDB-идентификатором и возвращает подробную информацию, но у нее есть пределы запроса.

Ответ 17

Если вам нужна информация о телевидении, вы можете попробовать TVmaze.com.

Это бесплатно, быстро и надежно. Вот страница разработчика:

http://api.tvmaze.com/

Ответ 19

Im довольно уверен, что приложение, которое вы нашли, фактически получает свою информационную форму Themoviedb.org API (они получают больше всего материала от IMDB). У них есть бесплатный открытый API, который используется во многих приложениях для организаторов фильмов и XMBC.