jsonscraper
Märkte
Zurück zum Journal

TikTok-Videos mit Werbekennzeichnungen finden und zur Prüfung weiterleiten

Eine Python-Pipeline sammelt Suchergebnisse, extrahiert verfügbare Beschreibungen und Kennzahlen und erstellt anschließend eine Warteschlange für die manuelle Prüfung.

Redaktionsrichtlinie Fehler melden

Wenn ein Team prüfen möchte, wie Creator in öffentlichen TikTok-Videos ihre Verbindung zu einer Marke offenlegen, ist ein nützliches erstes Ergebnis kein automatisches Urteil, sondern eine kompakte Warteschlange mit Beschreibung, Link und gefundenen Schlüsselwörtern. Im Folgenden zeigen wir einen praktikablen Ablauf: eine Suchanfrage über die TikTok Scraper API von jsonscraper senden, die beiden möglichen Antwortstrukturen vereinheitlichen und eine CSV-Datei für die fachliche Prüfung speichern.

Die Aufgabe: Videos finden, die geprüft werden sollten

Die manuelle Suche nach einem Unternehmensnamen lässt sich nur schwer einheitlich wiederholen: Die Ergebnisse müssen einzeln gesammelt werden, und die Auswahlgründe bleiben im Browser. Mit einer automatisierten Stichprobe lassen sich die Suchanfrage, das Ausführungsdatum und die gefundenen Inhalte in einer Tabelle festhalten, sodass das Team die Videos anhand einer einheitlichen Liste prüfen kann.

Artikel: TikTok-Videos mit Werbekennzeichnungen finden und zur Prüfung weiterleiten
Zusammenfassung: Wir zeigen, wie sich öffentliche TikTok-Videos anhand eines Markennamens finden, beide möglichen API-Antwortstrukturen zuverlässig verarbeiten und Treffer mit eindeutigen Hinweisen auf Werbung zur fachlichen Prüfung als CSV exportieren lassen.
Bildrolle: Titelbild – die zentrale Idee
Abschnitt: Die Aufgabe: Videos finden, die geprüft werden sollten
Bildmotiv: Redaktionelles Stillleben mit einer ausgedruckten CSV-Prüfliste neben einem Smartphone mit einer abstra
Die Kandidatenliste verknüpft einen gefundenen Texthinweis mit einem konkreten Beitrag, den anschließend eine Fachperson prüft.© jsonscraper · KI-generiert

In diesem Szenario bezeichnet „Prüfkandidat“ lediglich ein Video aus den zurückgegebenen Suchergebnissen, dessen Beschreibung ein zuvor festgelegtes Wort oder eine entsprechende Formulierung enthält. Das könnten beispielsweise „Werbung“, „Partnerschaft“ oder „gesponsert“ sein. Ein solcher Textfilter hilft dabei, die Aufmerksamkeit eines Menschen gezielt zu lenken, bewertet aber weder das Video selbst noch stellt er fest, ob die geltenden Anforderungen erfüllt sind.

Diese Unterscheidung ist für Marketingteams wichtig. Die Empfehlungen der US-amerikanischen Federal Trade Commission beschreiben die Offenlegung einer wesentlichen Verbindung zu einer Marke als kontextabhängige Verpflichtung; bei Videos empfiehlt die FTC, sowohl die sichtbare als auch die hörbare Form der Offenlegung zu berücksichtigen. Eine Suche in der Beschreibung kann einzelne textliche Hinweise erkennen, doch für eine Entscheidung müssen der Beitrag angesehen und sein Kontext bewertet werden. Der FTC-Leitfaden für Creator erläutert diese Bedingungen anhand von Beispielen.

Ergebnis: eine CSV mit Auswahlgründen

Die Pipeline schreibt eine Zeile pro eindeutiger Video-ID und enthält Beschreibungstext, Link, Autorennamen, verfügbare öffentliche Kennzahlen und die passenden Hinweise. Außerdem fügen wir die ursprüngliche Suchanfrage und den Erfassungszeitpunkt hinzu. So eignet sich die Tabelle für die Weitergabe an eine Prüfwarteschlange und hilft später nachzuvollziehen, warum ein bestimmtes Video aufgenommen wurde.

Das Wörterbuch der Hinweise wird von der Redaktion oder einer Compliance-Fachperson festgelegt. Beginnen Sie mit der Sprache und den Begriffen, die in Ihrer Kampagne tatsächlich verwendet werden, prüfen Sie anschließend die Treffer und erweitern Sie die Liste bei Bedarf. Die Werte im folgenden Code sind bewusst einfach gehalten und sollten an die jeweilige Marke, den Markt und die Inhaltssprache angepasst werden.

Verbindung mit der TikTok Scraper API

