Mastodon Instanz Local Timeline lesen, ohne Anmeldung

Man kann die lokale Timeline einer Mastodon Instanz lesen, ohne dort einen Account zu haben.

Einführung

Es gab vor ein paar Tagen die Frage, ob man Timelines anderer Instanzen lesen kann, ohne einen Account zu haben. Oder anders ausgedrückt: Kann man einer kompletten Mastodon-Instanz folgen?

Die Antwort ist Ja und Nein. Ja, es ist technisch möglich. Nein, mir ist kein Client bekannt, der das unterstützt (wenn wer einen Client kennt, dann würde ich mich über eine Info freuen).

Wenn man in die REST API von Mastodon schaut, wird man nicht sofort sicher sein, ob sowas möglich ist. Aber es gibt ein paar Hinweise in dem API-Guide, dass einige Endpunkte keine User-Authentifizierung benötigen und einige Endpunkte komplett öffentlich sind.

Damit haben wir alles zusammen, dass es eine technische Lösung gibt (unabhängig davon, dass man theoretisch einen ActivityPub Server laufen lässt, um direkt auf die Sync-Streams zuzugreifen).

Weiterhin nutze ich die Mastodon.py Bibliothek, damit sich im Hintergrund um alles gekümmert wird.

Abruf der lokalen Timeline

Die lokale Timeline sind bekanntermaßen die Nachrichten (Beiträge, Tröts, Toots, Status-Nachrichten), die alle Mitglieder der Instanz öffentlich gelistet haben. Es erfordert, wie schon gesagt, keine Authentifizierung eines lokalen Accounts (und damit auch kein Account) auf der Instanz, diese Timeline zu lesen.

Somit ist das Script ziemlich simpel:

import json
from mastodon import Mastodon

mastodon = Mastodon (
    api_base_url='https://bildung.social'
)

local = mastodon.timeline_local()
print (json.dumps(local, indent=4, default=str))

Die Methode timeline_local(), tut das, was man erwartet hätte. Es liest die letzten 20 Nachrichten der lokalen Timeline der Instanz aus.