dimanche 29 avril 2007

RSS : Faites des mash-up chez vous... (Part 1)

  logo rssAujourd’hui je vais essayez de vous expliquer comment on peut  s'amuser en creant des mash-up  de flux RSS et même de gagner de l’argent avec!! Evidement cela ne va pas vous rendre milliardaire, mais sait'on jamais...

Bon d’abord qu’est que c’est que ce gros mot : Mash-Up ?? Le mash-up c’est un terme trés à là mode dans le web 2.0. Expliqué à la Eric & Ramsy ça pourrait donner quelque chose comme cela : “ le mash-up c’est quand tu mets plusieur sites web dans ta bouche, tu les Mash, ils se melengent… et Up…. Nous n’avons pas d’autre explications…!! “(désolé)

Pour ceux qui n’ont toujours pas compris c’est quand on fait cohabiter plusieur services web ensemble pour en creer un nouveau (Wikipedia vous l’explique ici) par exemple : imaginons que vous puiciez récuperer les localisisations des personnes qui encherisent sur votre produit sur ebay, imagninons maintenant que par quelques savantes manipulations vous puiciez les localiser sur google map, juste par le fait qu’ebay envoie les infos de localisation à google.map. Voilà se que pourrait etre un mashup (bien sur cet exemple n’a pas vraiment d’interet, c’est juste pour vous expliquer un peux les choses…)

Bon, je n'est pas la pretention de voux expliquer ici comment programmer une chose pareil, mais à un niveau beaucoup moins hard, de s'amuser à creer des petits mash-up pour se faire ces propres flux RSS.

 

Pour cela  voici d'abord les armes du Masheur ( oserais'je : la machette du macheur...)

Des mixeurs de flux rss hyper polivalent tel que : Xfruit ou Yahoo Pipes 

Un outil pour fabriquer des flux à partir d'une page web : Feed43

Un outil de filtrage de flux Rss : Feedsifter

Un outil de monitoring de page Web : Feedwhip

Un outil d'archivage des flux Rss : Feedcatch

Est enfin un outil pour gagner un petit peu d'argent avec tout cela : Feedpass

Un lecteur pour lire le tout : Google Reader

Maintenant, nous allons nous mettre dans quelques situations fictives qui nous permettrons d'utiliser tout ces services web.

 

Creer un flux pour une page qui 'en possède pas !

Par exemple ; imaginons que vous réviez d'avoir un flux RSS vous permettant d'acceder à chaque nouvel épisode des Guignols de l'info ! Comme vous pouvez le constater là page ne contient aucun flux... Pas de probleme utilisons Feed43 !!

 

Feed43 logo

Ce service est une petite merveille, soumettez lui une page web, ainsi  qu'un "pattern" definissant les mots à extraire, et feed43 reconstruira un flux Rss à partir de la page. Il n'est pas nécessaire de connaitre le code Html pour utiliser ce service, mais celà peu vous aider à formatter un flux au plus proche de vos désirs.

Les pattern sont également trés facile à créer et sont basés sur des caratéres "wildcard" :

  • Le {%} définie les chaines de caractére à inclure dans le flux.
  • Le {*} définie les chaines de caractéres à passer.

Toutes les explications sont ici.

 

L’utilisation du service s’articule de la façon suivante :

- Saisissez la page web sur laquelle vous voulez créer un flux.

- Le code de la page s’affiche.

- C’est le moment de repérer les sections de texte et/ou de code que vous souhaitez voir apparaitre dans votre flux.

- Saisissez votre "pattern" soit dans "Global search Pattern" si vous n’avez qu’un seul élément à récupérer (c’est plutôt rare !) ou alors avec "Item (repeatable) Search Pattern" si vous voulez récupérer une liste d’éléments. C’est notre cas ici puisque nous souhaitons récupérer les épisodes du lundi, mardi etc...

feed43 image

- Commencez votre pattern par un élément de code html qui ce répète systématiquement au début de chaque morceau de texte que vous avez besoin de récupérer. Dans notre exemple : <td valign= ‘middle’ align=’left‘><a href=’ permet cela. Notez bien que si je m’étais contenté uniquement de <a href=’ j’aurais obtenu quantité de résultats inutiles pour le flux.

- Le wildcard {%} me permet d’enregistrer l’url de la page ou se trouve la vidéo.

- ‘> me permet de définir la fin des caractères à enregistrer.

- {*} ne regardera aucun autre caractère jusqu'à ce qu’il tombe sur /-->

- De nouveau, avec {%}, je récupère l’ url + le code des images de chaque épisode. J’arrête cette récupération dés que je rencontre les caractères </a>.

- Je passe tout caractères (grâce à {*}) jusqu'à ce que j’arrive sur une balise <b>.

- Je récupère enfin la date de diffusion avec {%} qui se termine juste avant la balise <br/>.

 

Le resultat de chaque {%} est stoqué dans des variables {%1}, {%2} etc.. (cf le cadre "Clipped Data") qui pourront être combinés à volonté pour reconstruire le flux final. 

Comme ceci :

feed43 rss structure

Voila c'est fini. Le resultat est visible juste en dessous. notez bien que le titre du flux est la concaténation de la varible {%3} correspondant à la date, et de la chaine "les Guignols de l'info". L' url à la variable {%1} etc, etc.. Impressionnant non !!!!

 

Manipulez, modifiez, torturez .!?. vos flux. 

Bon, maintenant, essayons quelque choses d'un peu plus compliqué : Plutôt que d'être redirigé sur la page web des Guignols lorsque vous utilisez le flux... Pourquoi ne pas réecrire le flux pour qu'il ouvre directement les vidéos dans MediaPlayer !!! Pour cela nous allons utiliser : Yahoo! Pipes

 

Yahoo pipes logo