Die jsonscraper-Dokumentation nennt für die Videosuche die Route GET /searchVideo unter der Basisadresse https://tiktok.evelode.com. Der Pflichtparameter lautet keyword; zu den optionalen Parametern gehören count, date_posted, sort_by und region. Der Schlüssel wird als license_key übergeben. Bewahren Sie ihn daher in einer Umgebungsvariable auf und nicht im Code oder in der CSV-Datei. Die genauen Parameternamen und die Route finden Sie im TikTok-Endpunktverzeichnis; Produkt- und Zugriffsinformationen stehen auf der Produktseite der TikTok Scraper API.

Eine Besonderheit der Antwort ist für die Vollständigkeit des lokalen Parsers wichtig: Die Daten können sich entweder in tiktok.aweme_list oder in tiktok.search_item_list[].aweme_info befinden. Deshalb prüft das Skript beide Arrays. Gibt die Suche eine leere Liste zurück, erstellt es eine leere CSV-Datei, statt Ergebnisse durch erfundene Zeilen vorzutäuschen.

Python-Beispiel: Suche, Filter und CSV

Das Beispiel verwendet ausschließlich die Python-3.8+-Standardbibliothek. Legen Sie vor dem Start JSONSCRAPER_TIKTOK_LICENSE_KEY in der Umgebung fest. Die Anfrage verwendet keyword, und der Schlüssel wird wie in der Spezifikation angegeben als Query-Parameter license_key übergeben.

Artikel: TikTok-Videos mit Werbekennzeichnungen finden und zur Prüfung weiterleiten
Zusammenfassung: Wir zeigen, wie sich öffentliche TikTok-Videos anhand eines Markennamens finden, beide möglichen API-Antwortstrukturen zuverlässig verarbeiten und Treffer mit eindeutigen Hinweisen auf Werbung zur fachlichen Prüfung als CSV exportieren lassen.
Bildrolle: unterstützende Illustration 2 – ein anderer konkreter Aspekt
Abschnitt: Python-Beispiel: Suche, Filter und CSV
Bildmotiv: Einfache Infografik auf Russisch, die zwei unterstützte Pfade zu Suchdaten aus der TikTok-API zeigt
Das Diagramm zeigt beide unterstützten Pfade zu den Suchdaten und die Schritte zur Erstellung der Prüfw arteschlange.© jsonscraper · KI-generierte Illustration
import csv
import json
import os
import sys
from datetime import datetime, timezone
from urllib.parse import urlencode
from urllib.request import Request, urlopen

API_KEY = os.environ["JSONSCRAPER_TIKTOK_LICENSE_KEY"]
KEYWORD = "Acme"
MARKERS = ["реклама", "партнерство", "партнёрство", "спонсор", "ad", "sponsored"]

params = {
    "license_key": API_KEY,
    "keyword": KEYWORD,
    "count": 30,
    "sort_by": "date-posted",
    "date_posted": "this-month",
    "region": "US",
}
url = "https://tiktok.evelode.com/searchVideo?" + urlencode(params)
request = Request(url, headers={"Accept": "application/json"})

with urlopen(request, timeout=30) as response:
    payload = json.load(response)

if payload.get("status") != "ok":
    raise RuntimeError("API returned a non-ok outer status")

tiktok = payload.get("tiktok") or {}
items = list(tiktok.get("aweme_list") or [])
for entry in tiktok.get("search_item_list") or []:
    info = entry.get("aweme_info") or {}
    if info:
        items.append(info)

seen = set()
rows = []
collected_at = datetime.now(timezone.utc).isoformat()

for item in items:
    video_id = item.get("aweme_id")
    if not video_id or video_id in seen:
        continue
    seen.add(video_id)

    description = item.get("desc") or ""
    lowered = description.casefold()
    matched = [word for word in MARKERS if word.casefold() in lowered]
    if not matched:
        continue

    author = item.get("author") or {}
    stats = item.get("statistics") or {}
    rows.append({
        "collected_at_utc": collected_at,
        "search_keyword": KEYWORD,
        "video_id": video_id,
        "share_url": item.get("share_url") or "",
        "description": description,
        "matched_markers": "; ".join(matched),
        "author_name": author.get("nickname") or "",
        "author_id": author.get("unique_id") or "",
        "play_count": stats.get("play_count", ""),
        "digg_count": stats.get("digg_count", ""),
        "comment_count": stats.get("comment_count", ""),
        "share_count": stats.get("share_count", ""),
    })

fields = [
    "collected_at_utc", "search_keyword", "video_id", "share_url",
    "description", "matched_markers", "author_name", "author_id",
    "play_count", "digg_count", "comment_count", "share_count",
]
with open("tiktok_review_queue.csv", "w", newline="", encoding="utf-8-sig") as output:
    writer = csv.DictWriter(output, fieldnames=fields)
    writer.writeheader()
    writer.writerows(rows)

