Biedt IMDB een API?

Ik heb onlangs een applicatie voor het organiseren van films gevonden die de gegevens ophaalt uit de IMDB-database.

Biedt IMDBhiervoor een API of zijn er API’s van derden beschikbaar?


Antwoord 1, autoriteit 100%

De IMDb heeft een openbare API die, hoewel niet gedocumenteerd, snel en betrouwbaar is (gebruikt op de officiële website via AJAX).

API voor zoeksuggesties

// 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)
// Using a custom proxy at "/api" that strips the JSON-P padding.
const resp = await fetch('/api/imdb/?q=foo');
const results = await resp.json();

Geavanceerd zoeken


Pas op dat deze API’s niet officieel zijn en op elk moment kunnen veranderen!


update (januari 2019): De geavanceerde API bestaat niet meer. Het goede nieuws is dat de suggesties API nu de “geavanceerde” functies van het zoeken door filmtitels en actornamen ondersteunt.


Antwoord 2, Autoriteit 47%

Nieuwe API @ http://www.omdbapi.com

EDIT: vanwege juridische kwesties moest de service verplaatsen naar een nieuw domein 🙂


Antwoord 3, Autoriteit 21%

IMDB zelf lijken gegevens te distribueren, maar alleen in tekstbestanden:

http://www.imdb.com/interfaces

Er zijn hierover verschillende API’s die u kunt Google. Schermschrapend is expliciet verboden.
Een officiële API lijkt in de werken te zijn, maar is al jaren al al jaren.


Antwoord 4, Autoriteit 11%

Een ander legaal alternatief voor het verkrijgen van filminformatie is de Rotten-Tomatoes API(door Fandango).


Antwoord 5, autoriteit 10%

Hoe zit het met de TMDb API?

Je kunt zoeken op imdb_id met GET /find/{external_id}

https://developers.themoviedb.org/3/find/find -by-id


Antwoord 6, autoriteit 6%

Ja, maar niet gratis.

…..jaarlijkse vergoedingen variërend van $ 15.000 tot hoger, afhankelijk van het publiek voor de gegevens en voor welke gegevens een licentie wordt verleend.

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


Antwoord 7, autoriteit 5%

Er is een JSON API voor gebruik door mobiele applicaties op http://app.imdb.com

De waarschuwing is echter vrij ernstig:

Alleen voor gebruik door klanten die schriftelijk zijn geautoriseerd door IMDb.
Auteurs en gebruikers van niet-geautoriseerde klanten accepteren volledige juridische blootstelling/aansprakelijkheid voor hun acties.

Ik neem aan dat dit voor die ontwikkelaars is die betalen voor de licentie om toegang te krijgen tot de gegevens via hun API.

EDIT: voor de kick heb ik een clientbibliotheek geschreven om te proberen de gegevens van de API te lezen, je kunt deze hier vinden: api-imdb

Natuurlijk moet je op de waarschuwing letten en echt iets als TheMovieDBgebruiken als een betere en meer open database.

Dan kun je deze Java API-wrapper gebruiken (die ik heb geschreven): api-themoviedb


Antwoord 8, autoriteit 2%

Deze gevonden

IMDBPY is een python-pakket nuttig om de gegevens van te halen en te beheren
De IMDB-filmdatabase over films, mensen, personages en
bedrijven.

http://imdbpy.sourceforge.net/


Antwoord 9, Autoriteit 2%

https://dealclatworthy.com/tools.html is een IMDB API, maar is gedaald vanwege misbruik.


Antwoord 10, Autoriteit 2%

IMDB lijkt nog geen directe API vanaf augustus 2016 te hebben, maar ik zag veel mensen scrapers en spullen boven schrijven. hier is een meer standaard manier om toegang te krijgen tot filmgegevens met behulp van Box Office buzz api. Alle antwoorden in JSON-formaat en 5000 query’s per dag op een gratis plan

lijst met dingen die door de API

  1. Filmcredits
  2. Film-ID
  3. filmbeelden
  4. Krijg film door IMDB ID
  5. Krijg de nieuwste filmslijst
  6. Krijg nieuwe releases
  7. Krijg filmrassende datums
  8. Verkrijg de lijst met vertalingen beschikbaar voor een specifieke film
  9. haal video’s, trailers en teasers voor een film
  10. Zoek naar een film op titel
  11. ondersteunt ook tv-programma’s, games en video’s

Antwoord 11

Die DeanClatworthy lijkt nog steeds te werken
En er is nog een andere: http://imdbapi.poromenos.org/


Antwoord 12

Hier is een eenvoudige oplossing die wordt opgehaald op naam op basis van de query van Krinkle:

U kunt het beleid van dezelfde herkomst krijgen door uw server de URL op te halen in plaats van te proberen het rechtstreeks met Ajax en u niet te halen, hoeft JSSP niet te gebruiken.

Javascript (jQuery):

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

PHP (in bestand ajax.php):

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

Antwoord 13

Onlangs op SXSWi 2012, in hun “Mashery Lounge”, was er een stand voor een IMDB-achtige API genaamd rovi. Het is geen gratis API, maar volgens de verkoper met wie ik sprak, bieden ze ofwel een rev-share of een vast bedrag voor gebruik, afhankelijk van je budget. Ik heb het nog niet gebruikt, maar het lijkt me best cool.


Antwoord 14

NetFilxis meer een gepersonaliseerde mediaservice, maar je kunt het gebruiken voor openbare informatie over films. Het ondersteunt Javascript en OData.
Kijk ook eens op JMDb: de informatie is in principe hetzelfde als bij het gebruik van de IMDb-website.


Antwoord 15

Als u een API met filmdetails wilt, kunt u overwegen

OMDB APIwat Open Movies Database is
Retourneert IBDB-beoordeling, IMDB-stemmen en u kunt ook Rotten Tomato-beoordeling opnemen.

Of anders kunt u

. gebruiken

Mijn Api Filmswaarmee u kunt zoeken met IMDB-ID en gedetailleerde informatie retourneert, maar het heeft verzoeklimieten.


Antwoord 16

ok, ik heb deze IMDB-schraper gevonden

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

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

of een imdbapi.org implementatie voor 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; }
    }
}

Antwoord 17

Als je tv-informatie nodig hebt, kun je TVmaze.comproberen.

Het is gratis, snel en betrouwbaar. Hier is de ontwikkelaarspagina:

http://api.tvmaze.com/


Antwoord 18

Hier is een Python-module die API’s biedt om gegevens van de IMDB-website te krijgen

http://techdiary-viki.blogspot.com/2011/ 03/imdb-api.html


Antwoord 19

Ik ben er vrij zeker van dat de applicatie die je hebt gevonden hun informatie daadwerkelijk krijgt van de API van Themoviedb.org (ze halen de meeste dingen van IMDB). Ze hebben een gratis open API die veel van de filmorganisator / XMBC-applicaties wordt gebruikt.

Other episodes