Présentation de RSS

Cette page explique ce qu'est RSS. Vous n'allez pas créer vos propres fichiers RSS tout de suite, mais vous découvrirez la façon dont RSS est utilisé en général, ainsi que quelques fichiers RSS d'exemples des utilisations les plus courantes. Vous aurez aussi droit à un petit historique à propos de RSS.

Qu'est ce que RSS ?

Les versions de RSS les plus populaires sont des langages de balisage basés sur XML utilisés pour la syndication. (Bien qu'il existe des formats RSS basés sur RDF tels que RSS 0.90 et RSS 1.0 qui sont aujourd'hui dépréciés.) Les utilisations les plus courantes de la syndication RSS se font pour la syndication des sites Web d'actualité, des blogs, des radios et TV IP.

Ce tutoriel traite essentiellement de RSS 2.0, mais évoque certains aspects spécifiques aux autres versions de RSS.

On n'écrit presque jamais du RSS à la main. La plupart du temps, c'est un programme côté serveur (en général écrit en PHP, Java, C# ou Python) qui s'en occupe. Cependant, pour les besoins du tutoriel, nous allons écrire nos propres fichiers RSS à la main.

Bref historique de RSS

En mars 1999, Netscape a publié RSS 0.90. On était alors bien loin du RSS d'aujourd'hui. Il ne s'agissait pas réellement d'un format de syndication mais plutôt d'un format fournissant le résumé d'un site Web. En fait, à l'époque, RSS ne signifiait pas encore Really Simple Syndication, mais Rich Site Summary (NdT : Résumé de site enrichi).

En juillet 1999 sort RSS 0.91 de Netscape. Tout comme RSS 0.90, le RSS 0.91 de Netscape était un format destiné à fournir le résumé d'un site Web et non pas un format de syndication (comme c'est le cas aujourd'hui). Cette nouvelle version a été concue pour simplifier les choses. En effet, alors que RSS 0.90 était basé sur RDF, que beaucoup trouvaient particulièrement complexe, RSS 0.91 de Netscape était quant à lui basé uniquement sur XML et ajoutait une DTD permettant d'utiliser de nombreuses entités (que l'on trouve généralement en HTML).

Dès lors, Netscape déclara comme "déprécié" le format RSS 0.90 basé sur RDF et demanda à tout le monde d'utiliser le RSS 0.91 de Netscape qui lui, était basé sur du XML.

En juin 2000 sort le RSS 0.91 de Userland. Oui, vous l'avez compris, il existe bien deux versions différentes de RSS 0.91. La différence entre ces deux versions de RSS 0.91 (celle de Netscape et celle de Userland) est que le RSS 0.91 de Userland ne propose pas la DTD du RSS 0.91 de Netscape, et donc ne dispose pas des entités supplémentaires (et que l'on trouve généralement en HTML) dont disposait le RSS 0.91 de Netscape . En dehors de ça, ils sont similaires. Techniquement, le RSS 0.91 de Userland n'est qu'une version moins complète du RSS 0.91 de Netscape.

En décembre 2000, le RSS-DEV working group sort RSS 1.0. Cette version de RSS n'était plus basée sur du XML pur, mais à nouveau sur RDF, comme l'était le RSS 0.90 d'origine. Le RSS-DEV working group a modifié la signification de RSS en RDF Site Summary (NdT : résumé en RDF de site Web), du moins c'était ainsi qu'était présenté RSS dans cette version.

À ce moment là, nous avions donc le RSS 0.91 de Netscape, le RSS 0.91 de Userland et le RSS 1.0 du RSS-DEV working group.

Un peu plus tard, au cours de ce même mois de décembre 2000, Userland a publié RSS 0.92, censé remplacer le RSS 0.91 de Userland. Vous l'aurez remarqué, dès lors la numérotation des versions de RSS devient encore plus confuse puisque RSS 0.92 est une version plus récente que RSS 1.0.

À présent, on disposait du RSS 0.91 de Netscape, du RSS 1.0 du RSS-DEV working group et du RSS 0.92 de Userland.

En avril 2001, Userland a sorti une ébauche de RSS 0.93. Cette version de RSS n'a cependant jamais été finalisée et n'a donc jamais remplacé le RSS 0.92 de Userland.

Donc, à ce moment là, si l'on avait toujours le RSS 0.91 de Netscape, le RSS 1.0 du RSS-DEV working group et le RSS 0.92 de Userland, certains se sont également mis à utiliser RSS 0.93 et RSS 0.94 alors qu'ils n'étaient pas supposés l'être.

En septembre 2002, Userland publie RSS 2.0, destiné à remplacer RSS 0.92 ainsi que les ébauches RSS 0.93 et RSS 0.94 (que personne n'était supposé utiliser). Userland a choisi de passer directement le numéro de version à 2.0 puisque le RSS-DEV working group avait déjà utilisé le numéro de version 1.0 pour leur RSS 1.0 basé sur RDF.

À ce moment là, on pouvait donc trouver le RSS 0.91 de Netscape, le RSS 1.0 du RSS-DEV working group et le RSS 2.0 de Userland.

L'histoire ne s'arrête pas là. Une première fois en novembre 2002, et ensuite en janvier 2003, Userland a modifié les spécifications de RSS 2.0. Et bien que ces spécifications soient différentes, toutes sont présentées comme étant RSS 2.0 sur l'élément <rss>.

Aujourd'hui, nous avons toujours le RSS 0.91 de Netscape (puisque Netscape ne l'a jamais déclaré comme déprécié), bien que plus personne ne l'utilise. Les formats les plus utilisés sont les formats RSS 1.0 basé sur du RDF et RSS 2.0 basé sur du XML avec un léger avantage pour ce dernier. C'est cette version qui est présentée dans ce tutoriel.

Comment RSS est utilisé aujourd'hui

Aujourd'hui, RSS est essentiellement utilisé à des fins de syndication. La syndication est le fait de signaler aux autres que vous avez du contenu à les faire consommer. En d'autres mots, vous dites aux autres quelque chose qui ressemble à : « Ohé vous autres, j'ai des articles que je voudrais vous faire lire ! Abonnez-vous donc à mon flux RSS et vous aurez la possibilité de lire les articles plus récents qui sortent. »

NOTE : Si vous proposez un flux RSS qui n'est pas protégé par mot de passe, cela signifie que vous permettez implicitement à chacun d'utiliser son contenu comme bon lui semble. Tout le monde peut le lire, en faire une copie, partager cette copie, le diffuser sur sont propre site web, le re-syndiquer, etc.

Si vous ne souhaitez pas que cela arrive, ne placez pas votre contenu dans un flux RSS non protégé par mot de passe, et ne rendez pas le mot de passe public évidemment.

Les sites web d'actualité utilisent RSS pour fournir à tous la liste de leurs derniers articles parus. Par exemple :

   
    <?xml version="1.0"?>

    <rss version="2.0">
    
        <channel>
            <title>Exemple de site d'informations</title>
            <description>Ceci est un exemple de site d'informations journalistique</description>
            <lastBuildDate>Wed, 27 Jul 2005 00:30:30 -0700</lastBuildDate>
            <link>http://news.example.com/</link>

            <item>
                <title>Brève : J'aime le pain</title>
                <guid>4d4a0a12-f188-4c97-908b-eea27213c2fe</guid>
                <pubDate>Wed, 27 Jul 2005 00:30:30 -0700</pubDate>
                <link>http://news.example.com/artcle/554</link>
            </item>
            <item>
                <title>La nouvelle du jour: Les oiseaux volent</title>
                <guid>c4a63f09-b45b-466b-8773-6ff264001ab7</guid>
                <pubDate>Tue, 19 Jul 2005 04:32:51 -0700</pubDate>
                <link>http://news.example.com/artcle/553</link>
            </item>
            <item>
                <title>Le feu ça brûle</title>
                <guid>c1795324-d5ea-44fa-95b1-b5ce2090d4f1</guid>
                <pubDate>Sun, 15 May 2005 13:02:08 -0700</pubDate>
                <link>http://news.example.com/artcle/552</link>
            </item>
        </channel>
    
    </rss>
    

Les blogueurs utilisent RSS pour fournir à tous une liste de leurs derniers messages. Par exemple :

   
    <?xml version="1.0"?>

    <rss version="2.0">
    
        <channel>
            <title>Blog de Michel Martin</title>
            <description>Il s'agit du blog de Michel Martin</description>
            <lastBuildDate>Sun, 15 May 2005 13:02:08 -0500</lastBuildDate>
            <link>http://michel-martin.example.net/</link>

            <item>
                <title>Depuis le temps que je bloggue...</title>
                <guid>http://joe-blow.example.net/log/21</guid>
                <pubDate>Sun, 15 May 2005 13:02:08 -0500</pubDate>
                <link>http://joe-blow.example.net/log/21</link>
            </item>
            <item>
                <title>Je suis super mal1</title>
                <guid>http://joe-blow.example.net/log/20</guid>
                <pubDate>Sat, 14 May 2005 22:19:18 -0500</pubDate>
                <link>http://joe-blow.example.net/log/20</link>
            </item>
            <item>
                <title>Allo ?</title>
                <guid>http://joe-blow.example.net/log/19</guid>
                <pubDate>Sat, 14 May 2005 09:55:59 -0500</pubDate>
                <link>http://joe-blow.example.net/log/19</link>
            </item>
            <item>
                <title>Mauvais jour pour un chat noir</title>
                <guid>http://joe-blow.example.net/log/18</guid>
                <pubDate>Fri, 13 May 2005 13:13:13 -0500</pubDate>
                <link>http://joe-blow.example.net/log/18</link>
            </item>
        </channel>
    
    </rss>
    

Ceux qui montent une radio IP (IPRadio) utilisent RSS pour permettre aux utilisateurs d'écouter leurs émissions. Exemple :

   
    <?xml version="1.0"?>

    <rss version="2.0">
    
        <channel>
            <title>Hervé's IPradio Show</title>
            <description>La meilleure émission de radio du net, avec Hervé !</description>
            <lastBuildDate>Mon, 15 Aug 2005 16:12:37 -0400</lastBuildDate>
            <link>http://joe.ipradio.example.net/</link>

            <item>
                <title>On voit tes marques de bronzage</title>
                <guid>http://joe.ipradio.example.net/show/55</guid>
                <pubDate>Mon, 15 Aug 2005 16:11:57 -0400</pubDate>
                <enclosure url="http://joe.ipradio.example.net/show/55"
                           length="4487216"
                           type="application/ogg"
                />
            </item>
            <item>
                <title>La valise Hervé L</title>
                <guid>http://joe.ipradio.example.net/show/54</guid>
                <pubDate>Mon, 8 Aug 2005 13:12:12 -0400</pubDate>
                <enclosure url="http://joe.ipradio.example.net/show/54"
                           length="4892178"
                           type="audio/x-mp3"
                />
            </item>
            <item>
                <title>Les 10 minutes du peuple</title>
                <guid>http://joe.ipradio.example.net/show/53</guid>
                <pubDate>Mon, 1 Aug 2005 18:22:14 -0400</pubDate>
                <enclosure url="http://joe.ipradio.example.net/show/53"
                           length="3984215"
                           type="application/ogg"
                />
            </item>
        </channel>
    
    </rss>
    

NOTE : On parle parfois de Podcasting pour parler d'écoute de la radio sur internet. Il est préférable de ne pas employer ce terme car il semble que Apple possède les droits d'utilisation de ce terme. Ce mot appartient donc à Apple.

Ceux qui proposent de la TV sur IP (IPTV) utilisent RSS pour permettrent aux utilisateurs de voir leurs émissions en ligne. Exemple :

   
    <?xml version="1.0"?>

    <rss version="2.0">
    
        <channel>
            <title>L'émission de Sylvie</title>
            <description>L'émission à ne pas rater</description>
            <lastBuildDate>Tue, 23 Aug 2005 21:02:05 -0800</lastBuildDate>
            <link>http://sylvietv.example.com/</link>

            <item>
                <title>Ca c'est fort !</title>
                <guid>http://sylvietv.example.com/show/4</guid>
                <pubDate>Tue, 23 Aug 2005 21:02:05 -0800</pubDate>
                <enclosure url="http://katetv.example.com/show/4"
                           length="1911146"
                           type="application/ogg"
                />
            </item>
            <item>
                <title>Mate un peu ça !</title>
                <guid>http://sylvietv.example.com/show/3</guid>
                <pubDate>Tue, 16 Aug 2005 16:11:57 -0400</pubDate>
                <enclosure url="http://katetv.example.com/show/3"
                           length="1387442"
                           type="application/ogg"
                />
            </item>
            <item>
                <title>Encore moi</title>
                <guid>http://sulvietv.example.com/show/2</guid>
                <pubDate>Tue, 9 Aug 2005 13:12:12 -0400</pubDate>
                <enclosure url="http://katetv.example.com/show/2"
                           length="1894877"
                           type="video/mpeg"
                />
            </item>
            <item>
                <title>Salut</title>
                <guid>http://sylvietv.example.com/show/1</guid>
                <pubDate>Tue, 2 Aug 2005 18:22:14 -0400</pubDate>
                <enclosure url="http://katetv.example.com/show/1"
                           length="17442215"
                           type="application/ogg"
                />
            </item>
        </channel>
    
    </rss>
    

Le lecteur attentif se sera rendu compte que les exemples de site d'informations et de blogueur se ressemblent. De même, les exemples de IPRadio et IPTV se ressemblent. En fait, la seule différence entre les exemples site d'informations/blogueur et IPRadio/IPTV réside dans le fait que les 2 premiers utilisent l'élément <link> et que les 2 autres utilisent l'élément <enclosure>

NOTE : Ces exemples sont simplifiés à l'extrême et ont été conçus pour vous donner une idée de ce à quoi ressemble du RSS basique. Lorsque vous créerez vos propres flux RSS, vous les voudrez probablement plus complets et plus complexes et ils inclueront sûrement d'autres éléments RSS et vous utiliserez peut-être quelques-uns des différents modules RSS.

Étiquettes et contributeurs liés au document

Contributeurs ayant participé à cette page : Luxfuit, BenoitL, Takenbot, Pitchum
Dernière mise à jour par : Takenbot,