print(f"Saved {len(rows)} review candidates to tiktok_review_queue.csv")

Das Skript prüft zunächst den äußeren Status, liest dann das Objekt tiktok und führt die verfügbaren Varianten des Arrays zusammen. Die Deduplizierung anhand von aweme_id verhindert doppelte Zeilen, falls dasselbe Video in beiden Antwortpfaden vorkommt. Die Kennzahlen werden so gespeichert, wie sie zurückgegeben werden; fehlende Werte bleiben leer und werden nicht zu null.

Das Beispiel verwendet die für /searchVideo dokumentierten Parameter: Für date_posted ist der Wert this-month zulässig, für sort_by der Wert date-posted, und region akzeptiert einen Ländercode. Der Wert von count legt die Größe der angeforderten Ergebnismenge fest, garantiert aber keine vollständige Liste aller Beiträge. Wenn Sie die Ergebnisse paginieren, speichern Sie den zurückgegebenen Cursor als undurchsichtigen Wert und übergeben ihn im Parameter cursor.

Manuelle Prüfung und automatisierte Ausführung

Geben Sie die CSV-Datei zusammen mit einer kurzen Anleitung an die zuständige prüfende Person weiter: Link öffnen, Video und Kontext der Beschreibung ansehen, Ergebnis festhalten und kommentieren, wenn der Hinweis in einer anderen Bedeutung verwendet wird. Eine automatische Filterung kann beispielsweise nicht zwischen einer Werbekennzeichnung und einer Diskussion darüber unterscheiden, wie Werbung funktioniert. Die menschliche Prüfung schließt diese semantische Lücke.

Für wiederholbare Erfassungen können Sie das Skript nach Zeitplan über cron, einen CI-Scheduler oder einen Orchestrator ausführen. Speichern Sie die CSV-Datei mit dem Ausführungsdatum oder laden Sie die Zeilen in eine Tabelle mit einem eindeutigen Schlüssel aus Video-ID und Beobachtungsdatum. Wenn Sie ein Auditprotokoll benötigen, speichern Sie auch die ursprüngliche JSON-Antwort unter Zugriffsbeschränkungen: So lassen sich die Umwandlung erneut prüfen und die Herkunft jeder Zeile nachvollziehen.

Für den produktiven Einsatz sollten Sie die Behandlung von Netzwerk- und HTTP-Fehlern, begrenzte Wiederholungsversuche und eine Fehlermeldung ergänzen. Geben Sie die vollständige Anfrage-URL nicht aus, da sie den Zugriffsschlüssel enthält. Bei Teams mit mehreren Nutzern empfiehlt es sich, das Geheimnis in einem Secret-Manager der Laufzeitumgebung zu speichern und den Zugriff auf die Ausgabedateien gemäß den internen Regeln zu beschränken.

Was diese Liste tatsächlich leistet

Nach dem Start verfügt das Team über eine reproduzierbare Auswahl von Videos, die anhand einer Suchphrase gefunden wurden, und einen klaren Grund dafür, warum jeder Kandidat in der Warteschlange gelandet ist. In der Tabelle können irrelevante Treffer manuell ausgeschlossen, prüfende Personen zugewiesen und Ergebnisse nach Hinweis oder Autor gruppiert werden. Bei regelmäßiger Erfassung entsteht außerdem eine Beobachtungshistorie, aus der hervorgeht, welche Videos an einem bestimmten Datum in den zurückgegebenen Suchergebnissen enthalten waren.

Dieser Ansatz eignet sich für die erste Erkennung und Weiterleitung von Inhalten, nicht für eine automatische Beurteilung der Regelkonformität. Er ist durch die Suchergebnisse, das gewählte Schlüsselwort, die Anfrageeinstellungen und die Texthinweise begrenzt. Um eine konkrete Kooperation zu prüfen, vergleichen Sie das Video mit dem Briefing und den Informationen, die Ihrem Team vorliegen, und bewerten Sie anschließend die Botschaft anhand der geltenden Regeln.

Prüfen Sie zunächst die aktuellen Zugriffsbedingungen und Parameter auf der Produktseite der TikTok Scraper API. Vergleichen Sie Antwortformat und Integrationsmöglichkeiten außerdem mit der offiziellen API-Dokumentation.

Menschen

Für diesen Artikel sind noch keine Personen aufgeführt.

Lesen Sie weiterTikTok-Videos mit Produktfragen finden und auswerten
Lesen Sie den nächsten Artikel

Vom Artikel zur funktionierenden Integration

Entdecke die Social-Data-APIs von jsonscraper, teste Anfragen und entwickle deinen nächsten Workflow.

APIs entdecken