Um zu erkennen, ob ein bestimmtes TikTok-Video mehr Reaktionen erhält, vergleichen Sie seine öffentlichen Kennzahlen mit einer früheren Momentaufnahme. Eine einmalige Suche zeigt die bisher angesammelten Aufrufe und Reaktionen; durch wiederholtes Erfassen derselben gefundenen Videos lässt sich die Veränderung zwischen zwei Durchläufen erkennen. Im Folgenden finden Sie eine minimale, funktionsfähige Python-Pipeline: eine Suchanfrage, das Speichern der Kennzahlen in einer CSV-Datei und die Berechnung der Differenz.
Was misst eine solche Überwachung genau?
Das Skript eignet sich für Marketingfachleute, Analysten oder Entwickler, die eine Liste thematisch passender Videos und eine überprüfbare Beobachtungshistorie benötigen. Ein Team kann zum Beispiel regelmäßig Videos zu einer Produkteinführung oder einer bestimmten Zielgruppenanfrage beobachten und feststellen wollen, welche Videos seit der letzten Prüfung mehr Aufrufe, Likes, Kommentare oder geteilte Inhalte erhalten haben.

Die zentrale Vergleichseinheit ist das durch aweme_id identifizierte Video. Für jeden Datensatz werden Erfassungszeitpunkt, ID, Beschreibung, URL, Autorenname und verfügbare Zähler gespeichert. Anschließend werden zwei Momentaufnahmen anhand der ID einander zugeordnet. So wird der Aufrufzuwachs eines Videos nicht mit den angesammelten Aufrufen eines anderen vermischt.
Das Ergebnis beschreibt nur Videos, die bei einem bestimmten Durchlauf von einer konkreten Suchanfrage zurückgegeben wurden. Die Suchergebnisse können sich ändern, und einzelne Statistikfelder können fehlen. Deshalb ist es sinnvoll, die Momentaufnahmen und den Erfassungszeitpunkt aufzubewahren und den Bericht als Beobachtung bereits gefundener Videos zu verstehen, nicht als vollständigen Katalog aller Veröffentlichungen zu einem Thema.
Wie funktioniert die Erfassung über die API?
Die Dokumentation der TikTok Scraper API beschreibt die GET-Route /searchVideo. Für die Suche ist die Zeichenfolge keyword erforderlich; zu den zusätzlichen Parametern gehören count, region, sort_by und date_posted. Der API-Schlüssel wird als license_key übergeben. Als Basis-URL ist in der Dokumentation https://tiktok.evelode.com angegeben.
Die Antwort enthält einen äußeren Status und ein Objekt namens tiktok. Suchergebnisse können Videos unter tiktok.aweme_list oder innerhalb von tiktok.search_item_list[].aweme_info enthalten. Der folgende Handler unterstützt beide Formen. Die Kennzahlen stammen aus statistics, darunter play_count, digg_count, comment_count und share_count; ein fehlender Wert bleibt leer und wird nicht durch null ersetzt.
Die Routendokumentation führt cursor zur Paginierung der Suchergebnisse auf und nennt zulässige Varianten für date_posted und sort_by. Für eine einfache, wiederholbare Überwachung genügt zunächst eine Ergebnisseite. Speichern Sie die Antwort und ergänzen Sie die Paginierung nur bei Bedarf. Übergeben Sie in diesem Fall den erhaltenen Cursor unverändert.
Ein funktionsfähiges Beispiel in Python
Installieren Sie die Requests-Bibliothek mit dem Befehl python -m pip install requests und legen Sie den Schlüssel in der Umgebungsvariable JSONSCRAPER_TIKTOK_LICENSE_KEY ab. Das Skript nimmt eine Suchphrase als Argument entgegen und fügt die erfassten Momentaufnahmen einer CSV-Datei hinzu. Der Code ist mit Python 3.8 und höher kompatibel.
import csv
import os
import sys
from datetime import datetime, timezone
from pathlib import Path
import requests
BASE_URL = "https://tiktok.evelode.com/searchVideo"
CSV_PATH = Path("tiktok_video_snapshots.csv")
FIELDS = [
"collected_at", "aweme_id", "author", "description", "share_url",
"play_count", "digg_count", "comment_count", "share_count",
]
def extract_items(payload):
"""Support the observed search response layouts."""
data = payload.get("tiktok") or {}
items = data.get("aweme_list") or []
if items:
return items
found = []
for result in data.get("search_item_list") or []:
info = result.get("aweme_info")
if info:
found.append(info)
return found
def main():
key = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
if not key:
raise SystemExit("Set JSONSCRAPER_TIKTOK_LICENSE_KEY first")
if len(sys.argv) < 2:
raise SystemExit('Usage: python collect.py "search phrase"')
params = {
"license_key": key,
"keyword": sys.argv[1],
"count": 20,
"region": "US",
"sort_by": "relevance",
"date_posted": "this-week",
}
response = requests.get(BASE_URL, params=params, timeout=30)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok":
raise RuntimeError("API returned a non-ok outer status")
data = payload.get("tiktok") or {}
items = extract_items(payload)
collected_at = datetime.now(timezone.utc).isoformat()
rows = []
for item in items:
stats = item.get("statistics") or {}
author = item.get("author") or {}
rows.append({
"collected_at": collected_at,
"aweme_id": item.get("aweme_id"),
"author": author.get("unique_id") or author.get("nickname"),
"description": item.get("desc"),
"share_url": item.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"),
})
write_header = not CSV_PATH.exists()
with CSV_PATH.open("a", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=FIELDS)
if write_header:
writer.writeheader()
writer.writerows(rows)
print("Saved", len(rows), "returned videos")
print("has_more:", data.get("has_more"), "cursor:", data.get("cursor"))
if __name__ == "__main__":
main()
Führen Sie das Skript beispielsweise mit python collect.py "Produktanfrage" aus. Die Bibliothek fügt den Schlüssel als Parameter zur URL hinzu; das Skript gibt ihn nicht im Terminal aus. Speichern Sie nicht die vollständige Anfrage-URL in öffentlich zugänglichen Protokollen, da sie den Schlüssel enthält. Verwenden Sie für den produktiven Einsatz einen Geheimnisspeicher und beschränken Sie den Zugriff auf die Datei mit den Momentaufnahmen.
Wie berechnet man den Zuwachs zwischen zwei Durchläufen?
Das Skript speichert absichtlich alle Beobachtungen, statt frühere Werte zu überschreiben. Der folgende kleine Auswerter ordnet für jedes Video die letzten beiden Momentaufnahmen einander zu und gibt die Differenz der Zähler aus. Fehlt eine Kennzahl in einem der beiden Datensätze, wird das Ergebnis als nicht verfügbar gekennzeichnet.

