RSS Feed automatisch auf Mastodon veröffentlichen
Viele Blogs und News-Webseite informieren über neue Artikel und Beiträge auch auf den vielen Social Media Plattformen wie Twitter, Facebook oder Threads. Leider ist Mastodon oft noch kein Ziel dieser Cross-Postings.
Da ich Mastodon selbst gerne als News-Quelle und Aggregator verschiedener Blogs nutze, habe ich eine Anwendung geschrieben, die RSS-Feeds automatisch im Fediverse veröffentlicht.
Der Quellcode sowie die Anleitung zur Verwendung sind auf Github verfügbar: https://github.com/davull/FeedToMastodon
Eine laufende Instanz der Anwendung veröffentlicht Posts von einigen News-Feeds auf https://feedmirror.social
Feed To Mastodon
Feed To Mastodon
ist eine .NET Anwendung, die neue Feed-Einträge automatisch auf Mastodon postet. Unterstützt werden dabei RSS, Atom und RDF-Feeds. Die Anwendung kann lokal kompiliert und ausgeführt oder als vorkonfiguriertes Docker-Image genutzt werden.
Die Anwendung kann beliebig viele Feeds behandeln. Für jeden Feed kann ein separater Mastodon-Account verwendet werden.
Damit der jeweilige Mastodon Account nicht mit alten Feed-Einträgen überflutet wird, werden beim ersten Synchronisieren eines neuen Feeds die bisherigen Einträge übersprungen und nur neue Einträge veröffentlicht.
Konfiguration
Die Konfiguration der zu überwachenden Feeds erfolgt in einer .ini
-Datei.
[heise.de]
feed_url = https://www.heise.de/rss/heise-atom.xml
summary_separator = [...]
mastodon_server = https://mastodon.social/
mastodon_access_token = AWWHkaIB_...
[wired.com]
feed_url = https://www.wired.com/feed/rss
mastodon_server = https://mastodon.social/
mastodon_access_token = ABC...
...
Neben den URLs zum Feed und zum Mastodon-Server, auf dem der Ziel-Account registriert ist, ist ein Access-Token notwendig.
Der Parameter summary_separator
ist optional und kann angegeben werden, um Feed-Einträge zu kürzen. Der Eintrag wird ab dem ersten Vorkommen der Trennzeichen abgeschnitten.
Wenn ein Post etwa ein […]
enthält, kann der Eintrag hier gekürzt werden:
Earlier today, we reported that […]
To the post <a rel="nofollow" ...>http://news.com/123</a>
Die Konfiguration von summary_separator = […]
führt zu dem gekürzten Eintrag:
Earlier today, we reported that ...
Gepostete Einträge werden in einer SQLite-Datenbank gespeichert, um doppelte Post zu vermeiden.
Mastodon Access-Token
Ein Access-Token kann über die Mastodon-Webseite unter Einstellungen
-> Entwicklung
-> Neue Anwendung
angelegt werden. Unter Name
kann ein beliebiger Text eingetragen werden, z.B. Feed to Mastodon
. Unter Weiterleitungs-URI
kann der Standardwert urn:ietf:wg:oauth:2.0:oob
beibeibehalten werden. Unter Befugnisse
muss nur write:statuses
ausgewählt sein, profile
kann abgewählt werden.
Nach dem Speichern kann man erneut auf die neu erstellte Anwendung klicken und das Access-Token Dein Zugriffstoken
kopieren.
Parameter
Parameter | Beschreibung |
---|---|
feed_url | Gesamte URL des Feeds, notwendig |
summary_separator | Trennzeichen, um Feed-Einträge zu kürzen, optional |
mastodon_server | URL des Mastodon-Servers, notwendig |
mastodon_access_token | Access-Token des Mastodon-Accounts, notwendig |
Die Dateipfade zu den Konfigurations- und Datenbankdateien werden als Umgebungsvariablen hinterlegt.
Umgebungsvariable | Beschreibung |
---|---|
FTM_CONFIG_FILE_NAME | Absoluter oder relativer Pfad zur Konfigurationsdatei |
FTM_DATABASE_NAME | Absoluter oder relativer Pfad zur SQLite-Datenbank |
Ausführung
Um Feed to Mastodon
via Docker auszuführen, genügt folgender Befehl:
docker run -it --rm \
-v "${PWD}/ftm-feed-config.ini:/app/ftm-feed-config.ini" \
-v "${PWD}/ftm.sqlite:/app/ftm.sqlite" \
-e "FTM_CONFIG_FILE_NAME=/app/ftm-feed-config.ini" \
-e "FTM_DATABASE_NAME=/app/ftm.sqlite" \
davidullrich/feed-to-mastodon:latest
Eine Docker Compose Konfiguration sieht wie folgt aus:
services:
ftm:
container_name: feed-to-mastodon
image: davidullrich/feed-to-mastodon:latest
restart: unless-stopped
volumes:
- ./data:/app/data
environment:
- FTM_DATABASE_NAME=/app/data/ftm.sqlite
- FTM_CONFIG_FILE_NAME=/app/data/ftm.ini
- TZ=Europe/Berlin
Statistiken
Für die Interessierten gibt Feed to Mastodon
täglich eine Statistik auf der Console aus. Diese zeigt die Anzahl der geposteten Feeds in den letzten 24 Stunden und den letzten sieben Tagen.
Statistics[0] ============================================================
Statistics[0] Total Posts per feed: 2024-11-18 00:00 - 2024-11-25 00:00
Statistics[0] ============================================================
Statistics[0] Mashable: 215
Statistics[0] Caschys Blog: 183
Statistics[0] Digital Trends: 299
Statistics[0] Elektroauto-News.net: 8
Statistics[0] TESLARATI: 48
Statistics[0] WIRED: 102
Statistics[0] ------------------------------------------------------------
Statistics[0] Total: 855
Statistics[0] ============================================================
Live-Beispiel
Unter https://feedmirror.social ist Feed to Mastodon
mit ein paar konfigurierten Feeds in Betrieb und bringt die neuesten Artikel ins Fediverse.