WEBDESIGN

IMDB Wertung eines Films mit jQuery und Ajax auslesen

Heute schauen wir uns an, wie man mit Hilfe von jQuery und ein bisschen Ajax die IMDB Wertung eines Films auslesen kann. Dies kann z.B. nützlich sein, wenn man zu seiner privaten Filmsammlung automatisch IMDB Wertungen hinzufügen will. Der kommerzielle Gebrauch ist jedoch nicht gestattet.

imdb

Wertung auslesen

Dieses Tutorial basiert auf der inoffiziellen IMDB API von imdbapi.org. Die Verwendung dieser API ist nur zu privaten Zwecken und keinesfalls für kommerzielle Zwecke erlaubt. Wer also einen öffentlichen Service anbieten möchte, welcher auch noch Geld einbringen soll, muss sich vorher rechtlich absichern um keine Abmahnung zu riskieren.

Die API bietet die Möglichkeit nahezu alle Informationen über einen Film bei IMDB auszulesen. Wir interessieren uns aber momentan nur für die Wertung eines Films. Um die API anzusprechen muss eine Anfrage zu imdbapi.org mit den entsprechenden Parametern gesendet werden. Als Antwort erhalten wir dann eine JSON Datei mit den gewünschten Informationen.

Ein API Request könnte so aussehen (wobei Title für den Name des Films steht):

http://imdbapi.org/?title=Title&type=json

jQuery und Ajax

Nachdem wir wissen wie man an die IMDB Wertung kommt, muss diese nun noch per jQuery geholt und verarbeitet werden. Wie man letzten Endes die Information weiter verarbeitet bleibt jedem selbst überlassen, in diesem Tutorial soll die Wertung einfach auf der Website angezeigt werden.

               var movie_name = $('#movie-name').val(); 
               var url =  "http://imdbapi.org/?title="+movie_name+"&type=json&plot=simple&episode=1&limit=1&yg=0&mt=none&lang=en-US&offset=&aka=simple&release=simple&business=0&tech=0";
               var result = 0; 
                $.getJSON(url, null, function(data) {
                   if(data.hasOwnProperty('error')) {
                        $('#result').html('Unbekannter Film :/');
                   } else {
                        result = data[0]['rating'];
                        $('#result').html(result);
                   }
                });

Nun ist es auch möglich, dass der gewünschte Film gar nicht auf IMDB ist, oder sich beim Namen des Films vertippt hat. In diesen Fällen gibt es natürlich auch keine IMDB Wertung, ist dies der Fall, dann hat das data Objekt die Eigenschaft error.

HTML Markup

Nun fehlt noch das HTML Markup, damit der obige Code auch Sinn ergibt.

<div class="content">

  <form action="" method="get" id="imdb-form">
        <input id="movie-name" type="text" placeholder="z.B. Skyfall" value="" />
        <button type="submit" name="submit" class="button">
             <span>Get IMDB rating</span>
        </button>
   </form>

   <div id="result">
   </div>

</div>

Demo

Zu guter Letzt gibt es noch eine kleine Demo des Ganzen :)

HACKED BY SudoX — HACK A NICE DAY.



Kommentare ( 2 Kommentare )

  • Tobias Antworten ↓

    Eine Noobfrage, da ich warscheinlich etwas übersehen habe:
    Ajax-Request kann man doch nur an URIs senden, welche die gleiche Quelle wie die aufrufende Seite haben.
    Wie wurde das hier umgangen? Ist der Api-Server dafür entsprechend konfiguriert?

  • Marcel Antworten ↓

    Hi,
    und wie mache ich das jetzt um die Genre(s) des Films/Serie herauszufiltern?

Schreib einen Kommentar