Une liste de vidéos Dailymotion avec la boucle DATA de SPIP

, par Valéry-Xavier Lentz

L’une des nouveautés de SPIP3 est la fameuse boucle DATA qui permet d’afficher un grand nombre de types de données à l’aide de boucles SPIP. J’ai donc envisagé de remplacer un widget flash par une simple liste des vidéos disponibles, assorties d’une vignette et de leur descriptif.

J’ai eu l’occasion de tester celle-ci après avoir constaté le poids considérable d’un d’un widget Dailymotion en flash dans l’une de mes pages [1] à l’aide de l’outil www.webpagetest.org [2]

Naturellement il est possible d’utiliser le flux RSS mais les données publiques consultables via l’API de Dailymotion, sous forme de fichiers JSON, permettent une sélection plus précise et plus complète de ce que l’on veut utiliser.

Après quelques tâtonnements, notamment pour des questions de syntaxe, j’ai pu aboutir au résultat souhaité à l’aide d’une boucle DATA suivante :

Le critère source permet d’indiquer ici le format, json, et l’adresse du fichier à afficher. Je récupère ici les vidéos publiées par l’utilisateur dont l’identifiant est LeTaurillon.

Je précise ensuite en paramètre que je souhaite récupérer la date de création, la description, l’URL pour insertion dans un player, l’URL d’une vignette de taille moyenne et le titre. Je limite ensuite à 20 le nombre de vidéos récupérées.

La liste des critères disponibles pour un utilisateur (user) est disponible ici (en anglais) : http://www.dailymotion.com/doc/api/obj-user.html Le fichier obtenu se présente ainsi

C’est le plugin Itérateurs (le site où j’interviens est en SPIP 2.1) qui traite la boucle DATA et converti le JSON de telle sorte que je puisse à l’aide des balises afficher les données.

Le critère datapath me sert à accéder à la liste des vidéos associées à l’utilisateur.

Je n’utilise pas toutes les données récupérées dans l’exemple présenté ici. J’affiche simplement la vignette, le titre et la description, avec un lien vers la vidéo sur le site Dailymotion. J’aurais pu utiliser embed_url pour afficher l’iframe appelant le player de Dailymotion. J’ai testé une formule où j’affichais le player pour la vidéo la plus récente et une simple liste pour les autres vidéos.

On peut naturellement associer tout ceci aux fonctionnalités habituelles de SPIP : les boucles, les filtres, les modèles, ajax... A priori tout cet affichage est conservé en cache ce qui est un avantage significatif sur les différents widgets fourni par des sites tiers.

Pour la petite histoire j’espère bien ne jamais avoir à utiliser tout ceci : je m’efforce surtout de convaincre la rédaction du site qu’il n’est pas pertinent d’afficher une liste de vidéos, c’est à dire en fonction du média, mais uniquement des listes de contenus en fonction de leur thème. Les vidéos ont selon moi vocation à être insérées et traitées comme les autres articles et non pas à être mise en avant simplement parce que ce sont des vidéos.


Ressources :