Die Zeit (Wochenzeitung) hat jetzt bekanntlich eine REST API, mit dem man Artikel seit 1946, Autoren und andere Dinge durchsuchen kann. Die Requests sind auf 10K/Tag begrenzt und Volltexte abrufen spielt es momentan auch noch nicht.

Die automatisierte Abfrage stellt die Technik bereit, um solche Informationen finden zu können. Nun braucht es nur noch Fragen.

Ich habe mich gefragt, was man mit einer API der Zeit wohl machen könnte. Kennt ihr diese Geburtstagszeitungen? Also keine nachgemachten Zeitungen, wo die Schlagzeile “Tobi ist 42” lautet. Sondern Ausgaben echter Zeitungen vom Geburtstag der Gefeierten. Das wollte ich umsetzen.

Dazu war es sinnvoll, erstmal die API auf die benötigten Methoden zu untersuchen, vor allem eine Suche von Artikeln nach Zeitraum ist für eine individuelle Geburtstagszeitung hilfreich. Explizit in der Dokumentation beschrieben ist die Suchfunktion nicht, aber es geht. Als Nächstes nahm ich mit dem Explorer das Ergebnisformat unter die Lupe. Dieses ist ganz normales JSON, für Artikel werden hauptsächlich Titel und Teaser-Text zurückgeliefert.

Im Laufe des Probierens fiel mir auf, dass die API Statuscode 200 zurückliefert, wenn die Suchparameter eigentlich nicht korrekt sind. Es kommen dann entweder keine Ergebnisse oder der Parameter wird ignoriert. Stattdessen sollte die API einen 500 Code mit entsprechender Nachricht liefern. Außerdem hat die API teilweise Lücken, die ich mir noch nicht erklären konnte. Aber das sind wahrscheinlich Kinderkrankheiten, die im Laufe der Zeit (pun intended) behoben werden.

Nachdem ich eine einfache HTML Seite mit Datepicker und Zeit API Call zur Verfügung hatte, probierte ich ein paar Daten aus. Zu meinem Entsetzen musste ich feststellen, dass an sechs von sieben Tagen keine Zeit erschien (Wochenzeitung halt)! Wie soll man da eine Geburtstagszeitung für Daten vor dem Start von Zeit Online 1996 bauen? Die einfachste Lösung war, den Donnerstag davor zu durchsuchen, wenn der Geburtstag vor 1996 ist.

Meine Seite lieferte bis jetzt nur ein Ergebnis, die (zufällig bestimmte) Schlagzeile. Das war etwas wenig und es kam keine Nostalgie auf. Deswegen suchte ich nach einem Bild einer Zeit Titelseite, die ich nachbauen wollte.

ZEIT

Großes Bild mittig mit Titel und Teaser, darunter zwei Artikel in zwei beziehungsweise drei Spalten. Kein Problem. Eher ein Problem ist das Bild, wofür ich den Code aus dem Elm Proof of Concept noch einmal verpackte und nutzte. Um ein passendes Bild zu finden, nehme ich den gewählten Titel der Ausgabe, eliminiere Stoppwörter und Punktuation und wähle das erste Wort, welches mit Großbuchstaben beginnt (also wahrscheinlich ein Nomen ist).

Die GeburtsZEIT ist jetzt fertig, allerdings bleiben ein paar Verbesserungen offen:

  • Es wäre schön, wenn Typographie und Layout sich der Epoche anpassen würden.
  • Der Titel müsste abhängig vom Hintergrundbild seine Farbe wechseln.
  • Volltexte wären natürlich besser als Lorem Ipsum.

Aber was solls. Genießt die Zeit in Chrome und Safari (um den Fehler des Datepickers im Firefox und IE zu beheben, fehlt mir die Lust).

GeburtstagsZEIT

Update 27.11.: Da ziemlich viele Daten keine Ergebnisse lieferten, habe ich die GeburtsZEIT überarbeitet. Sie sucht jetzt vor 1996 jeden Freitag (statt Donnerstag) nach Ausgaben, was die Trefferqute stark erhöht. Warum auch immer.

Update 2, 27.11.: GeburtsZEIT sucht jetzt vor 2000 in der vergangenen Woche nach Artikeln, damit sollte immer etwas gefunden werden. Auch wenn der Freitag ein Feiertag war.

Update 28.11.: Ich habe dem API-Team wegen den Unregelmäßigkeiten beim Erscheinungstag gemailt. Sie sagen, dass die API mit dem Datum auf der Titelseite arbeitet. Die Zeit ist zwar immer offiziell am Donnerstag erschienen, aber wegen dem langsamen Vertrieb wurde damals lange der Freitag angegben. In den 40ern und 50ern war es anscheinend Donnerstag, dann Freitag bis Ende der 90er, dann wieder Donnerstag. So viel dazu.