Når et team skal undersøke hvordan innholdsskapere opplyser om tilknytning til en merkevare i offentlige TikTok-videoer, er et nyttig første resultat ikke en automatisk konklusjon, men en kompakt kø med videoer, bildetekster, lenker og ord som er funnet som markører. Her er en praktisk fremgangsmåte: send et søk via TikTok Scraper API jsonscraper, konverter de to mulige svarstrukturene til ett format, og lagre en CSV-fil for gjennomgang av en fagperson.
Målet: finne videoer som bør gjennomgås
Manuelt søk etter et selskapsnavn er vanskelig å gjenta på samme måte: Resultatene må samles inn ett etter ett, og grunnlaget for utvalget blir liggende i nettleseren. Med automatisert innsamling kan du lagre søket, datoen det ble kjørt og materialet som ble funnet, i en tabell, slik at teamet kan gjennomgå videoene fra én felles liste.

I dette eksemplet betyr «kandidat for gjennomgang» bare en video fra søkeresultatene der beskrivelsen inneholder et forhåndsdefinert ord eller uttrykk. Det kan for eksempel være «reklame», «partnerskap» eller «sponsor». Et slikt tekstfilter kan rette oppmerksomheten mot relevant innhold, men det vurderer ikke selve videoen og fastslår ikke om gjeldende krav er oppfylt.
Dette skillet er viktig for markedsføringsteamet. Anbefalingene fra den amerikanske Federal Trade Commission beskriver opplysning om en vesentlig tilknytning til en merkevare som en plikt som avhenger av budskapets kontekst; for video anbefaler FTC å ta hensyn til både synlig og hørbar opplysning. Søk i bildetekster kan avdekke enkelte tekstlige signaler, men en konklusjon krever at man ser publiseringen og vurderer konteksten. FTCs veiledning for innholdsskapere forklarer disse forholdene med eksempler.
Resultatet: en CSV-fil med utvalgsgrunnlag
Pipelinen skriver én rad per unik video-ID og inkluderer beskrivelsestekst, lenke, forfatternavn, tilgjengelige offentlige måltall og markører som samsvarer. I tillegg legger vi til det opprinnelige søket og tidspunktet for innsamlingen. Dermed kan tabellen sendes videre til en arbeidskø, og det blir enklere å forstå senere hvorfor en bestemt video ble tatt med.
Listen over markører fastsettes av en redaktør eller en fagperson innen etterlevelse. Begynn med språket og uttrykkene som faktisk brukes i kampanjen, og gjennomgå deretter utvalget. Utvid listen ved behov. Verdiene i koden nedenfor er bevisst enkle; tilpass dem til den aktuelle merkevaren, markedet og innholdsspråket.
Koble til TikTok Scraper API
Dokumentasjonen til jsonscraper angir endepunktet GET /searchVideo på basisadressen https://tiktok.evelode.com for videosøk. Den obligatoriske parameteren er keyword; blant tilleggsparameterne finner vi count, date_posted, sort_by og region. Nøkkelen sendes som license_key, så oppbevar den i en miljøvariabel, ikke i koden eller CSV-filen. Nøyaktige parameternavn og endepunktet står i referansen for TikTok-endepunkter; produkt- og tilgangsinformasjon finnes på siden for TikTok Scraper API.
En viktig detalj ved svaret påvirker hvor komplett den lokale parseren blir: dataene kan ligge i tiktok.aweme_list eller i tiktok.search_item_list[].aweme_info. Derfor kontrollerer skriptet begge listene. Hvis søket gir en tom liste, oppretter det en tom CSV-fil i stedet for å fylle den med oppdiktede rader.
Python-eksempel: søk, filtrering og CSV
Eksemplet bruker bare standardbiblioteket i Python 3.8 eller nyere. Før du kjører det, angir du JSONSCRAPER_TIKTOK_LICENSE_KEY i miljøet. Forespørselen bruker keyword, og nøkkelen sendes i spørringsparameteren license_key, slik det står i spesifikasjonen.

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")
Skriptet kontrollerer først den ytre statusen, leser deretter objektet tiktok og slår sammen de tilgjengelige listevariantene. Deduplisering med aweme_id forhindrer dupliserte rader dersom én video finnes via begge svarstrukturene. Måltallene lagres slik de mottas; manglende verdier blir stående tomme i stedet for å bli gjort om til null.
Eksemplet bruker parametere som er dokumentert for /searchVideo: date_posted kan ha verdien this-month, sort_by kan være date-posted, og region tar imot en landskode. Verdien count bestemmer størrelsen på søkeresultatet som etterspørres, men er ingen garanti for en fullstendig liste over publiseringer. Hvis du implementerer paginering, må du lagre den returnerte markøren som en ugjennomsiktig verdi og sende den videre i parameteren cursor.
Menneskelig gjennomgang og automatisering av kjøringen
Send CSV-filen til den ansvarlige kontrolløren sammen med en kort instruksjon: åpne lenken, se videoen og vurder bildetekstens kontekst, dokumenter konklusjonen, og legg til en kommentar hvis markøren er brukt i en annen betydning. Automatisk filtrering skiller for eksempel ikke mellom reklamemerking og en diskusjon om hvordan reklame fungerer. Menneskelig gjennomgang håndterer dette tolkningsmessige gapet.
For gjentakbar innsamling kan du kjøre skriptet etter en tidsplan med cron, en CI-planlegger eller en oppgaveorkestrator. Lagre CSV-filer med kjøredato, eller last radene inn i en tabell med en unik nøkkel satt sammen av video-ID og observasjonsdato. Hvis du trenger en revisjonslogg, bør du også lagre det opprinnelige JSON-svaret med tilgangskontroll: Det gjør det mulig å kontrollere transformasjonen på nytt og forklare hvor hver rad kommer fra.
I en produksjonsversjon bør du legge til håndtering av nettverks- og HTTP-feil, begrenset antall nye forsøk og varsling ved feil. Ikke skriv ut hele forespørselsadressen: Den inneholder tilgangsnøkkelen. For team med flere brukere er det fornuftig å lagre hemmeligheten i en hemmelighetstjeneste for kjøremiljøet og begrense tilgangen til resultatfilene i tråd med interne regler.
Hva en slik liste faktisk gir
Når skriptet er kjørt, får teamet et gjentakbart utvalg av videoer som ble funnet med søkefrasen, og en tydelig begrunnelse for at hver kandidat havnet i køen. I tabellen kan man manuelt fjerne irrelevante treff, tildele en kontrollør og gruppere resultatene etter markør eller innholdsskaper. Ved regelmessig innsamling får man også en historikk over hvilke videoer som var med i søkeresultatene på bestemte datoer.
Metoden egner seg til innledende oppdagelse og videresending av materiale, ikke til automatisk å konkludere om etterlevelse av regler. Den er begrenset av søkeresultatene, det valgte søkeordet, søkeinnstillingene og tekstmarkørene. For å kontrollere et konkret samarbeid bør du sammenligne videoen med kampanjebeskrivelsen og opplysningene teamet har tilgang til, og deretter vurdere selve budskapet opp mot gjeldende regler.
Før du begynner, bør du kontrollere gjeldende tilgang og parametere på produktsiden for TikTok Scraper API, og sammenholde svarformat og integrasjonsalternativer med den offisielle API-dokumentasjonen.