RSS Feeds auf Mastodon übertragen

Wer den Umstieg von Twitter auf Mastodon vollzogen hat, merkt unter Umständen, dass einige Nachrichtenquellen hier noch fehlen. Eine Möglichkeit diese in das Fediverse zu holen, ist es z.B. einen RSS Feed per Mastodon Bot zu nutzen. Diese Anleitung zeigt dir, wie du RSS Feeds mit feed2toot an Mastodon überträgst.

Die RSS Feeds werde ich auf meinem eigenen Mastodon Server veröffentlichen. Wenn du wissen willst, wie man einen eigenen Mastodon betreibt, findest du hier eine Anleitung von mir. Du kannst das natürlich auch auf jedem beliebigen Mastodon Server machen.

Voraussetzungen

Diese Anleitung setzt einige Dinge voraus:

  • Lauffähiges Linux Betriebssystem, in meinem Fall ist das Gentoo
  • Installierter Python Interpreter mit VENV Erweiterung
  • PIP Installer
  • Cron Daemon
  • Einen Mastodon Account auf dem der RSS Feed später übertragen wird

Die oben aufgelisteten Pakete solltest du mit dem jeweiligen Paketmanager deiner verwendeten Distribution installieren.

Virtuelle Umgebung erstellen

In dieser Anleitung verwende ich den feed2toot Bot, der in Python geschrieben ist. Damit ich mein Gentoo System nicht mit Software, die nicht im Paketmanager vorhanden ist “kompromittiere”, verwende ich in solchen Fällen eine virtuelle Umgebung in Python.

Zuerst legen wir einen Ort fest, wo wir das installieren wollen:

mkdir -p /opt/feed2toot

Dir steht es frei einen anderen Ort zu wählen, denk aber daran im Verlauf der Anleitung die Pfade entsprechend anzupassen.

Nun erstellen wir die virtuelle Umgebung:

python3 -m venv /opt/feed2toot

Benutzer anlegen und Berechtigungen ändern

Beim betreiben von was auch immer auf einem Linux Server sollte man sich immer einen extra Benutzer hierfür anlegen:

useradd -m -s /bin/bash feed2toot
chown feed2toot:feed2toot -R /opt/feed2toot

Virtuelle Umgebung betreten

Nun wird es Zeit die virtuelle Umgebung zu betreten:

su feed2toot
cd /opt/feed2toot
source bin/active

Feed2toot installieren

Nun installieren wir unseren feed2toot Bot in der virtuellen Umgebung:

pip3 install feed2toot

Feed2toot auf Mastodon Instanz registrieren

Für diesen Schritt solltest du dir schon ein Mastodon Konto erstellt haben, da wir es jetzt benötigen. Wir werden nun unseren Bot auf der Mastodon Instanz registrieren.

register_feed2toot_app

Dies führt dich durch den Einrichtungsprozess, in dem du einige Dinge eingeben musst:

ParameterErläuterung
Mastodon instance URLGebe hier die Mastodon Instanz an, die du benutzen willst
Mastodon loginDein Login auf der oben definierten Instanz
Mastodon passwordDas Passwort zu deinem Login

Mit der Eingabe der oberen Parameter bist du dann auch schon fertig.

Konfigurationsdatei erzeugen

Durch den vorherigen Schritt wurden zwei Dateien im aktuellen Verzeichnis erstellt. Es ist sinnvoll diese aus der virtuellen Umgebung an eine anderen ort zu packen, denn diese würden bei einem Update dieser Umgebung verloren gehen.

Ich habe mich für das Home Verzeichnisses des Benutzers entscheiden. Wenn man plant mehrere RSS Feeds mit unterschiedlichen Mastodon Nutzern zu benutzen, sollten man diese dann jeweils in einen eigenen Unterordner schieben.

mkdir -p /home/feed2toot/feed1
cp feed2toot_clientcred.txt /home/feed2toot/feed1/
cp feed2toot_usercred.txt /home/feed2toot/feed1/

Nun erzeugen wir uns für diesen RSS Feed die notwendige Konfigurationsdatei:

nano -w /home/feed2toot/feed1/config.ini

Wir fügen folgenden Inhalt hinzu:

[mastodon]
instance_url=https://mastodon.social
user_credentials=/home/feed2toot/feed1/feed2toot_usercred.txt
client_credentials=/home/feed2toot/feed1/feed2toot_clientcred.txt
; Default visibility is public, but you can override it:
; toot_visibility=unlisted

[cache]
cachefile=/home/feed2toot/feed1/cache.db
cache_limit=1000

[lock]
lock_file=/home/feed2toot/feed1/feed2toot.lock
lock_timeout=3600

[rss]
uri=https://www.example.org/rss
toot={title} {link}

[hashtaglist]
several_words_hashtags_list=/home/feed2toot/feed1/hashtags.txt

Den Parameter “instance_url” solltest du auf deine gewünschte Mastodon Instanz anpassen. In der Sektion RSS den Parameter “uri” entsprechend mit dem gewünschten Link zum RSS Feed füllen.

Wenn du den Beiträgen immer bestimmte Hashtags beifügen möchtest, erzeuge dir eine Datei “hashtags.txt” im gleichen Verzeichnis wie die Konfigurationsdatei, ansonsten kommentiere die Zeile mit “;” aus.

Ein genaue Erklärung aller Einstellungen findest du hier.

Funktion testen

Nun teste wir mal ob das ganze funktioniert:

feed2toot -c /home/feed2toot/feed1/config.ini

Nun sollten die ersten Feeds auf Mastodon eintrudeln, ansonsten überprüfe noch einmal alle Daten!

Automatische Aktualisierung des RSS Feeds

Da das nun funktioniert kümmern wir uns nun um eine automatische Aktualisierung via Cronjob.

Zuerst erstellen wir uns ein Script, das wir einfach ausführen können. Ich lege das in das entsprechende Feed Verzeichnis:

nano -w /home/feed2toot/feed1/refresh.sh

Und fügen folgenden Inhalt hinzu:

#!/bin/bash
cd /opt/feed2toot
python -m venv .
source bin/activate
feed2toot -c /home/feed2toot/feed1/config.ini

Nun machen wir die Datei ausführbar:

chmod +x /home/feed2toot/feed1/refresh.sh

Jetzt müssen wir nur noch eine Cronjob anlegen:

crontab -e -u feed2toot

Der Inhalt hierfür:

*/15  *  *  *  * /home/feed2toot/feed1/refresh.sh

Dieser Cronjob wird den RSS Feed alle 15 Minuten automatisch aktualisieren.

Update

Feed2toot

Um feed2toot zu aktualisieren müssen wir Folgendes tun:

su feed2toot
cd /opt/feed2toot
source bin/activate
pip3 install --upgrade feed2toot

Python VENV

Sollte auf dem System ein Python update passiert sein müssen wir Folgendes tun:

su feed2toot
cd /opt/feed2toot
rm -r *
python3 -m venv /opt/feed2toot
source bin/activate
pip3 install feed2toot

Fazit

Dank den Entwicklern von feed2toot ist das Betreiben eines RSS Feed Bot für Mastodon eine einfache Sache. Ich hoffe diese Anleitung hat dir weitergeholfen!

Kommentare

Du kannst dein Mastodon Konto benutzen, um auf diesen Beitrag zu antworten.

Antworten