Je sais, vous allez me prendre pour un piper fou, et à chaque nouveau billet, vous dire : “Bon, il commence à radoter avec ses machins.”
Ce n’est pas que de ma faute : récemment, quelqu’un (non, pas Marlène, pour une fois) m’a poussé dans mes retranchements sur ce que j’arrivais ou non à faire avec Yahoo Pipes. Bref, ces derniers jours j’ai développé des compétences et découvert les “pipes d’appui” (la terminologie est de moi et n’est pas fixée : je vous laisse rebaptiser ça comme vous voulez, éventuellement en vous inspirant d’autres domaines).
Le principe est “simple” : je crée un pipe, mais celui-ci n’a d’intérêt que lorsqu’il est intégré dans un autre pipe.
Ainsi, j’ai créé un pipe qui, pour un ISBN donné, va lancer une requête dans Amazon : avec l’ISBN indiqué, il construit une URL de requête et ouvre la page des résultats chez Amazon) :
- S’il trouve l’ISBN, il sort le résultat : “Nombre d’ISBN trouvés : 1″ (même s’il a plusieurs résultats pour un même ISBN, il ne sort que le chiffre 1)
- S’il ne trouve pas l’ISBN, il ne sort rien du tout.
Ce pipe n’a aucun intérêt : si vous voulez savoir si un ISBN se trouve ou non chez Amazon, vous allez sur le site d’Amazon et vous le cherchez.
Sauf que par dessus, j’ai construit un autre pipe : on lui donne une liste d’ISBN (les ISBN sont sans tirets, et ils sont séparés les uns des autres par des tirets). Et pour chaque ISBN, il applique le pipe précédent.
Ca se passe ici : j’ai fait glissé un de “mes pipes” à l’intérieur du module Loop, et j’ai coché “Emit results” pour que le résultat de la boucle, ce soit les pipes-relais mis bout à bout.

- Quand l’ISBN produit un item, il sort un item
- Quand il ne produit rien, il en sort rien
- Et à la fin, le second pipe décompte le nombre d’items (donc le nombre d’ISBN reconnus)
Ca ne vous évoque rien ? C’est une sorte d’API Amazon : il transforme les données HTML d’Amazon en données XML plus manipulables.
Pourquoi est-ce que j’ai fait ça ? Parce que pour utiliser les API Amazon, il faut avoir une clé Amazon et utiliser les API en question pour un site web. Moi, j’en ai besoin en local, ponctuellement. J’avais pu tester les API LibraryThing pour constater qu’ils couvraient 30% de notre catalogue (sur un échantillon de 1000 ISBN). Je n’avais pas pu le faire pour Amazon.
Désormais je sais qu’Amazon couvrirait 94% de nos notices. Pour être plus précis : Amazon a identifié 94% de nos ISBN. En l’état, cela ne me dit pas quel pourcentage de couvertures il peut me proposer, ou de tables des matières, résumés, commentaires, etc. Il faudrait que j’affine l’analyse des réponses que le site donne dans ses listes de résultats.
Donc j’ai fait plusieurs autres pipes :
Rq : j’ai dû entrer les ISBN par paquets de 200 (donc en 5 fois), car Yahoo Pipes n’arrivait pas à tout traiter d’un coup. Voici ce que ça donne :
| 1000 ISBN en 5 fois |
1er jeu
|
2e jeu
|
3e jeu
|
4e jeu
|
5e jeu
|
| Nombre d’ISBNs trouvés |
190
|
192
|
187
|
188
|
191
|
| Nombre de couvertures retrouvées |
102
|
141
|
118
|
124
|
129
|
| Nombre de livres “feuilletables” |
0
|
0
|
29
|
30
|
14
|
En comparant les écarts d’une colonne à l’autre (fonction écart-type d’Excel), on constate que pour contrôler seulement la présence des notices, 200 notices auraient été suffisantes. Mais j’ai bien fait d’utiliser mon échantilon de 1000 ISBN pour les couvertures et les feuilletages, car il y a de grandes disparités.
Conclusions :
- Amazon contient 94,8 % de nos notices
- Amazon peut proposer des couvertures pour 61,4% de nos livres
- Amazon peut proposer 7,3% de nos livres en feuilletage
Ce qu’il faut en retenir ?
- Qu’après plusieurs étapes encore, je pourrai vous entretenir de la manière d’utiliser ces pipes-relais (par exemple : convertir un numéro de département en son nom, via la liste donnée sur Wikipedia comme source d’information).
- Que vous pouvez déjà tester votre propre catalogue pour voir si ça vaut le coup d’utiliser Amazon comme fournisseur de contenus enrichis : en entrant une liste d’ISBN dans ce pipe.
- Après examen de ce à quoi ressemble une page de résultat, je ne peux pas savoir si Amazon me fournira pour un ISBN donné un résumé et une table des matières. Mais je peux considérer (ou plutôt : je me résigne à me contenter de ce) que le feuilletage induit un résumé et/ou une table des matières.
- Que je produirai sans doute les mêmes outils pour les sites que je n’ai pas pu tester par API (pour cause d’API Key) : WorldCat, Google Books, …
En fait, j’ai déjà fait celui pour Google Books — vérification de la présence de notice, couverture, et extraits. Mais à plusieurs reprises il a refusé de répondre après plusieurs requêtes : il a sans doute remarqué que les serveurs de Yahoo le bombardaient un peu trop de questions et que ça ressemblait à du hacking.
Bref, j’ai finalement réussi à l’utiliser, mais je vous préviens tout de même du problème. Voici les résultats
| ISBN dans Google Books |
1er jeu
|
2e jeu
|
3e jeu
|
4e jeu
|
5e jeu
|
| Nombre d’ISBNs trouvés |
185
|
184
|
187
|
189
|
186
|
| Nombre de couvertures retrouvées |
92
|
22
|
26
|
36
|
33
|
| Nombre de livres avec extraits |
70
|
22
|
26
|
34
|
33
|
Donc en % par rapport à notre collection, ça donne :
- GBS a reconnu 93,1% de nos ISBN
- GBS peut fournir 20,9% des couvertures de ces livres
- GBS peut fournir des extraits pour 18,5% de ces livres
Tableau comparatif GBS – Amazon
| |
Amazon
|
Google Book Search
|
| Nombre d’ISBNs trouvés |
94,8%
|
93,1%
|
| Nombre de couvertures retrouvées |
61,4%
|
20,9%
|
| Nombre de livres avec extraits/feuilletage |
7,3%
|
18,5%
|
Le nombre d’ISBN reconnus est équivalent (alors que pour les seules nouveautés, GBS n’avait que 76% de nos notices). Amazon a beaucoup plus de couvertures disponibles, et GBS un peu plus d’ouvrages disponibles sous forme d’extraits. Quel service voudrez-vous privilégier ?
Pourquoi pas les couvertures chez Amazon et les enrichissements textuels chez Google ?
PS : pour ceux qui ne voient pas comment, d’une liste d’ISBN en ligne, produire des ISBN sur la même ligne et séparés par des tirets, une petite vidéo.