Forse non tutti sanno che il famoso sito IMDB - internet movie database, offre la possibilità di poter usare delle api per accingere dal suo immenso database di film, attori e tutto ciò che riguarda il cinema.
Come usare le api di imdb
In primis, bisogna dire che imdb offre la possibilità di usare i suoi dati solo per scopi non commerciali.
http://www.imdb.com/help/show_leaf?usedatasoftware
Quindi se volete creare un'app per voi stessi o da offrire gratis ok, ma se invece volete venderla e farci soldi, non potete farlo.
Fatta questa premessa, le api di imdb, o meglio, ciò che imdb attualmente offre, è la possibilità di fare una query sul suo database tramite una chiamata web.
I risultati della ricerca su imdb saranno in formato xml o json.
L'url da chiamare dal vostro programma/sito web sarà una cosa del genere:
http://www.imdb.com/xml/find?json=1&tt=on&q=PAROLA+DA+CERCARE
Dove i possibili parametri da passare tramite url saranno:
- json=1 - restituisce i risultati in formato json
- xml=1 - restituisce i risultati in formato xml
- tt=on - ricerca per titolo del film
- nm=on - ricerca per nome personaggio
- q=parola+da+cercare - parola/e da cercare, con il "+" come separatore al posto degli spazi
- nr=1 - questa non la so, ma potete anche ometterla :p
Quindi ad esempio, se voleste creare uno script in php per pescare i dati da imdb, potreste fare ad esempio una ricerca per titolo in questo modo:
<?php
$url="http://www.imdb.com/xml/find?json=1&tt=on&q=commando";
$risultato = file_get_contents($url);
echo $risultato;
?>
Il risultato della ricerca php sarà una lista di id, titoli ed altri dati base da trattare e ripulire.
Qualcosa del genere, nel caso del json:
{"title_popular": [{ "id":"tt0088944", "title":"Commando",
"name":"","title_description":"1985, <a href='/name/nm0504495/'>Mark
L. Lester</a>","episode_title":"","description":"1985,
<a href='/name/nm0504495/'>Mark L. Lester</a>"},{ "id":"tt1899353",
"title":"The Raid: Redemption", "name":"","title_description":"2011,
","episode_title":"","description":"2011, "}...ecc...]}
Quindi nella vostra pagina php (o quello che è), potrete ad esempio creare una lista di risultati con il titolo e l'anno, dove poter cliccare per finire direttamente sul sito di imdb, passandogli l'id e componendo l'url in questo modo:
http://www.imdb.com/title/tt0088944/
Immagino che non vi basti estrapolare una lista di titoli di film da imdb e poi linkare al loro sito.
Purtroppo però, imdb api sembra offrire solo questo tipo di ricerca.
Non c'è quindi un'altra pagina imdb da chiamare passandogli l'id e ricevendo come risultato i dettagli del film (titolo, regista, attori, trama, locandina, ecc...)... o almeno io non ho trovato nessuna documentazione in merito.
Quindi, se volete estrapolare i dati da imdb, dovrete farlo a manina con qualche script php, usando ad esempio il metodo descritto qui :p
C'è però un sito che fa il lavoro al posto nostro, il suo nome è OMDb API - The Open Movie Database:
http://www.omdbapi.com
OMDb sostanzialmente si interfaccia con le api di imdb e vi mostra lui stesso i risultati che cercate, filtrando tramite un po' più di parametri.
Passando ad esempio titolo e anno, potrete estrapolare l'id del film che cercate, e poi cercando nuovamente per id potrete ottenere tutti i dettagli principali del film in questione, compresa la trama (in inglese però).
Se però volete la locandina/poster, temo che si debba pagare.
Un esempio pratico: cerchiamo per titolo e l'anno il film robocop del 1987:
http://www.omdbapi.com/?t=robocop&y=1987&plot=full&r=json
Riceverete un risultato del genere:
{"Title":"RoboCop","Year":"1987","Rated":"R","Released":"17 Jul 1987","Runtime":"102 min","Genre":"Action, Crime, Sci-Fi","Director":"Paul Verhoeven","Writer":"Edward Neumeier, Michael Miner","Actors":"Peter Weller, ... ecc...
Che già volendo potrebbe bastarvi come risultato, in quanto contiene anche la trama, il regista, l'anno, il cast, ovvero tutti i dati principali del film.
La ricerca per id invece si fa con un url del genere:
http://www.omdbapi.com/?i=tt0093870&plot=short&r=json
Tutti i parametri usabili da omdb li trovate direttamente sul sito:
http://www.omdbapi.com/#parameters
Per quanto io preferisca interfacciarmi direttamente con imdb tramite uno script php che interroga le imdb api, la soluzione omdb è attualmente la più veloce e pratica.
Piaciuto l'articolo? Lascia un commento!
EmoticonEmoticon