Update
29.04.2022: Mittlerweile kann man direkt in Mastodon einstellen, dass bestimmte (alte) Dinge gelöscht werden, siehe hier.
Update
04.05.2021: Ich habe das jetzt ins Wiki verschoben, siehe hier.

Ich sehe Mastodon oder Twitter als Werkzeuge für Kommunikation aktueller Themen, nicht als Ort eines Archivs von allem, das man in den letzten Jahren geschrieben hat. Daher lösche ich unregelmäßig alte Toots auf Mastodon und auch Tweets auf Twitter. Anfangs machte ich das manuell und mittlerweile mit schönen Werkzeugen.

Hier geht es um das Tool Ephemetoot, das in der Lage ist, alte Toots eines Mastodonaccounts zu löschen.

Token für Mastodon

Damit Ephemetoot mit einem Account arbeiten kann, benötigt es einen “Zugangstoken” bzw. “Access token”. Den erstellt man in den Einstellungen auf Mastodon, im Bereich “Entwicklung”.

Dort fügt man einen neue “Anwendung” hinzu. Es reicht aus, einen Namen einzugeben und die Voreinstellungen unverändert zu lassen. Man kann aber auch die Möglichkeiten einschränken. Ephemetoot muss lesen und schreiben können.

Virtualenv

Mit Virtualenv erstellt man eine Umgebung für Ephemetoot:

virtualenv -p /usr/bin/python3 ephemetoot

Im aktuellen Verzeichnis wird damit ein Verzeichnis “ephemetoot” erstellt.

cd ephemetoot
source bin/activate
pip install ephemetoot

Jetzt startet man das Tool und lässt eine Konfiguration erstellen.

ephemetoot --init

Dabei werden Accountname, Token und weitere Dinge abgefragt, die dann in die Konfigurationsdatei config.yaml geschrieben werden. Man kann die Konfigurationsdatei aber auch manuell erstellen und diesen Befehl überspringen.

Bei mir sieht die Konfigurationsdatei dann so aus:

  access_token: blabpluijd123
  username: meinbenutzername
  base_url: meinserver.tld
  days_to_keep: 30
  keep_pinned: true
  archive: archive
  hashtags_to_keep:
    - müllsammeln
    - ontour
    - natenomontour
    - plogging
    - openbikesensor

Dabei werden nur Toots gelöscht, die älter als 30 Tage oder nicht angepinnt sind oder die keines der genannten Hashtags enthalten. Gelöschte Toots landen als Backup (ohne angefügte Medien) im Unterverzeichnis archive.

Laufen lassen

Ohne Angabe von Parametern startet man das Tool. Hier die Ausgabe für meinen Account. Löschvorgänge sind stark limitiert, man muss das Tool also eine Weile laufen lassen oder nach Ablauf der Fristen immer wieder manuell starten.

ephemetoot                    
============= EPHEMETOOT v3.1.0 ================
Running at Tue 23 Mar 2021 16:02:31 +0000
================================================

Fetching account details for @account@server
Checking 336 toots

# skipping toot with hashtag - 105141110016028168
# skipping toot with hashtag - 105141096555743892
❌ deleting toot 105141072564203642 tooted 02 Nov 2020
# skipping toot with hashtag - 105140264929870540
[...]
❌ deleting toot 105140255682219175 tooted 02 Nov 2020
❌ deleting toot 105125588146258105 tooted 30 Oct 2020
❌ deleting toot 105124704483125356 tooted 30 Oct 2020
❌ deleting toot 105124291721722596 tooted 30 Oct 2020
❌ deleting toot 105124268645450132 tooted 30 Oct 2020
❌ deleting toot 105124058673704582 tooted 30 Oct 2020

Rate limit reached at Tue 23 Mar 2021 17:31:12 +0000 -
next reset due in 29 minutes.

❌ deleting toot 105123687719372689 tooted 30 Oct 2020
❌ deleting toot 105123674095282130 tooted 30 Oct 2020
❌ deleting toot 105123670006473110 tooted 30 Oct 2020
❌ deleting toot 105077514503516341 tooted 22 Oct 2020
# skipping toot with hashtag - 105077420693727860
❌ deleting toot 105066209174447095 tooted 20 Oct 2020
❌ deleting toot 105062844118829383 tooted 19 Oct 2020
👎 unboosting toot 105044942015133379 boosted 16 Oct 2020
[...]
---------------------------------------
🥳 ==> 🧼 ==> 😇 User cleanup complete!
---------------------------------------

Fertig

Dieses Tool kann man jetzt alle x Zeit laufen lassen und alte Toots löschen :)