Über ein halbes Jahr habe ich mit Basil Schöni ein Netzwerk aus Tiktok-Accounts. beobachtet. Die Accounts rekrutieren für die rechtsextreme Gruppierung «Junge Tat» (JT) und sprechen dabei Minderjährige an. Neben der Datenrecherche und Text-Arbeit setzte ich drei animierte Grafiken um.
Verschiedene Sprüche, mit denen die JT auf Tiktok rekrutierte.
TikTok-Profile zu archivieren, ist eine Herausforderung. ByteDance schützt die Plattform sehr aggressiv vor maschinellen Abfragen. Eine klassische Online-Archivierung mit Seiten wie der Wayback Machine funktioniert darum nicht. Viele andere Optionen scheitern an Captchas.
Zum Glück gibt es verschiedene Lösungen. Für die Websiten-Archivierung nutzte ich die Chrome-Erweiterung SingleFile. Damit lassen sich zum Beispiel alle geöffneten Tabs archivieren. In vielen Aspekten besser und mit mehr Features, wäre Hunchly, was aber kostet. Eine Open Source Alternative, die etwas Basteln braucht, wäre ArchiveBox.
Neben den Profilen wollte ich ausserdem die Posts der Accounts archivieren. Dazu nutzte ich zuerst Browser-Erweiterungen, dann das Command Line-Tool yt-dlp. Das funktioniert gut für Videos, seit längerem unterstützt TikTok aber auch Bilder-Gallerien. Dort scheitert yt-dlp, bzw es lädt nur das Audio. Für meinen Use Case war das in Ordnung.
Open Source und eleganter wäre etwa der Auto-Archiver von Bellingcat, dieser lief bei mir aber nicht – er scheint aber mittlerweile aktiver betreut. Ausserdem gibt es davon eine Closed Source Weiterentwicklung, die interessant wirkt.
Für Posts und Kommentare zu archivieren funktioniert auch die Firefox-Erweiterung Zeeschuimer sehr gut. Entwickelt von Forscher*innen der Digital Methods Initiative lassen sich mit Zeeschuimer auch diverse andere Plattformen scrapen – ohne zu programmieren.
Die oben beschriebenen Lösungen haben alle einen Nachteil: Man muss meistens auf dem Gerät angemeldet sein und z.T. die zu archivierenden Seiten im Browser öffnen. Sie sind also nur teil-automatisiert. Ausserdem ist die Tiefe der Archivierung stark eingeschränkt. Mit Tiefe meine ich Daten, die nur mit mehreren Klicks erreichbar sind . An der «Oberfläche» liegen zum Beispiel Profile, Videos, Follower-Zahlen. Diese lassen sich leicht archivieren. Tiefer liegende Daten wie Kommentare zu einem Video oder Namen von Followers, sind mit den obenstehenden Methoden nur mit viel manuellem Aufwand möglich.
Für eine höhere Suchtiefe bietet sich die Nutzung von APIs an. TikTok hat ein eigenes Forschungs-API, dessen Schwellen zwar sinken, aber explizit Forschenden vorbehalten ist. Damit sind Journalist*innen gezwungen, inoffizielle Endpunkte von Drittanbietern zu nutzen.
Zu Beginn nutze ich TikApi, was ich als unzuverlässig und teuer empfand. Ähnlich teuer aber augenscheinlich stabiler sind die Endpunkte von EnsembleData, die auch Correctiv verwendet hat.
Zum Schluss nutzte ich verschiedene TikTok-Scraper auf der Plattform Apify. Abfragen sind dort vergleichweise günstig und das Interface sehr übersichtlich. Der Vorteil: Keine Programmierkenntnise notwendig. Der Nachteil: Die Scraper werden von Dritten angeboten, der Code ist nicht einsehbar und läuft auf einem fremden Rechner. Ausserdem muss man sich mit einer Telefon-Nummer registrieren.
Für den Umfang dieser Recherche reichte hingegen meine selbstgebaute, komplett kostenlose Lösung: Mit SingleFile HTML-Dateien speichern und dann mit Python und BeautifulSoup4 Informationen wie Follower-Zahlen, Anzahl Posts und Likes extrahieren. Und für Videos ein einfaches Shell-Script mit yt-dlp. Diese Variante erreicht nur die erwähnten oberflächlichen Daten und hat diverse Probleme, aber sie war good enough.
Das beste Werkzeug ist jenes, das bereits auf dem Tisch liegt. Für mich sind das Screenshots. Im Verlauf der Recherche entstanden über 300 Screencaptures, die bis kurz vor Publikation immer wieder nützlich waren und als Belege dienten.