Das Content-Team bemerkt ein neues TikTok-Thema oft erst, wenn die Konkurrenz bereits darüber spricht. Der Grund ist häufig einfach: Die Suche wird manuell und unregelmäßig geprüft, und gefundene Links landen in einem Chat – ohne gemeinsame Tabelle, Erfassungsdatum oder vergleichbare Kennzahlen. Um Veränderungen früher zu erkennen, empfiehlt es sich, die Suche in einen wiederholbaren Prozess zu verwandeln: Suchanfragen festhalten, gefundene Videos regelmäßig speichern und ausschließlich tatsächlich beobachtete Ergebnisse vergleichen.

Im Folgenden zeigen wir, wie sich ein solches Monitoring mit Python und der TikTok Scraper API von jsonscraper umsetzen lässt. Das Verfahren eignet sich beispielsweise für eine Agentur, die mehrere thematische Suchanfragen für einen Redaktionskalender verfolgt, oder für eine Marke, die sehen möchte, welche öffentlichen Videos zu einem Thema bemerkenswerte Aufrufe und Reaktionen erzielen. Die API liefert TikTok-Suchergebnisse mit Videobeschreibung, Autor, Veröffentlichungsdatum, Link und verfügbaren Zählerständen. Das Skript archiviert jede Antwort und erstellt einen CSV-Snapshot für die Analyse.
Das Grundprinzip besteht darin, nicht einen abstrakten „Trend“ zu messen, sondern Veränderungen im eigenen Beobachtungsprotokoll: Welche Videos sind in der Stichprobe neu aufgetaucht? Welche bereits bekannten Videos weisen veränderte öffentliche Zählerstände auf? Welche Formulierungen wiederholen sich in Beschreibungen? So erhält das Content-Team eine überprüfbare Themenliste zur manuellen Bewertung, und die Herkunft jeder Schlussfolgerung bleibt nachvollziehbar.
Warum die manuelle Suche ein schwaches Monitoring ergibt
Suchergebnisse sind eine veränderliche Stichprobe, kein stabiles Veröffentlichungsverzeichnis. Findet eine Mitarbeiterin heute zehn Videos zu einem Begriff und öffnet in der nächsten Woche die Suche erneut, sind die Ergebnisse nur schwer vergleichbar: Frühere Links könnten verloren gegangen sein, die Trefferliste wird anders aussehen und die Zählerstände haben sich verändert. Ohne gespeicherte Snapshots lässt sich nicht rekonstruieren, was das Team an einem bestimmten Tag tatsächlich gesehen hat.
Schon eine einfache tägliche Erfassung behebt einen Teil dieses Problems. Für jeden Durchlauf werden das Beobachtungsdatum, der Suchbegriff, die Video-ID, der Autor, die Beschreibung, der Link und verfügbare Kennzahlen gespeichert. Beim nächsten Durchlauf lassen sich die Einträge anhand der Video-ID abgleichen und Zählerdifferenzen berechnen, sofern beide Versionen die entsprechenden Felder enthalten.
Diese Werte sind als öffentliche Kennzahlen der Videos zu verstehen, die in der API-Antwort gefunden wurden – nicht als vollständige Reichweite von TikTok oder als lückenloses Popularitätsranking. Suchergebnisse können sich ändern, einzelne Felder können fehlen und die Kennzahlen hängen vom Erfassungszeitpunkt ab. Ziel der Pipeline ist daher, eine reproduzierbare Arbeitsstichprobe zu erstellen und Kandidaten für eine Prüfung zu erkennen, nicht anhand einer einzigen Zahl ein Thema zum allgemeinen Trend zu erklären.
Lösungsansatz: Suche, Archiv und Vergleich
Die Pipeline besteht aus fünf Teilen: einer Keyword-Konfiguration, einer API-Anfrage, einem unveränderten JSON-Archiv, einer normalisierten Datensatzebene und einem Änderungsbericht. Durch diese Aufteilung lässt sich jeder Schritt einzeln überprüfen. Ändert sich das Antwortschema oder fehlen einzelne Felder, bleibt das ursprüngliche JSON für eine erneute Verarbeitung verfügbar.
- Suchanfragen festlegen. Verwenden Sie konkrete Formulierungen, die zu einem Produkt, einer Branche oder den Aufgaben der Zielgruppe passen. Eine Marke für Küchengeräte könnte zum Beispiel „meal prep“, „air fryer recipes“ und den Namen einer bestimmten Produktkategorie verfolgen. Speichern Sie die Suchbegriffe in einer Konfigurationsdatei, statt sie fest in die Verarbeitungslogik einzubauen.
- Erfassungsregeln festlegen. Wählen Sie einen Zeitplan und für den Pilotversuch eine überschaubare Zahl an Ergebnissen. Halten Sie Datum, Region und Suchparameter fest. Für zeitliche Vergleiche ist es wichtiger, die Einstellungen zu wiederholen, als bei einem einzelnen Durchlauf eine möglichst breite Antwort abzurufen.
- Rohantwort speichern. Speichern Sie das JSON zusammen mit dem Ausführungszeitpunkt und dem Suchbegriff. Das Archiv ermöglicht es, den ursprünglichen Datensatz wiederherzustellen und die Normalisierung anzupassen, ohne die API erneut aufzurufen.
- Bestätigte Felder normalisieren. Extrahieren Sie ausschließlich Felder, die in der Antwort vorhanden sind: ID, Beschreibung, Veröffentlichungszeitpunkt, Autor, Link und verfügbare Statistikwerte. Lassen Sie fehlende Werte leer, statt sie durch Nullen zu ersetzen.
- Snapshots vergleichen. Ordnen Sie Videos anhand ihrer ID einander zu und speichern Sie jede Beobachtung separat. Anschließend können Sie neue Veröffentlichungen im Archiv und Änderungen an beobachteten Kennzahlen ermitteln.
Wählen Sie für den ersten Test zwei bis drei Suchanfragen und eine kleine Ergebnismenge. Prüfen Sie, wie gut Beschreibungen und Autoren zu Ihrer Aufgabe passen, welche Felder tatsächlich zurückgegeben werden und wie ähnlich die Trefferlisten bei gleichen Bedingungen sind. Erst danach lohnt es sich, die Begriffsliste zu erweitern und den Ablauf zu automatisieren.
Was sich mit der TikTok Scraper API abfragen lässt
In der offiziellen jsonscraper-Dokumentation ist die Route GET /searchVideo für die Suche nach Videos anhand eines Keywords vorgesehen. Der erforderliche Parameter lautet keyword. Zu den dokumentierten optionalen Parametern zählen count, cursor, date_posted, sort_by, region und cache_timeout. Für date_posted nennt die Dokumentation Werte wie this-week und this-month, für sort_by die Werte relevance, most-liked und date-posted. Die genauen Parameternamen und ihre Bedeutung finden Sie im Routenverzeichnis der TikTok API.
Die Basisadresse des Dienstes lautet https://tiktok.evelode.com; der Schlüssel wird als Query-Parameter license_key übergeben. Im folgenden Beispiel liegt er in der Umgebungsvariable JSONSCRAPER_TIKTOK_LICENSE_KEY. So müssen Sie das Geheimnis weder direkt in den Quellcode eintragen noch im Ausführungsprotokoll ausgeben.
Beim Parsen der Antwort muss die verschachtelte Struktur berücksichtigt werden. Prüfen Sie zuerst den äußeren Wert status und wechseln Sie dann zum Objekt tiktok. Für die Suche sind zwei Listenstrukturen möglich: Videos können direkt in tiktok.aweme_list stehen, aber auch in den Elementen von tiktok.search_item_list, jeweils innerhalb von aweme_info. Dabei kann aweme_list in einer Suchantwort leer sein, obwohl Videos in search_item_list enthalten sind. Das folgende Skript unterstützt beide Formen.
Die Dokumentation und ein überprüftes Antwortbeispiel zeigen für ein Video Felder wie aweme_id, desc, create_time, share_url, Angaben zum Autor und das Objekt statistics. Die Statistik kann Zähler für Aufrufe, Likes, Kommentare und Reposts enthalten. Welche Felder konkret vorhanden sind und was sie bedeuten, muss in jeder Antwort geprüft werden: Fehlende Felder lässt der Code leer. Ein Routenbeispiel und die dokumentierten Parameter finden Sie in der Beschreibung der TikTok Scraper API.
Ein funktionsfähiges Beispiel in Python
Das Beispiel setzt Python 3.8 oder neuer voraus und verwendet das Paket requests. Installieren Sie es mit dem Befehl python -m pip install requests. Speichern Sie den Code in einer Datei namens collect_tiktok.py, legen Sie den Schlüssel in der Umgebung fest und starten Sie das Skript mit einem Suchbegriff. Es erstellt das Verzeichnis data, speichert das Roh-JSON und fügt normalisierte Beobachtungen zu einer CSV-Datei hinzu.
import csv
import json
import os
import sys
from datetime import datetime, timezone
from pathlib import Path
from urllib.parse import urlparse
import requests
BASE_URL = "https://tiktok.evelode.com"
ARCHIVE = Path("data/raw")
OUT_CSV = Path("data/observations.csv")
def get_videos(tiktok):
"""Videos aus bestätigten Antwortformen von searchVideo sammeln."""
videos = []
aweme_list = tiktok.get("aweme_list") or []
if isinstance(aweme_list, list):
videos.extend(item for item in aweme_list if isinstance(item, dict))
search_items = tiktok.get("search_item_list") or []
if isinstance(search_items, list):
for item in search_items:
if not isinstance(item, dict):
continue
aweme_info = item.get("aweme_info")
if isinstance(aweme_info, dict):
videos.append(aweme_info)
# Duplikate entfernen, Reihenfolge und Einträge ohne ID beibehalten.
result = []
seen = set()
for video in videos:
video_id = video.get("aweme_id")
if video_id and video_id in seen:
continue
if video_id:
seen.add(video_id)
result.append(video)
return result
def fetch(keyword, count=20, region="US"):
license_key = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
if not license_key:
raise RuntimeError("Setzen Sie JSONSCRAPER_TIKTOK_LICENSE_KEY in der Umgebung")
params = {
"license_key": license_key,
"keyword": keyword,
"count": count,
"region": region,
"sort_by": "relevance",
}
response = requests.get(
f"{BASE_URL}/searchVideo", params=params, timeout=60
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok":
raise RuntimeError("Die TikTok-API hat einen Status ungleich ok zurückgegeben")
tiktok = payload.get("tiktok")
if not isinstance(tiktok, dict):
raise RuntimeError("Die Antwort enthält kein TikTok-Ergebnisobjekt")
return payload, tiktok
def write_rows(keyword, videos, collected_at):
OUT_CSV.parent.mkdir(parents=True, exist_ok=True)
fields = [
"collected_at", "keyword", "aweme_id", "create_time",
"author_id", "author_name", "author_username", "description",
"share_url", "play_count", "digg_count", "comment_count",
"share_count", "collect_count",
]
write_header = not OUT_CSV.exists()
with OUT_CSV.open("a", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=fields)
if write_header:
writer.writeheader()
for video in videos:
author = video.get("author") or {}
stats = video.get("statistics") or {}
writer.writerow({
"collected_at": collected_at,
"keyword": keyword,
"aweme_id": video.get("aweme_id"),
"create_time": video.get("create_time"),
"author_id": author.get("uid"),
"author_name": author.get("nickname"),
"author_username": author.get("unique_id"),
"description": video.get("desc"),
"share_url": video.get("share_url"),
"play_count": stats.get("play_count"),
"digg_count": stats.get("digg_count"),
"comment_count": stats.get("comment_count"),
"share_count": stats.get("share_count"),
"collect_count": stats.get("collect_count"),
})
def main():
if len(sys.argv)
Geben Sie den Schlüssel über die Umgebung weiter. In einer Bash-Shell sieht der Befehl für die aktuelle Sitzung so aus:
export JSONSCRAPER_TIKTOK_LICENSE_KEY="Ihr_Schlüssel"
python collect_tiktok.py "meal prep"
In Windows PowerShell können Sie die Variable für den aktuellen Prozess mit dem Befehl $env:JSONSCRAPER_TIKTOK_LICENSE_KEY="Ihr_Schlüssel" festlegen und anschließend dieselbe Python-Datei starten. Fügen Sie den Schlüssel weder einem Repository oder einer CSV-Datei noch dem Antwortarchiv oder Fehlermeldungen hinzu. Da die API den Schlüssel als Query-Parameter entgegennimmt, kann die vollständige Anfrage-URL in Protokollen des HTTP-Clients oder der Infrastruktur erscheinen. Richten Sie die Protokollierung so ein, dass Geheimnisse ausgeschlossen werden.
Den Code lesen und die Ergebnisse prüfen
Die Funktion fetch übergibt dokumentierte Parameter und prüft den HTTP-Status, den äußeren Statuswert sowie das Vorhandensein des Objekts tiktok. Sie behandelt nicht jeden formal gültigen Antworttext als erfolgreiche Abfrage: Bei einem unerwarteten Format wird die Ausführung mit einer verständlichen Fehlermeldung abgebrochen. So lassen sich leere Suchergebnisse leichter von Zugriffsproblemen oder Änderungen der Antwortstruktur unterscheiden.
Die Funktion get_videos führt die Elemente der direkten Liste aweme_list mit den Einträgen zusammen, die in search_item_list[].aweme_info verschachtelt sind. Anschließend entfernt sie Duplikate anhand von aweme_id, da dasselbe Video in beiden Sammlungen vorkommen kann. Fehlt eine ID, bleibt der Eintrag erhalten. So lässt sich das ursprüngliche Ergebnis untersuchen, ohne einen Wert zu erfinden.
Bei der Normalisierung werden verschachtelte Objekte sicher abgerufen. Angaben zum Autor oder zur Statistik können fehlen, daher setzt der Code beim Auslesen ein leeres Objekt ein. In der CSV bleiben die entsprechenden Zellen leer. Dieser Unterschied ist wichtig: Eine leere Zelle bedeutet, dass der Wert in dieser Beobachtung nicht geliefert wurde; eine Null wäre ein Zahlenwert, den die API tatsächlich zurückgegeben hat.
Für jede Anfrage wird eine eigene JSON-Datei im Archiv abgelegt. Der Dateiname enthält den UTC-Zeitpunkt und eine bereinigte Fassung des Suchbegriffs. Die CSV enthält flache Datensätze für die Analyse; das Roh-JSON bleibt die maßgebliche Grundlage, um neue Felder zu untersuchen oder die Daten erneut zu verarbeiten. Dieses Doppel-Format eignet sich sowohl für einen lokalen Prototyp als auch für eine spätere Migration in eine Datenbank oder einen Objektspeicher.
Öffnen Sie nach dem ersten Durchlauf das JSON und prüfen Sie, ob status den Wert ok hat, ein Objekt tiktok enthält und eine oder beide unterstützten Sammlungen Elemente aufweisen. Vergleichen Sie dann mehrere CSV-Werte mit den ursprünglichen Objekten. Prüfen Sie insbesondere, ob Zählerstände nicht zu fehlerhaften Zeichenfolgen werden, Veröffentlichungsdaten als ursprüngliche Werte erhalten bleiben und Links zu denselben Videos gehören wie die IDs.
Enthält eine gültige Antwort keine Videos, speichern Sie dies als leeres Ergebnis des Durchlaufs und nicht als Skriptfehler. Weist der äußere Status oder die HTTP-Antwort auf einen Fehler hin, fügen Sie diesen Datensatz nicht zu den Analysebeobachtungen hinzu. Beheben Sie zuerst die Ursache und starten Sie den Durchlauf erneut. Für den Produktivbetrieb empfiehlt es sich außerdem, HTTP-Status, Suchbegriff, Zeitpunkt und eine kurze Fehlermeldung zu protokollieren – ohne Schlüssel oder vollständige URL mit Geheimnis.
Paginierung und wiederholbare Erfassung
Die Suche unterstützt den Parameter cursor, um durch die Ergebnisse zu blättern. Wenn Sie die nächste Seite abrufen möchten, übernehmen Sie den Cursor aus der vorherigen Antwort und übergeben Sie ihn unverändert. Der Cursor ist ein undurchsichtiger API-Wert: Die Anwendung sollte ihn speichern und unverändert zurückgeben, nicht aus der Zahl der Datensätze berechnen oder als Seitennummer interpretieren.
Für das anfängliche Monitoring genügt möglicherweise eine Anfrage pro Keyword mit demselben Wert für count. Das ist leichter auszuwerten: Das Team weiß, dass jeder Durchlauf einen begrenzten Snapshot der Suchergebnisse speichert. Wenn Sie die Paginierung hinzufügen, speichern Sie jede Seite und ihren Cursor und begrenzen Sie die Zahl der Seiten pro Durchlauf. So verhindern Sie Endlosschleifen bei unerwarteten Antworten.
Mit dem Parameter date_posted lässt sich die Suche auf einen der in der Dokumentation aufgeführten Zeiträume begrenzen; sort_by ermöglicht eine Sortierung nach Relevanz, Veröffentlichungsdatum oder Likes. Halten Sie diese Einstellungen bei der Analyse zeitlicher Entwicklungen für jeden Durchlauf fest. Werden Anfragen mit unterschiedlichen Zeiträumen oder Sortierungen verglichen, kann das eine veränderte Sucheinstellung statt einer Veränderung des Themas widerspiegeln.
Der Parameter cache_timeout steuert das Caching der Antwort. Laut Dokumentation beträgt das Standard-Cachefenster 3600 Sekunden; mit dem Wert 0 lässt sich das Caching deaktivieren. Wählen Sie für ein geplantes Monitoring bewusst passende Einstellungen und speichern Sie sie in der Konfiguration. Wenn eine Abfragereihe häufiger als stündlich startet und Antworten innerhalb dieses Zeitfensters voneinander unterschieden werden müssen, prüfen Sie das Cache-Verhalten, bevor Sie wiederholte Ergebnisse als Zeichen für ausbleibende Veränderungen werten.
Tägliche Beobachtungen vergleichen
Die CSV enthält bereits die Grundlage für einen einfachen Bericht. Gruppieren Sie die Zeilen nach Suchbegriff und aweme_id, sortieren Sie sie nach collected_at und vergleichen Sie nur Beobachtungspaare, bei denen beide Werte der jeweiligen Kennzahl vorhanden sind. Die Aufrufdifferenz lässt sich zum Beispiel als zuletzt beobachteter Wert minus vorheriger Wert berechnen. Bewahren Sie beide Ausgangspunkte auf: Die absolute Differenz und die Zeit zwischen den Beobachtungen sind nötig, um das Ergebnis richtig einzuordnen.
Bezeichnen Sie diese Differenz nicht ohne Angabe des Zeitintervalls als Aufrufgeschwindigkeit. Liegt zwischen einem morgendlichen Durchlauf und dem nächsten eine Zeitspanne von mehreren Tagen, entspricht der Wert der kumulierten Veränderung über diesen Zeitraum. Für eine vergleichbare Rate können Sie die Differenz durch die tatsächliche Zeitspanne zwischen den Beobachtungen teilen. Das Ergebnis bleibt jedoch eine durchschnittliche Rate zwischen zwei Snapshots und ist keine kontinuierliche Telemetrie.
Erfassen Sie zwei Arten von Signalen getrennt. Erstens: neue IDs, die bei der aktuellen Anfrage in den Suchergebnissen auftauchen. Zweitens: veränderte Statistiken bei bereits beobachteten Videos. Ein neues Video kann unabhängig von seiner aktuellen Aufrufzahl ein Kandidat für eine Prüfung sein; steigende Werte bei einem älteren Video können zeigen, dass der Beitrag weiterhin Reaktionen erhält. Diese Signale beantworten unterschiedliche Fragen und sind für verschiedene Szenarien der Redaktionsplanung nützlich.
Ergänzen Sie einfache Datenqualitätsprüfungen: den Anteil der Zeilen mit ID, den Anteil mit Beschreibung, das Vorhandensein des Erfassungsdatums, die Zahl eindeutiger Videos je Suchanfrage und die Anzahl fehlender Statistikwerte. So lässt sich erkennen, ob die Pipeline die gewohnte Struktur nicht mehr erhält, bevor das Team auf Grundlage einer unvollständigen Datei Schlüsse zieht. Die Kennzahlen zeigen außerdem, welche Suchbegriffe für Ihre Branche nützliche Stichproben liefern.
Für den ersten Bericht reicht eine Tabelle mit den Spalten Suchbegriff, ID, Veröffentlichungsdatum, Autor, Beschreibung, Link, aktuelle Aufrufe, Aufrufe im vorherigen Snapshot, Differenz und Zeitabstand zwischen den Snapshots. Ergänzen Sie eine Markierung für „neu im Archiv“ und ein Feld für die redaktionelle Bewertung. Mitarbeitende können dort die Markenrelevanz, die Eignung des Formats und das mögliche Risiko einer Nachahmung fremder Ideen festhalten – die API selbst nimmt diese Bewertungen nicht vor.
Video-Popularität nicht mit Themenrelevanz verwechseln
Aufrufe, Likes, Kommentare und Reposts helfen dabei, die öffentliche Reaktion auf ein konkretes Video zu beschreiben. Für die Themenplanung ist auch der Text wichtig: die Formulierung einer Frage, das Versprechen am Anfang, ein wiederkehrendes Erklärformat oder die Art der Demonstration. Geben Sie der Redaktion daher Link und Beschreibung zusammen mit den Kennzahlen. Eine einzelne Zahl erklärt nur selten, warum ein Beitrag erfolgreich war.
Beim Vergleich mehrerer Videos können Sie das Verhältnis der Interaktionen zu den Aufrufen berechnen, sofern beide Zählerstände vorhanden sind. Beispielsweise ergibt die Summe aus Likes, Kommentaren und Reposts geteilt durch die Aufrufe einen einfachen Messwert für den beobachteten Anteil der Reaktionen. Dokumentieren Sie die Formel und mischen Sie keine Videos mit fehlenden Werten darunter, da das Ergebnis sonst nicht vergleichbar ist. Dieser Kennwert beschreibt nur die ausgewählten öffentlichen Zähler und Videos.
Addieren Sie die Kennzahlen mehrerer Snapshots nicht, als wären es voneinander unabhängige Ereignisse. Ist dasselbe Video an fünf aufeinanderfolgenden Tagen in den Antworten enthalten, sind die Aufrufe in diesen Zeilen aufeinanderfolgende Stände desselben Zählers – nicht fünf unterschiedliche Zielgruppen. Verwenden Sie für Summen eindeutiger Veröffentlichungen einen einheitlichen Beobachtungszeitpunkt pro Video, zum Beispiel den letzten Snapshot im Berichtszeitraum, und dokumentieren Sie die Auswahlregel.
Ein weiterer nützlicher Ansatz ist die Suche nach wiederkehrenden Wörtern in Beschreibungen. Eine einfache Textanalyse kann Beiträge anhand vorab festgelegter Wortlisten gruppieren: „Rezept“, „Review“, „Vorher/Nachher“, „Fehler“ oder „Tipp“. Ein Klassifikator oder Sprachmodell kann Kategorien und kurze Zusammenfassungen vorschlagen. Bewahren Sie jedoch die Originalbeschreibung und URL in der Tabelle auf, damit die Redaktion die Interpretation anhand des Videos überprüfen kann.
Automatisierung nach Zeitplan
Nachdem Sie den manuellen Durchlauf geprüft haben, verlagern Sie die Erfassung in einen Scheduler: etwa cron auf einem eigenen Server, GitHub Actions oder einen Workflow in n8n/Make. Die Integration sollte dasselbe geprüfte Skript ausführen, den Schlüssel aus einem Secret Store bereitstellen, das JSON archivieren und nur bei erfolgreichem Abschluss eine Benachrichtigung senden. Die konkrete Umsetzung des Schedulers hängt von Ihrer Infrastruktur ab; API-Aufruf und Verarbeitungsformat bleiben gleich.
Ein Beispiel für einen täglichen cron-Lauf um 08:15 Uhr nach der Zeit des Rechners:
15 8 * * * cd /srv/tiktok-monitor && /usr/bin/python3 collect_tiktok.py "meal prep" >> logs/collector.log 2>&1
Bevor Sie diese Zeile verwenden, richten Sie die Umgebungsvariable für den Dienst oder die Shell ein, unter der cron läuft, und legen Sie die richtige Zeitzone des Hosts fest. Bei mehreren Keywords speichern Sie die Liste am besten in einer Datei und lassen das Skript jede Suchanfrage in einem eigenen Durchlauf verarbeiten. So muss ein Fehler bei einer Suchanfrage nicht den gesamten Satz abbrechen, und die Archive lassen sich leichter vergleichen.
Wenn die Zahl der Suchbegriffe wächst, verlagern Sie die Konfiguration in eine JSON- oder YAML-Datei und ergänzen Sie ein Ausführungsprotokoll mit Status, Zahl der erhaltenen Videos und Archivpfad. Für mehr Zuverlässigkeit sollten Sie eine begrenzte Anzahl von Wiederholungsversuchen bei vorübergehenden Netzwerkfehlern, ein Zeitlimit und eine separate Behandlung von HTTP-Fehlern vorsehen. Unbegrenzt wiederholen sollten Sie Anfragen nicht: Der Task muss mit einem sichtbaren Status enden, damit der nächste Durchlauf ein Problem nicht verdeckt.
Sollen Ergebnisse in Google Sheets, eine Datenbank oder ein internes Dashboard fließen, ergänzen Sie diese Anbindung erst nach der zuverlässigen Archivierung. Speichern Sie zunächst die Rohantwort und laden Sie anschließend die normalisierten Datensätze hoch. Schlägt der Export fehl, können Sie ihn aus dem Archiv wiederholen, ohne die Daten erneut erfassen zu müssen. Video-ID und Erfassungszeitpunkt helfen, wiederholbare Einfügungen zu organisieren und neue Snapshots von älteren zu unterscheiden.
KI einsetzen: zum Sortieren, nicht als Ersatz für die Quelle
Wenn sich viele Beschreibungen im Archiv angesammelt haben, kann ein Modell dabei helfen, Videos nach Themen zu gruppieren, häufige Formulierungen herauszuarbeiten und kurze Erläuterungen für die Redaktion zu erstellen. Übermitteln Sie dem Modell nur eine begrenzte Auswahl an Feldern: Suchbegriff, Beschreibung, Veröffentlichungsdatum und öffentliche Kennzahlen. Lassen Sie es strukturierte Kategorien und eine knappe Begründung ausgeben, nicht aber selbstsichere Behauptungen über Ursachen der Popularität, die sich aus den Daten nicht ableiten lassen.
Speichern Sie das Modellergebnis in eigenen Spalten, zum Beispiel ai_topic, summary und review_status. Überschreiben Sie weder die Originalbeschreibung noch die API-Werte. Wenn sich Anweisungen oder Modell ändern, sollte sich die Verarbeitung anhand der gespeicherten Datensätze wiederholen lassen. Dafür ist es hilfreich, die Prompt-Version und das Klassifizierungsdatum aufzubewahren.
Eine praktische Aufgabe für ein Modell besteht darin, der Redaktion Themencluster vorzuschlagen: „kurze Rezepte“, „Gerätevergleiche“ oder „Fehler von Einsteigern“. Anschließend prüft eine Analystin anhand der Links mehrere Beispiele pro Cluster und passt das Vokabular an. Dieser Human-in-the-Loop-Prozess macht KI zu einem Navigationswerkzeug für den Datenbestand und hält die überprüfbaren Ausgangsbeobachtungen zugänglich.
Übertragen Sie dem Modell nicht die Aufgabe, auf Grundlage einer kleinen Suchstichprobe eigenständig einen Kausalzusammenhang zwischen Format und Reichweite festzustellen. Dafür braucht es eine vorab definierte Methodik, vergleichbare Veröffentlichungen und zusätzliche Daten. Für die praktische Redaktionsarbeit reichen eine Rangfolge von Kandidaten zur Sichtung, Hypothesen zu wiederkehrenden Themen und eine Liste mit Links zur manuellen Prüfung.
Stichprobenqualität und Grenzen der Schlussfolgerungen
Die Pipeline speichert Antworten auf Grundlage der vorgegebenen Suchbegriffe und Parameter. Sie hilft dabei, diese Beobachtungen zu vergleichen, doch die Reichweite der Suche ist durch den jeweiligen Begriff, den Erfassungszeitpunkt, die Einstellungen und die Antwort des Dienstes begrenzt. Formulieren Sie Schlussfolgerungen deshalb präzise: „Unter den erhaltenen Ergebnissen für die Suchanfrage X kam das Thema Y in den Snapshots dieser Woche häufiger vor“ statt „Auf ganz TikTok wird derzeit über Y gesprochen“.
Vergleichen Sie nur Reihen mit gleichen Einstellungen: dieselbe Region, dieselben Sortierparameter, derselbe Veröffentlichungszeitraum und dieselbe Zahl angeforderter Ergebnisse. Wenn Sie Suchbegriff oder Filter ändern, kennzeichnen Sie dies als neue Reihe. Für die Analyse von Saisonalität oder Kampagnen empfiehlt es sich, die Konfigurationsversion zu speichern. Andernfalls kann eine geänderte Eingabe wie eine Veränderung der Inhalte erscheinen.
Öffentliche Kennzahlen können sich zwischen Snapshots ändern und unterschiedlich lange angesammelt worden sein: Ein frisch veröffentlichtes Video und ein älteres Video befinden sich in unterschiedlichen Phasen der Reaktionsentwicklung. Berücksichtigen Sie für den Leistungsvergleich das Veröffentlichungsdatum und das Beobachtungsintervall. Vergleichen Sie Videos ähnlichen Alters oder analysieren Sie die Entwicklung derselben ID über aufeinanderfolgende Snapshots.
Wenn ein Projekt Wettbewerber oder Creator betrifft, beschränken Sie die Erfassung auf den konkreten Zweck und die dafür erforderlichen Daten. Erfassen Sie keine sensiblen Informationen und verwenden Sie öffentliche Kennzahlen nicht zur Bewertung der Person eines Creators. Für einen Bericht an ein Marketingteam reichen normalerweise Link, Beschreibung, Profilname, Veröffentlichungszeitpunkt und aggregierte Kennzahlen. Prüfen Sie vor der Automatisierung die geltenden Plattformbedingungen, die Vorgaben Ihrer Organisation und die Regeln zur Datenspeicherung.
Praktische Checkliste vor dem Start
- Formulieren Sie die geschäftliche Frage: Welche Themen, Formate oder Veröffentlichungen möchten Sie erkennen?
- Beginnen Sie mit einigen stabilen Suchbegriffen und halten Sie deren Schreibweise fest.
- Prüfen Sie anhand der Dokumentation die Route
/searchVideo, das erforderlichekeywordund die übrigen Parameter. - Speichern Sie den Schlüssel in einer Umgebungsvariable und schließen Sie ihn aus Ausgaben, Protokollen und Repository aus.
- Prüfen Sie den äußeren Antwortstatus und das Vorhandensein des Objekts
tiktok. - Verarbeiten Sie sowohl
aweme_listals auchsearch_item_list[].aweme_info. - Speichern Sie das Roh-JSON vor der Normalisierung.
- Lassen Sie fehlende Felder leer und ersetzen Sie sie nicht durch Nullen.
- Ordnen Sie Veröffentlichungen anhand von
aweme_idzu und übergeben Sie den Cursor unverändert. - Halten Sie Erfassungsdatum und Suchparameter für jeden Snapshot fest.
- Prüfen Sie mehrere Videos manuell, bevor Sie Schlussfolgerungen ziehen oder Ergebnisse an ein Modell übergeben.
Das erhalten Sie als Ergebnis
Nach der Einrichtung verfügt das Team über einen wiederholbaren Prozess: Eine Liste wichtiger Suchanfragen wird nach Zeitplan ausgeführt, jede Antwort als Roh-JSON gespeichert und die normalisierten Beobachtungen werden in eine CSV-Datei übernommen. Analystinnen und Analysten können Videos erkennen, die neu im Archiv sind, Links und Beschreibungen aufrufen, verfügbare öffentliche Zählerstände über mehrere Snapshots vergleichen und thematische Gruppen erstellen.
Für die Redaktion entsteht kein automatisches Urteil über den „wichtigsten Trend“, sondern eine kurze Liste überprüfbarer Kandidaten: neue Veröffentlichungen, Videos mit auffälligen Kennzahlenänderungen und wiederkehrende thematische Formulierungen. Das verkürzt den Weg von der manuellen Suche zur Besprechung eines Themas und liefert eine nachvollziehbare Grundlage für die Entscheidung, was in den Content-Plan gehört.
Sie können mit einer Suchanfrage, einem täglichen lokalen Durchlauf und einer CSV-Datei beginnen. Sobald sich zeigt, dass die Stichprobe zur Aufgabe passt, ergänzen Sie einen Zeitplan, eine Datenbank oder eine Klassifizierung der Beschreibungen. Die dokumentierten Parameter und Routen finden Sie in der Dokumentation der TikTok API; Informationen zum Zugang und Produkt bietet die Seite zur TikTok Scraper API von jsonscraper.