Ce service est vraiment la Rolls du "macheur" de flux : possibilités impressionante, réactivitée des developpeurs du service étonnante, réalisation impéccable (sans flash) à faire palir de honte les développeurs de chez Google et que ne renirait pas, j'en suis sur JB Boisseau ! A ce propos, et uniquement pour les féru de code. Voici une vidéo tournée chez Google ou les petits génies de chez Yahoo! viennent expliquer comment il ont développés le projet… (Extrêmement intéressant).

 

 

Yahoo! Pipes jouis actuellement d'un buzz impressionant sur là toile, le service victime de son succes est même déjà "tombé". J'ai pu lire ça et là que c'était vraiment un service trés simple à utiliser et qu'il vous sortait des flux RSS en deux temps trois mouvements. J'aimerai apporter quelques explications : 

Yahoo! Pipes est extrement puissant, MAIS !!! ce n'est absolument pas un outils pour internaute de base :  La puissance de ce service repose essenciellement sur l'utilisation intensive des "Expressions Régulieres" point de programmation qui même si il n'est pas d'une difficulté extreme demande un certain d'entrainement, temps le nombre de commandes est importante !

Ceci étant dit, revenons à nos moutons ou plutôt nos guignols.

Donc, pour pouvoir acceder à la vidéo directement il faut avant tout rechercher dans la page d'origine l'adresse du fichier video qui se presente sous la forme :

mms://vipmms.canalplus.fr/canalplus/guignols_070327_a.wmv

Chaque video, possede sa propre page avec sont propre fichier wmv. comme il est impossible d'utiliser feed43 ou Yahoo! Pipe pour retrouver ce nom de fichier, l'astuce consiste à modifier grace à Yahoo! Pipe l'url du fichier video en changeant la partie _070327_ (correspondant à la date de diffusion) par la date du jour.

 

Tout d'abord, modifion l'adresse du lien de la video dans Feed43 :

feed43 link

Notez que j'ai modifié l'url en remplassant les mois et les jours par les caractéres MMDD.

Maintenant allons dans Yahoo! Pipes. Tout d'abord inserons le module qui permet de charger les flux RSS :

>Sources > Fetch Feed

pipe exemple

Lorsque cette boite est selectionnée (elle devient alors orange), le débugger en bas de page affiche alors les tags (en gris) que Yahoo! Pipe peut traiter :

Ces tags correspondent aux balises XML qui constituent votre flux RSS.

pipe exemple 2   

Voici donc ce que je vais faire : je vais recupérer la date en fin de titre (tag : title) dont je me servirais pour remplacer les caracteres MMDD 

Premiere chose à faire ; créons deux nouveaux tags qui ferons office de variables pour le jour à retrouver ainsi que le mois. Comment fait t'on cela ? Comme ceci :

>Operators > Rename

pipe exemple3 

Ici : le contenu du tag "title" sera copié dans deux nouveaux tags appellés "Dataday" et "DataMounth".

Une verfication dans le débugger confirme ce que je viens de décrire :

pipe exemple 4

Maintenant nous n'avons plus qu'a triturer nos deux nouveaux tags avec les fameuses expressions regulieres (en clair c'est ici que cela se complique) afin d'en extraire jours et mois. Malheureusement pour vous, je ne rentrerais pas dans les details synthaxique des expressions regulieres, mais je vous encourage vivement à lacher un peu vos blogs et lecteurs de flux afin d'apprendre deux ou trois choses sur ces expressions regulieres car cela déculpera les possiblités d'utilisation de Yahoo! Pipes.

Le module regex ce trouve ici :

>Operators > Regex

Et voici comment je l'ai remplie :

pipe exemple 5

- La 1er ligne extrait les chiffres du jour dans le tag "DataDay" en utilisant l'expression ^.*(0[1-9]|[12][0-9]|3[01]).* et place le resultat dans une varible $1 (le resultat est visible dans le débugger).

- La 2eme ligne extrait le Mois du tag "DataMonth" en utilisant l'expression ^.*(0[1-9]|[12][0-9]|3[01])(.*) et place le resultat dans une varible $2 (le resultat stocké sera dans cet exemple AVRIL).

- La 3eme ligne remplace les caractéres DD du tag "Link" pas la valeur de la variable $1

- Les lignes suivante remplacent simplement le mois en lettre par son equivalent en chiffre. Le debugger affiche bien 04 pour "DataMonth" qui correspond à AVRIL.

- L'avant derniere ligne supprime un espace que vous ne pouvez voir mais qui existe belle est bien avant le chiffre 04.

- La derniere ligne remplace les caractéres MM du tag "Link" pas la valeur de la variable $2

Vous pouvez tester le nouveau flux généré ici :

 

 

Le Pipe est en acces libre

J'espere que ce petit exemple vous donnera envie d'utiliser Yahoo! Pipes qui est vraiment exeptionnel. Les possibilitées de ce service sont énorme. Voici quelques idées en vrac que vous pouvez réaliser grace à ce service :

 

Vous souhaitez trier pas ordre chronologique plusieurs flux que vous avez agrégés.

Vous voulez modifier les flux de Digg pour qu’ils pointent directement sur l’article à lire.

Vous aimeriez bien filtrer les offres d’ebay en fonction de leur code postal.

Vous rêvez de pouvoir ajouter à vos titres le nom de domaine de provenance du post

Et bien entendu toute les fonctions tel que : filtrage, copie, élimination, analyse de tout ou partie un flux rss.

Voila c'est fini pour aujourd'hui. Dans la prochaine partie, je vous expliquerez comment agréger des podcasts de différentes sources et de différents formats. Je vous présenterai également les divers services que nous n’avons pas encore utilisés pour réaliser des taches simples sur nos flux. Bon courage et bon mashage...

 

 

podcast blog