Formats, encodage, XML

Syndication de contenu (flux RSS, Atom)

Cet article fait le point sur la syndication de contenu, que vous connaissez peut-être sous les noms «RSS», «fil RSS» ou «flux RSS». De quoi s'agit-il, à quoi ça sert et comment peut-on la mettre en place sur un site web?

Article par (Alsacréations, Strasbourg)
Créé le , mis à jour le (34864 lectures)
Tags : xml, rss, rdf, agrégateur, syndication, flux de syndication, atom

Qu'est ce que la syndication de contenu?

rss

La syndication de contenu (généralement sous forme de «flux de syndication», souvent appelés «fil» ou de «flux» RSS) est une application pratique du langage XML permettant de créer un fichier résumant les dernières informations du contenu d'un site web. Celui-ci étant régulièrement mis à jour de façon structurée, il est possible à l'aide d'un lecteur de flux — aussi appelé agrégateur ou lecteur RSS — de rafraichir automatiquement ces informations sans avoir à visiter chaque site manuellement. C'est l'outil idéal pour la veille technologique.

Concrètement, un flux de syndication est un ficher XML disponible sur un site, et qui contient des informations sur les derniers contenus publiés, leur date de publication, l'adresse (URL) pour les consulter sur le site, et soit un aperçu du contenu, soit le contenu complet en HTML. Lorsque ce fichier est mis à jour, votre lecteur de flux vous prévient automatiquement et il ne vous reste plus qu'à aller voir la mise à jour. Par exemple, il existe sur ce site plusieurs fils RSS.

Ce système est également utilisé pour la mise en place de Podcasts, qui ne sont rien d'autres que des liens vers des fichiers audio (mp3 la plupart du temps) contenus dans un flux de syndication.

S'abonner aux flux de syndication

Chrome Extension RSS Subscription

La plupart des navigateurs web récents permettent de consulter voire de s'abonner aux flux de syndication, via des marque-pages dynamiques (Firefox) ou un système complet pour la consultation des flux de syndication (Opera). De nombreux client mail (Thunderbird, Apple Mail, Outlook…) gèrent aussi le RSS, du moins dans leurs versions récentes. Enfin, il existe de nombreux logiciels dédiés à la lecture des flux de syndication, et des applications en ligne telles que Google Reader ou Netvibes.

Formats des flux de syndication: RSS, Atom…

Il existe de nombreux formats pour les flux de syndication. On parle généralement du format RSS, mais l'histoire de ce format est mouvementée et il s'agit en réalité de nombreux formats différents et souvent incompatibles, proposés par différentes organisations au début des années 2000. À l'inverse, le format Atom n'a pas une telle abondance de versions, mais on peut considérer que Atom est un autre format équivalent aux différents formats RSS, la principale différence étant qu'il n'utilise pas le sigle «RSS».

Est-ce que, pour autant, produire un flux de syndication est infernal à cause de toutes ces versions différentes? Eh bien non, pas tellement. Tout d'abord, certains formats ont eu un meilleur succès que d'autres et ont peut limiter la liste des principaux formats RSS à deux formats. Si on rajoute Atom, cela fait trois formats disponibles. Et, bonne nouvelle, la quasi-totalité des outils de lecture de flux sont capables de gérer ces trois formats de manière transparente.

Il suffit donc, pour la plupart des sites, de choisir un format parmi ceux-ci:

  • RDF Site Summary (RSS) 1.0
  • Really Simple Syndication (RSS) 2.0
  • Atom 1.0

Il existe aussi les formats RSS 0.90 (proche de RSS 1.0 car tous deux basés sur RDF), ou encore RSS 0.91. On les laissera de côté car RSS 0.90 n'est plus vraiment utilisé, et RSS 0.91, bien qu'encore utilisé, pose quelques problèmes de compatibilité (il y a notamment des versions concurrentes de RSS 0.91 proposées par plusieurs organisations!).

À l'heure actuelle, c'est RSS 2.0 qui tend à s'imposer. Atom, publié comme standard par l'IETF en 2005, est aussi largement utilisé et offre quelques avantages sur son concurrent (fruit d'un travail collaboratif de standardisation, extensibilité), même s'il reste quelques outils (scripts notamment) qui gèrent RSS 2.0 et pas Atom.

Créer un fil RSS ou Atom

Tout d'abord, il faut savoir que de nombreux outils de publication de site web génèrent automatiquement des flux RSS et/ou Atom, ou le proposent en option. C'est le cas de tous les systèmes de blog (Dotclear, WordPress et les autres), et de la plupart des CMS (systèmes de gestion de contenu). Si vous utilisez ces outils, la plupart du temps votre travail se limitera à mettre en avant le flux RSS ou Atom sur votre site si vous le souhaitez.

Si vous utilisez un outil tel qu'un framework de développement web, il propose sans doute des fonctions ou un module pour la création de flux de syndication. Si vous développez un site sans l'aide d'un framework, il existe de nombreuses classes PHP, librairies Python ou autre outils disponibles que vous pouvez utiliser.

Enfin, vous pouvez aussi choisir de créer vos flux de syndication «à la main». Pour cela, il faudra respecter la spécification du format utilisé. Voici la spécification RSS 2.0 et une introduction au format Atom 1.0. Pour vérifier que votre flux de syndication est correct, utilisez le RSS Validator, qui permet de valider les formats RDF Site Summary (RSS) 1.0, Really Simple Syndication (RSS) 2.0, et Atom 1.0.

Aider les navigateurs à trouver vos flux de syndication

Même si vous ne mettez pas en avant vos flux sur les pages de votre site, l'essentiel est de dire aux navigateurs que votre site propose un flux RSS. Pour cela, on utilisera l'élément link. Suivant les pages du site, on voudra peut-être lier vers les flux les plus pertinents. Prenons comme exemple un site d'actualités informatiques; sur la page d'index de la catégorie «Développement web», on pourrait avoir (dans le head):

<link rel="alternate" type="application/rss+xml"
  title="Actus du développement web (RSS)" href="/news/dev.rss" />

<link rel="alternate" type="application/atom+xml"
  title="Actus du développement web (Atom)" href="/news/dev.atom" />

<link rel="alternate" type="application/rss+xml"
  title="Toutes les actus (RSS)" href="/news/all.rss" />

<link rel="alternate" type="application/atom+xml"
  title="Toutes les actus (Atom)" href="/news/all.atom" />

Attention: proposer plusieurs formats est une bonne chose pour la compatibilité (si le lecteur RSS de l'utilisateur ne lit pas le format Atom, il peut utiliser le RSS…), mais cela peut être perturbant. Pourquoi proposer quatre choix (qui pourront être affichés par le navigateur comme une liste déroulante s'il clique sur l'icone «Syndication» dans la barre d'adresse, par exemple), quand il s'agit avant tout de choisir entre deux contenus différents? On aura donc intérêt à proposer un seul format (peut-être RSS 2.0 de préférence pour une meilleure compatibilité?) dans le code HTML, et à fournir les liens vers une version alternative (Atom par exemple) sur une page recensant les différents flux de syndication.

Ressources