====== API AlloCiné ======

Une nouvelle version de l'API est disponible.

Vous la trouverez sur cette page : API AlloCiné v3.

===== La démarche ===== Depuis le temps qu'[[http://www.allocine.fr|AlloCiné]] existe, aucune API n'a encore été faite, ce qui est quand même inadmissible pour ce site de référence. Donc jusqu'à lors, quiconque voulait utiliser AlloCiné pour récupérer des données sur tel ou tel film était obligé de faire du parsing sauvage de leur site web. Mais c'était sans compter sur un peu de reverse engineering bonne volonté ! Pour y arriver, je me suis servi de l'[[http://www.cyrket.com/p/android/com.allocine.androidapp/|application AlloCiné disponible sur l'Android Market]]. Je l'ai donc installé sur mon téléphone tout en lançant en parallèle un ''tcpdump'' afin de capturer l'activité réseau. Et oh, miracle, une certaine adresse ''api.allocine.fr'' était appelée. Bingo ! J'ai donc un peu navigué dans l'application afin de trouver les différents web services. En voici quelques exemples. * http://api.allocine.fr/xml/movie?format=h264&version=2&partner=3&json=1&profile=large&code=132663 * http://api.allocine.fr/xml/movielist?filter=nowshowing&version=2&partner=3&json=1&order=theatercount&page=1&count=25 Le premier web service ''movie'' est très intéressant étant donné qu'il permet de récupérer l'intégralité des informations d'un film pour peu qu'on connaisse son identifiant.\\ Le second, ''movielist'', permet quant à lui de récupérer une liste de films en fonction de critères particuliers. Un problème subsiste tout de même : __comment faire pour récupérer l'identifiant d'un film à partir de son titre ou bien de mots clés__.\\ En effet, l'application Android ne gère pas encore la recherche, ce qui est bien dommage d'ailleurs. La première étape fût de trouver le nom du web service dédié à la recherche. Avec un peu de logique, on le trouve en 2 secondes : ''search''. * http://api.allocine.fr/xml/search? La seconde étape, un peu plus compliquée, fût de trouver le paramètre auquel on pouvait passer un critère de recherche. Pour cela, j'ai un peu fait le bourrin en utilisant un dictionnaire anglais d'environ 80000 mots et en les essayant un par un (avec un script bien sûr ...). Quelques heures plus tard, j'obtenais une liste de paramètres : * count * declare * page * partner * profile Pas mal ! Mais aucun de ces paramètres ne permettait de vraiment faire une recherche à partir d'un mot clé ... :-( Plan B : tester toutes les lettres de l'alphabet.\\ Et là, le miracle ! Je tombe sur la lettre ''q'' (comme //query//, logique ...) et ça marche ! * http://api.allocine.fr/xml/search?q=pouet&partner=1 On a maintenant toutes les APIs nécessaire pour trouver des informations intéressantes à propos d'un film à partir de son nom. ===== Les APIs ===== Les différentes APIs s'appellent toutes en ''GET''. Le ''POST'' ne semble pas fonctionner. ==== Recherche : search ==== * URL : ''http://api.allocine.fr/xml/search'' * Paramètres * ''q'' : chaîne à chercher (chaîne de caractères) * ''partner'' : schéma XML à utiliser en fonction des partenaires (''1'', ''2'', ''3'', ''4'') * ''json'' (optionnel) : renvoie le résultat au format JSON si ''json=1'' (booléen) * ''count'' (optionnel) : nombre de résultats à renvoyer (entier) * ''profile'' (optionnel) : degré d'informations renvoyées (énumération : ''small'', ''medium'', ''large'') * ''page'' (optionnel) : numéro de la page de résultats à afficher (10 résultats par page par défaut) * ''declare'' (optionnel) : aucune idée !? ==== Informations sur un film : movie ==== * URL : ''http://api.allocine.fr/xml/movie'' * Paramètres * ''code'' : identifiant du film (entier) * ''partner'' : schéma XML à utiliser en fonction des partenaires (''1'', ''2'', ''3'', ''4'') * ''json'' (optionnel) : renvoie le résultat au format JSON si ''json=1'' (booléen) * ''profile'' (optionnel) : degré d'informations renvoyées (énumération : ''small'', ''medium'', ''large'') * ''format'' (optionnel) : format vidéo !? (''h264'', ???) * ''version'' (optionnel) : aucune idée !? ==== Liste de films : movielist ==== * //à compléter// ==== Horaires des cinémas : showtimelist ==== * ''zip'' : code postal de la ville * ''lat'' : coordonnée latitude du cinéma (uniquement si ''zip'' n'est pas précisé) * ''long'' : coordonnée longitude du cinéma (uniquement si ''zip'' n'est pas précisé) * ''radius'' : rayon autour de la ville en question (entre 1 et 500 km) * ''partner'' : schéma XML à utiliser en fonction des partenaires (''1'', ''2'', ''3'', ''4'') * ''json'' (optionnel) : renvoie le résultat au format JSON si ''json=1'' (booléen) * ''movie'' (optionnel) : identifiant du film (si non préciser, affiche tous les films) * ''date'' (optionnel) : date au format YYYY-MM-DD ==== Bonus : liens direct des vidéos ==== En bonus, voici une autre API qui permet de récupérer les liens directs vers les vidéos (émission, bande-annonce, etc.). Il est possible de récupérer la vidéo en LD/MD/HD. * URL : ''http://www.allocine.fr/skin/video/AcVisionData_xml.asp'' * Paramètres * ''media'' : identifiant du média vidéo (entier) Cet identifiant peut être récupéré grâce à l'API ''movie'' par exemple. Il correspond à l'attribut ''code'' des ''''. ===== Ils se servent de l'API ===== Si jamais vous tombez sur cette page et que vous vous servez de cette API, je me ferais une joie de lister votre application ici.\\ \\ * EzTvix : http://blog.eztvix.info * Str9am : http://www.abysscorp.org/project/str9am * Ma filmothèque : http://ma-filmotheque.fr * WebMovieManager : http://sourceforge.net/projects/webmoviemanager/ * AlloWMC : https://sites.google.com/site/allowmc/home * Lib Ruby : https://rubygems.org/gems/allocine_parser & https://github.com/mlamarque/allocine * Lib DotNet : http://allocineapi.codeplex.com/ * Application Android CinéMinute : https://play.google.com/store/apps/details?id=info.toyonos.cineminute * Cinegeek : http://cinegeek.alwaysdata.net/ * API CoffeeScript : https://github.com/cedias/AlloCoffee * Application Android CinéTime : https://play.google.com/store/apps/details?id=fr.neamar.cinetime * MovieFlow Android : http://www.movieflow.net/ Contactez moi via le [[:contact|formulaire de contact]] ou bien directement sur mon mail {{keywords>allocine api film films movie movies search recherche xml json movielist api.allocine.fr webservice webservices web service}}