fboës - Der Blog

RSS ist niemals tot

Immer und immer wieder musste sich RSS der Vorwurf gefallen lassen, das es tot sei. Tatsächlich beruhen solche Aussagen aber auf einem Missverständnis, wofür RSS verwendet werden sollte. Kurz gefasst: Eine Website ohne RSS-Newsfeed ist wie ein tolles Produkt ohne Marketing.

Nachdem vor geraumer Zeit z.B. Facebook seine Unterstützung für RSS beendete, und viele Newsreader-Dienste ihren Betrieb einstellten, wirkte es so, als ob RSS nicht mehr nötig sei. Tatsächlich hat RSS aber zwei sehr unterschiedliche Verwendungszwecke:

  1. Normale Menschen wie du und ich können sich mit Hilfe eines Feed-Readers ähnlich wie bei einem E-Mail-Programm über Änderungen in den abonnierten RSS-Feeds informieren lassen. Eine besondere Spielform ist z.B. auch das Abonnement von Pod-Casts.
  2. Darüber hinaus kann RSS aber auch zur Syndikation verwendet werden, d.h. zur maschinenlesbaren Weitergabe von Artikeln. Damit gibt es für jede Publikationsplattform ganz unabhängig von der technischen Grundlage eine standardisierte API, für die es wiederum Unmengen an Bibliotheken gibt, um die Informationen zu verarbeiten. Über diesen Weg kann man beträchtlich die Reichweite seiner Plattform erhöhen.

Während der erste Einsatzzweck sich tatsächlich niemals so richtig durchgesetzt hat, lebt und prosperiert der zweite Zweck umso mehr.

Inhalte von RSS-Feeds

RSS liefert eine strukturierte Liste von Einträgen, wobei jeder Eintrag einen Titel, eine Beschreibung und einen Link haben sollte. Optional kann für jeden Eintrag z.B. ein Veröffentlichungsdatum hinzugefügt werden.

RSS wird oft so missverstanden, dass es sich nur zum Transport von Artikeln eignet. Die RSS-Spezifikationen decken aber eigentlich alles ab, was man mit einem Titel, einem Beschreibungstext und einem Link verbreiten möchte. Und das beinhaltet

  • neben ganz reguläre Artikel,
  • auch eine Sammlung von Links (d.h. in dem Newsfeed werden Links auf andere Webseiten gesammelt, wie z.B. in Bookmarks),
  • Videos (wie z.B. ein Youtube-Kanal),
  • Musik und Hörbeiträge (sog. Podcasts),
  • Protokolle über Ereignisse (z.B. Bearbeitungen in einem Wiki),
  • sowie Software-Updates (d.h. eine beliebige Software könnte nach ihrer Installation einen RSS-Feed abonnieren, in der ihr Hersteller über Updates informiert).
  • Nicht zuletzt bieten einige Nachrichtenagenturen Nachrichten zur Re-Publikation an, die man z.B. für einen eigenen Newsticker ohne weitere Verlinkung nutzen kann.

Erweiterungen

Da RSS wie alles in XML durch Namensräume erweiterbar ist, gibt es inzwischen für RSS auch sehr praktische RSS-Erweiterungen:

  • Mittels HTML-Content können komplette Artikel übertragen werden, d.h. inklusive Bildern, Videos, und Texten.
  • Mittels Media können umfangreiche Mediendateien wie z.B. Bilder in verschiedenen Auflösungen, Videos und Töne referenziert werden.
  • Mittels OpenSearch kann ein RSS-Feed als Suchergebnis verwendet werden, inkl. Anzahl alle Treffer.
  • Mittels GEO-RSS können geografische Metadaten zu einem Artikel übertragen werden, z.B. für ein Reisetagebuch.

Damit sind selbst ungewöhnliche Anwendungsfälle durch standardisierte Spezifikationen bereits abgebildet.

Selbst mit all diesen Erweiterungen kann man immer noch die Validität eines RSS-Feeds überprüfen – eine nicht zu unterschätzende Hilfe, wenn man RSS als API versteht, und auf eine standardisierte Kommunikation angewiesen ist.

Übrigens: RSS kann sich wie jede REST-API verhalten. Es liegt also in der Findigkeit des Programmierers des Newsfeeds, ob der RSS-Feed z.B. eine Zugangsbeschränkung hat, oder per Parametern die Auswahl der angezeigten Beiträge verändert werden kann.

Verwendung als API