import csv
from collections import defaultdict
from pathlib import Path
rows_by_video = defaultdict(list)
with Path("tiktok_video_snapshots.csv").open(encoding="utf-8", newline="") as file:
for row in csv.DictReader(file):
if row["aweme_id"]:
rows_by_video[row["aweme_id"]].append(row)
metrics = ("play_count", "digg_count", "comment_count", "share_count")
for video_id, snapshots in rows_by_video.items():
snapshots.sort(key=lambda row: row["collected_at"])
if len(snapshots) < 2:
continue
previous, latest = snapshots[-2], snapshots[-1]
changes = {}
for metric in metrics:
old, new = previous[metric], latest[metric]
changes[metric] = int(new) - int(old) if old and new else None
print(video_id, changes, latest["share_url"])
Die Differenz ergibt sich aus zwei gespeicherten Werten und ist keine Wachstumsrate mit garantiert regelmäßigem Zeitintervall. Wenn die Durchläufe in unterschiedlichen Abständen erfolgen, berechnen Sie zusätzlich die Zeitspanne zwischen den Werten in collected_at und vergleichen Sie den Zuwachs über den tatsächlichen Zeitraum. Zähler können sich zwischen den Beobachtungen ändern; die gespeicherten Zeitstempel zeigen, wann die verwendeten Werte abgerufen wurden.
Wie automatisiert und interpretiert man den Bericht?
Für einen täglichen Bericht können Sie die Erfassung mit einem Aufgabenplaner auf einem Server oder in einer CI-Umgebung ausführen, eine feste Liste von Suchbegriffen festlegen und die CSV-Datei speichern oder die Zeilen in eine Datenbank laden. Entfernen Sie bei wiederholten Durchläufen doppelte Einträge innerhalb derselben Momentaufnahme anhand von aweme_id, falls die Ergebnisse Wiederholungen enthalten. Bewahren Sie neben den normalisierten Spalten auch das ursprüngliche JSON auf: So lässt sich die Verarbeitung nach Änderungen am Berichtsschema leichter wiederholen.
In der Tabelle sollten die Video-ID und -URL, der Autor, die Beschreibung, der Erfassungszeitpunkt und die Differenzen für einzelne Kennzahlen angezeigt werden. Eine Sortierung nach dem Aufrufzuwachs gibt Aufschluss über die Verbreitung; Zuwächse bei Kommentaren oder geteilten Inhalten helfen, andere Arten von Reaktionen zu erkennen. Fassen Sie diese Kennzahlen nicht ohne eine klar definierte Regel zu einer Gesamtbewertung zusammen: Jeder Zähler steht für etwas anderes.
Ein Aufgabenplaner kann den Bericht per E-Mail, in einer Tabelle oder in einem internen Kanal versenden. Dieser Schritt wird jedoch von Ihrer Infrastruktur übernommen; das obige Beispiel erfasst und analysiert lediglich die Daten. Für eine vollständigere Erfassung können Sie die Ergebnisseiten durchlaufen, den Cursor speichern und die Schleife beenden, sobald die API keine weiteren Seiten meldet. Der Suchcursor ist ein undurchsichtiger Wert aus der Antwort; berechnen Sie ihn nicht selbst. Auch das Durchlaufen aller Seiten beschreibt die zurückgegebenen Suchergebnisse und garantiert keine vollständige Liste aller passenden Veröffentlichungen.
Das erwartete praktische Ergebnis ist ein reproduzierbares Beobachtungsprotokoll und eine Tabelle mit Veränderungen für gefundene Videos. Damit lässt sich erkennen, bei welchen Veröffentlichungen sich die öffentlichen Zähler zwischen zwei Prüfungen verändert haben. Anschließend können Sie konkrete Links zur inhaltlichen Analyse an Fachleute weitergeben. Weitere Produktinformationen und den API-Zugang finden Sie auf der Seite zur TikTok Scraper API.
Was sollte man vor dem geplanten Start prüfen?
- Vergewissern Sie sich, dass der äußere Antwortstatus
oklautet, bevor Sietiktokverarbeiten. - Prüfen Sie beide Varianten der Suchergebnisstruktur. Eine fehlende Liste sollte zu einer leeren Erfassung führen, nicht zu einem Fehler.
- Speichern Sie die ursprünglichen Werte und Zeitstempel. Eine fehlende Kennzahl bleibt leer.
- Verwenden Sie dieselben Suchanfragen und Parameter, damit sich die Momentaufnahmen besser vergleichen lassen. Dokumentieren Sie Änderungen dieser Einstellungen zusammen mit dem Bericht.
- Überwachen Sie die Ausführungshäufigkeit, HTTP-Fehler und den Umfang der Historie. Beachten Sie außerdem die geltenden Plattformregeln und Datenschutzanforderungen.
Für eine nachvollziehbare Auswertung genügt es, dieselbe Suche regelmäßig auszuführen, Videos über aweme_id zu identifizieren und die gespeicherten Kennzahlen im Zeitverlauf zu vergleichen. Damit lässt sich eine klar umrissene praktische Frage beantworten: Welche der bereits gefundenen Videos haben ihre öffentlichen Zähler zwischen zwei Prüfungen verändert? Zugleich bleiben die Rohdaten für Prüfungen und die weitere Verarbeitung verfügbar.