Ein Creator kann aufgrund seines Profils und einiger gelungener Videos für eine Kampagne geeignet erscheinen. Doch sein aktueller Feed erzählt eine wichtigere Geschichte: Spricht er weiterhin regelmäßig über das gewünschte Thema? Eine manuelle Prüfung ist schnell veraltet, und bei einer einmaligen Sichtung konzentriert man sich leicht auf die auffälligsten Beiträge. Für Agenturen und Marken ist es sinnvoller, wiederholt eine Stichprobe öffentlicher Videos zu erfassen, den Stand zum Prüfzeitpunkt zu speichern und die thematische Passung nach einheitlichen Regeln zu bewerten.

Im Folgenden wird ein praktischer Prozess zur Bewertung eines öffentlichen TikTok-Feeds vorgestellt. Er nutzt die TikTok Scraper API von jsonscraper und Python: Beiträge werden über einen dokumentierten Endpunkt abgerufen, das ursprüngliche JSON wird gespeichert, bestätigte Felder werden in eine Tabelle überführt und der Anteil der Videos berechnet, die zu einem festgelegten Thema passen. Optional können die Beschreibungen als nächster, separat kontrollierter Schritt an einen Textklassifikator übergeben werden.
Legen Sie zuerst fest, was als „passend“ gilt
Angenommen, ein Team sucht einen Creator für eine Kampagne rund um die Zubereitung von Kaffee zu Hause. Die Followerzahl und die Beliebtheit einzelner Videos können dabei helfen, die Reichweite einzuschätzen, beantworten aber nicht für sich genommen die Frage, wie stark der Feed mit Kaffee zu tun hat. Für eine erste Vorauswahl braucht es inhaltliche Merkmale: Erwähnt die Videobeschreibung die Kaffeezubereitung, Geräte, Rezepte oder Tests? Wie viele Beiträge zu diesem Thema liegen im festgelegten Beobachtungszeitraum? Welcher Anteil der erfassten Videos ist thematisch relevant?
Halten Sie die Kriterien vor der Datenerhebung in einem kurzen Wörterverzeichnis fest, zum Beispiel „Espresso“, „Kaffeemühle“, „Latte“ und „Aufbrühen“. Ergänzen Sie Ausschlüsse und mehrdeutige Begriffe. „Kaffee“ kann in einem Witz, einer bezahlten Kooperation oder einem beiläufigen Zusammenhang vorkommen. Eine automatische Textübereinstimmung ist daher eine erste Zuordnung, keine abschließende Bewertung des Creators. Unterscheiden Sie mindestens drei Status: eindeutige Übereinstimmung, mögliche Übereinstimmung und nicht relevant.
Auch die Stichprobe sollte vorab festgelegt werden. Sie können beispielsweise bei jedem wöchentlichen Durchlauf die letzten 20 abgerufenen Beiträge analysieren. Das ist eine Bedingung Ihres Monitorings, keine Zusage der API, genau diese Anzahl zurückzugeben: Welche Ergebnisse verfügbar sind und welche sie umfassen, hängt von der jeweiligen Anfrage ab. Notieren Sie Erfassungszeitpunkt, Zahl der abgerufenen Elemente und Anfrageparameter, damit sich Momentaufnahmen vergleichen lassen, ohne unterschiedliche Regeln zu vermischen.
Den Feed eines Creators abfragen
Laut der Dokumentation von jsonscraper akzeptiert der Endpunkt GET /getUserFeed den obligatorischen Parameter query – den Benutzernamen oder die Profil-URL. Als optionale Parameter sind count, region, sort_type, with_pinned_posts und max_cursor aufgeführt. Der API-Schlüssel wird als license_key in der Query-String übergeben. Speichern Sie ihn in einer Umgebungsvariable statt im Quellcode. Details zu Endpunkten und Parametern finden Sie in der offiziellen TikTok-API-Dokumentation.
Prüfen Sie in der Antwort zuerst das äußere status-Feld und greifen Sie anschließend auf das Objekt tiktok zu. Die Beitragsliste für den Nutzer-Feed befindet sich unter tiktok.aweme_list. Das beobachtete Schema enthält eine Video-ID, den Beschreibungstext, den Veröffentlichungszeitpunkt, den Creator, eine URL und ein Statistikobjekt. Einzelne Felder können fehlen; der Handler sollte fehlende Werte als leer speichern, statt erfundene Zahlen einzusetzen.
Das folgende Minimalbeispiel ist für Python 3.8+ und die Bibliothek requests gedacht. Speichern Sie den Schlüssel in JSONSCRAPER_TIKTOK_LICENSE_KEY. Der Code sendet eine Anfrage, prüft die HTTP-Antwort und den äußeren API-Status, schreibt das ursprüngliche JSON und gibt normalisierte Zeilen aus.
import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests
API_KEY = os.environ["JSONSCRAPER_TIKTOK_LICENSE_KEY"]
PROFILE = "creator_username"
params = {
"license_key": API_KEY,
"query": PROFILE,
"count": 20,
"region": "US",
"sort_type": 0,
"with_pinned_posts": 0,
}
response = requests.get(
"https://tiktok.evelode.com/getUserFeed",
params=params,
timeout=30,
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok":
raise RuntimeError("TikTok API returned a non-ok status")
tiktok = payload.get("tiktok") or {}
items = tiktok.get("aweme_list") or []
stamp = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ")
Path("snapshots").mkdir(exist_ok=True)
Path(f"snapshots/{PROFILE}_{stamp}.json").write_text(
json.dumps(payload, ensure_ascii=False, indent=2),
encoding="utf-8",
)
rows = []
for item in items:
stats = item.get("statistics") or {}
author = item.get("author") or {}
rows.append({
"aweme_id": item.get("aweme_id"),
"created_at": item.get("create_time"),
"description": item.get("desc") or "",
"share_url": item.get("share_url"),
"creator": author.get("unique_id") or author.get("nickname"),
"play_count": stats.get("play_count"),
"digg_count": stats.get("digg_count"),
"comment_count": stats.get("comment_count"),
"share_count": stats.get("share_count"),
})
print(json.dumps(rows, ensure_ascii=False, indent=2))
Für diesen Endpunkt ist sort_type mit 0 für den neuesten Feed und 1 für den beliebtesten Feed dokumentiert. Im Beispiel wird der Modus für neuere Beiträge gewählt; angeheftete Videos werden mit with_pinned_posts=0 ausgeschlossen, damit ein älterer angehefteter Beitrag nicht in die Stichprobe neuer Beiträge gelangt. Wenn Sie einen anderen Modus benötigen, speichern Sie den Parameter in den Metadaten der Momentaufnahme und verwenden Sie ihn bei jedem Durchlauf einheitlich.
Antworten verarbeiten: von JSON zu einer reproduzierbaren Tabelle
Es ist sinnvoll, die ursprüngliche Antwort vor jeder Umwandlung zu speichern. So lässt sich die Normalisierung überprüfen, nachvollziehen, warum eine Zeile leer blieb, und der Handler anpassen, falls sich die Verfügbarkeit optionaler Felder in den Antworten ändert. Speichern Sie zusammen mit dem JSON in Ihrem Arbeitsdatenspeicher den Erfassungszeitpunkt in UTC, das abgefragte Profil, die Parameter und die Version Ihres Skripts. Legen Sie den API-Schlüssel weder in einem Archiv noch in einem Protokoll ab.
Verwenden Sie bei wiederholten Durchläufen aweme_id als Beitragskennung, sofern dieses Feld vorhanden ist. Durch die Deduplizierung anhand dieser ID wird verhindert, dass ein Video bei wiederholtem Abruf als mehrere Beiträge gezählt wird. Speichern Sie zugleich separate Momentaufnahmen der Statistiken: Aufrufe und Reaktionen beziehen sich auf den Zeitpunkt der Beobachtung und sind keine unveränderlichen Merkmale des Videos. Fehlt ein Statistikfeld, lassen Sie es leer und schließen Sie den Datensatz aus der Berechnung der jeweiligen Kennzahl aus.
Der Veröffentlichungszeitpunkt ist im Schema als create_time bezeichnet. Wandeln Sie ihn für die Analysetabelle in ein Datum um und speichern Sie sowohl den ursprünglichen Wert als auch die normalisierte UTC-Zeit. Prüfen Sie vor der Berechnung einige echte Datensätze aus der Antwort, um sicherzugehen, dass Typ und Einheiten wie erwartet sind. Das ist besonders wichtig für Zeitdiagramme: Ein Fehler bei der Umwandlung der Zeit ordnet Beiträge den falschen Tagen zu und verfälscht den Wochenvergleich.
Ein einfacher Themenklassifikator lässt sich ohne Modell erstellen: Text normalisieren, nach festgelegten Schlüsselbegriffen suchen und Treffer markieren. Erstellen Sie für eine aussagekräftigere Zuordnung eine Auswahl manuell geprüfter Beschreibungen und Regeln für Grenzfälle. Vergleichen Sie anschließend den einfachen Wörterbuchfilter mit der menschlichen Kennzeichnung: Ermitteln Sie, welche Ausdrücke zu falschen Treffern führen, und aktualisieren Sie das Wörterverzeichnis. So entsteht eine nachvollziehbare Ausgangsbasis, anhand derer sich der spätere Einsatz von KI bewerten lässt.
import re
KEYWORDS = (
"кофе", "эспрессо", "кофемолка", "латте", "заваривание",
)
def normalize(text):
text = (text or "").casefold()
return re.sub(r"\s+", " ", text).strip()
def classify(description):
text = normalize(description)
matches = [word for word in KEYWORDS if word in text]
return {
"topic_match": bool(matches),
"matched_terms": matches,
}
for row in rows:
row.update(classify(row["description"]))
Ein Schlüsselbegriff in der Beschreibung kann ein hilfreiches Signal sein. Der Klassifikator sollte aber eine nachvollziehbare Begründung liefern – die Liste der gefundenen Begriffe statt nur einer Ja/Nein-Kennzeichnung. Verwenden Sie für Sprachmodelle eine strukturierte Anfrage: Übergeben Sie die Videobeschreibung und festgelegte Kategorien und bitten Sie um die Kategorie, eine kurze Begründung und einen Konfidenzwert. Speichern Sie Originaltext und Modellergebnis getrennt. Entscheidungen, die sich auf das Budget oder die Wahl eines Partners auswirken, sollten von einer Person anhand der Beitragslinks geprüft werden.
Kennzahlen mit einem klaren Nenner berechnen
Für einen einfachen Bericht eignen sich der Anteil thematischer Videos und die Veröffentlichungsfrequenz. Der Anteil ergibt sich aus der Zahl der Videos mit bestätigter thematischer Übereinstimmung geteilt durch die Zahl der Videos, die klassifiziert werden konnten. Zeigen Sie stets beide Zahlen, zum Beispiel: „7 von 18 geprüften Beschreibungen“. So wird das Ergebnis verständlicher und es fällt auf, wenn der Prozentwert auf einer zu kleinen Stichprobe beruht.
Die Veröffentlichungsfrequenz lässt sich als Zahl der abgerufenen Videos in einem festen Zeitraum angeben, etwa in den letzten 30 Tagen. Legen Sie die Grenzen des Zeitraums anhand des Erfassungszeitpunkts und der Veröffentlichungsdaten fest. Speichern Sie bei wöchentlichen Momentaufnahmen das Ergebnis jedes Durchlaufs, statt nur eine aktualisierte Gesamtzeile zu behalten. So werden Änderungen bei Themen und Aktivität sichtbar. Interpretieren Sie die Zahl der abgerufenen Elemente nicht als vollständiges Beitragsarchiv des Creators – analysieren Sie die tatsächlich abgerufene Stichprobe und benennen Sie ausdrücklich die dafür geltende Regel.
Aufruf-, Like-, Kommentar- und Weiterleitungszahlen eignen sich als Kontext für jedes Video. Absolute Werte sollten mit Vorsicht verglichen werden: Ein älterer Beitrag hatte möglicherweise mehr Zeit, Reaktionen anzusammeln. Halten Sie für Vergleiche innerhalb eines Creators den Erfassungszeitpunkt jedes Durchlaufs fest und betrachten Sie die Entwicklung desselben Videos zwischen den Momentaufnahmen. Bezeichnen Sie die Differenz zwischen zwei Momentaufnahmen nicht als „Wachstumsrate“, wenn Intervall und Verfügbarkeit der Messungen nicht dokumentiert sind.
Ein nützlicher Abschlusseintrag für jedes Profil umfasst den Erfassungszeitpunkt, die gewählten Parameter, die Zahl der abgerufenen Beiträge, die Zahl der klassifizierten Beschreibungen, die Zahl der thematischen Treffer, eine Liste von Beispiel-URLs und eine kurze Notiz zu mehrdeutigen Fällen. So kann ein Teammitglied die Schlussfolgerung überprüfen und ein anderer Analyst die Methode beim nächsten Profil wiederholen.
Seitennavigation und Zeitplanung
Wenn für die Stichprobe eine weitere Seite erforderlich ist, verwendet die Dokumentation für den Profil-Feed max_cursor, der aus der vorherigen Antwort stammt. Übergeben Sie ihn unverändert: Der Cursor ist ein undurchsichtiger Wert, den Sie speichern und an die API zurückgeben müssen. Prüfen Sie in der Antwort auch has_more, wenn Sie weitere Seiten abrufen möchten. Begrenzen Sie die Zahl der Seiten oder das gesamte Anfragebudget, damit die Datenerhebung vorhersehbar endet.
cursor = None
all_items = []
max_pages = 3
for _ in range(max_pages):
page_params = dict(params)
if cursor is not None:
page_params["max_cursor"] = cursor
page_response = requests.get(
"https://tiktok.evelode.com/getUserFeed",
params=page_params,
timeout=30,
)
page_response.raise_for_status()
page_payload = page_response.json()
if page_payload.get("status") != "ok":
raise RuntimeError("TikTok API returned a non-ok status")
page = page_payload.get("tiktok") or {}
all_items.extend(page.get("aweme_list") or [])
if not page.get("has_more"):
break
cursor = page.get("max_cursor")
if cursor is None:
break
Wählen Sie den Ausführungsrhythmus passend zur Aufgabe: Für eine erste Bewertung reicht ein manueller Durchlauf; bei einer Creator-Liste kann ein wöchentlicher Zeitplan Änderungen sichtbar machen, ohne fortlaufend abzufragen. Der Durchlauf lässt sich in cron, eine CI-Aufgabe oder einen Orchestrator integrieren. Der Ablauf ist einfach: Profile aus einer Tabelle laden, Anfragen mit begrenzter Parallelität ausführen, Momentaufnahmen speichern, den Anteil erfolgreicher Antworten prüfen und eine Zusammenfassung in eine Arbeitstabelle übertragen. Wiederholen Sie eine Anfrage nach einem vorübergehenden Fehler mit einer begrenzten Zahl von Versuchen und Wartezeiten. Speichern Sie Fehler bei authentifizierten Anfragen separat, um Schlüssel und Konfiguration zu überprüfen.
Wo KI sinnvoll ist und wo eine Prüfung nötig bleibt
KI kann bei der Klassifizierung von Beschreibungen mit Slang, mehreren Sprachen oder Formulierungen ohne genaue Schlüsselbegriffe hilfreich sein. Legen Sie zuerst eine geschlossene Kategorienliste fest und weisen Sie das Modell an, ausschließlich den Beschreibungstext zu verwenden. Messen Sie anschließend die Qualität anhand einer kleinen, manuell gekennzeichneten Stichprobe: Vergleichen Sie die Modellkategorien mit den Entscheidungen einer redaktionellen Fachkraft und prüfen Sie Fehler und mehrdeutige Fälle gesondert. Im Bericht sollten Sie eher den Anteil der Übereinstimmungen zwischen Modell und manueller Kennzeichnung sowie die Zahl der geprüften Beispiele angeben als einen nicht interpretierbaren Gesamtwert.
Übertragen Sie dem Modell nicht ohne Kriterien die Aufgabe, „den besten Creator auszuwählen“. Teilen Sie den Prozess stattdessen in messbare Merkmale auf: thematischer Anteil, Regelmäßigkeit, Beispiele relevanter Videos und Bandbreite öffentlicher Reaktionen. Das Modell kann diese Angaben kurz zusammenfassen und die Beleglinks nennen. Die endgültige Entscheidung bleibt dem Team überlassen, das Kampagnenformat, Zielgruppe und Vereinbarungen mit dem Creator berücksichtigt.
Wenn die Analyse bezahlte Kooperationen betrifft, prüfen Sie die Offenlegung der Beziehung zwischen Creator und Marke direkt in den Beiträgen und anhand der geltenden Anforderungen. Die Leitlinien der US-amerikanischen Federal Trade Commission erklären, dass eine Verbindung zu einer Marke deutlich neben der Empfehlung offengelegt werden sollte. Eine Profilbiografie oder ein versteckter Textbereich kann als auffälliger Hinweis für das Publikum unzureichend sein. Siehe die FTC-Leitlinien für Social-Media-Creators. Das Monitoring öffentlicher Daten hilft, Material für eine Prüfung zu sammeln. Die Beurteilung der Regelkonformität erfordert jedoch den Kontext des jeweiligen Beitrags und der Kampagne.
Was am Ende vorliegt
Nach der Einrichtung der Pipeline verfügt das Team über datierte Momentaufnahmen eines öffentlichen Feeds, eine Beitragstabelle mit Beschreibungen und verfügbaren Kennzahlen sowie eine reproduzierbare Berechnung des thematischen Anteils. Damit lassen sich Profile schneller zur weiteren Prüfung auswählen, Themenwechsel erkennen und die Gründe für eine Bewertung dokumentieren. Die Methode bleibt überprüfbar: Das ursprüngliche JSON, die Anfrageparameter, die Klassifizierungsregeln und die Videolinks zeigen den Weg von den Daten bis zur Schlussfolgerung.
Testen Sie das Skript zunächst mit einem Profil, speichern Sie die Rohantwort und prüfen Sie einige Klassifizierungen manuell. Legen Sie anschließend das Themenwörterverzeichnis, die Stichprobenregeln und das Berichtsformat fest. Sobald die Ergebnisse reproduzierbar sind, ergänzen Sie einen Zeitplan und eine Profilwarteschlange. Eine Beschreibung der Endpunkte und Parameter finden Sie in der API-Dokumentation; einen Überblick über das Produkt und verfügbare Integrationsoptionen bietet die Seite zur TikTok Scraper API.
Praktische Checkliste vor dem Start
- Halten Sie das Kampagnenthema, die Einschlussbegriffe und Beispiele für Grenzfälle fest.
- Legen Sie Stichprobenzeitraum,
count-Wert, Sortierung und Einstellung für angeheftete Beiträge fest. - Speichern Sie das ursprüngliche JSON, den Erfassungszeitpunkt und die Parameter getrennt vom geheimen Schlüssel.
- Verwenden Sie
aweme_idzur Deduplizierung, sofern die Kennung vorhanden ist. - Unterscheiden Sie fehlende Werte von null und mitteln Sie Kennzahlen nicht ohne nachvollziehbare Grundlage.
- Zeigen Sie die Stichprobengröße neben dem thematischen Anteil und fügen Sie Beispiel-Links bei.
- Prüfen Sie die KI-Klassifizierung anhand einer manuell gekennzeichneten Stichprobe, bevor sie in Kampagnenentscheidungen einfließt.
- Aktualisieren Sie die Bewertung nach einem Zeitplan und vergleichen Sie Momentaufnahmen, die nach denselben Regeln erstellt wurden.