Die Standardisierung erleichtert den Austausch von Daten zwischen heterogenen Umgebungen ungemein. Angefangen bei der Tatsache, dass RSS-Feeds als Sitemaps verwendet werden können, kann RSS von dem Betreiber einer Website dazu eingesetzt werden, um Artikel zu re-publizieren, d.h. seine Inhalte über weitere Kanäle zu verbreiten und seine Reichweite mit geringem Aufwand zu erhöhen.

Mit RSS kann man z.B. die folgenden Kanäle aufwandsarm bespielen:

  • Facebook Instant Articles importiert RSS-Feeds und stellt diese als Facebook Instant Articles dar.
  • Im Messenger Slack gibt es einen RSS-Importer, mit dem automatisch neue Beiträge in einem Slack-Channel gepostet werden können.
  • Mit Hilfe von IFTTT können neue Artikel aus einem RSS-Feed z.B. in Twitter, Tumblr, Facebook gepostet werden.
  • Aus einem RSS-Feed kann man ein Teaser-Widget bauen, den andere Seiten sich als iframe-Widget auf die Seite kleben können. Analog zu einem Facebook- oder Twitter-Widget kann man sich so die aktuellsten Nachrichten von anderen Seiten holen.
  • Nicht zuletzt kann man Abonnenten seines Newsletters per E-Mail, eines SMS-, Whatsapp- oder anderen Messenger-Dienstes über Neuigkeiten informieren.
  • Dynamische, parametrisierbare RSS-Feeds können von intern wie extern als Quelle für Suchergebnisse oder verwandte Artikel verwendet werden.

Der geneigte Leser einer Website muss also gar nicht selber verstehen, was RSS-Feeds sind, um sie doch implizit zu nutzen.

Übrigens: In fast jedem CMS sollte es eine Möglichkeit geben, pro Ausgabekanal einen separaten RSS-Feed zu definieren. So kann der Redakteur z.B. über die Vergabe von Tags steuern, dass bestimmte Meldungen nur z.B. bei Facebook oder im Newsletter republiziert werden.

Exkurs: JSON-RSS

RSS besteht aus XML. Nun haben sich schon länger viele kluge Menschen für JSON als fettfreie Alternative zu XML ausgesprochen. Neben dem geringeren Aufwand beim Parsen der Daten spricht auch für JSON, dass Javascript die Daten direkt verwenden kann; so kann ein Browser direkt per AJAX JSON-Daten anzeigen.

Ich persönlich hatte in 2011 über JSON-RSS nachgedacht, und 2012 beschäftige sich Dave Winer mit JSON-RSS. Tatsächlich gibt es seitdem verschiedene JSON-Experimente, die aber leider nie in einer Spezifikation mündeten.

Die Grundstruktur von JSON-RSS ist dabei überall identisch und eine einfach Übertragung der XML-Daten in JSON. Unterschiede bei der Implementation gibt es aber auch:

  • Das Element zum Sammeln aller Beiträge heißt mal item, dann wieder items.
  • Die Mehrzahl der Implementationen lässt das XML-Wurzelelement weg, Dave Winer verwendet in der Wurzel eine singuläre rss-Property.
  • Das Datum wird entweder als Javascript-typischer Integer-Timestamp ausgegeben, oder aber als RFC-Datum gemäß der XML-Vorlage.

So ist der JSON-RSS leider nicht wirklich so universell einsetzbar wie XML-RSS. Die JSON-Variante lohnt sich eher für lokale Spezialfälle, bei der alle Teilnehmer des Datenaustauschs vorher genau die Spezifikationen festgeklopft haben.

Dieser Blog verwendet ein lebendes Beispiel für JSON-RSS, das analog zum regulären XML-RSS gebaut wird.

Update: Manton Reece und Brent Simmons haben inzwischen auch JSON Feed spezifiziert, um Syndikation via JSON zu lösen.

Fazit

RSS sollte in jedem CMS vorhanden sein. Dabei ist nicht so sehr entscheidend, dass die Besucher der Seite auf RSS hingewiesen werden, sondern dass man RSS als Chance begreift, damit vielfältige Ausgabe-Kanäle ohne großen Aufwand zu bespielen. Bei der Verwendung eines validen RSS-Feeds erübrigt sich der Bau (und Test) von Konnektoren für ein proprietäres Daten-Austausch-Format.

Zuletzt geändert am

fboës - Der Blog

Zur Übersichtsseite