Als klanten uw product op TikTok bespreken, kan een zoekopdracht op merknaam uw team materiaal opleveren voor een lijst met terugkerende vragen. Het praktische resultaat is een CSV met de videobeschrijving, auteur, link en beschikbare engagementcijfers. U kunt dit bestand aan een supportmedewerker geven of gebruiken als invoer voor thematische classificatie.

Neem als voorbeeld de zoekopdracht ‘hoe gebruik je een Acme-koffiemachine’. Het onderstaande script voert één zoekopdracht uit op TikTok, haalt video’s zorgvuldig op uit twee gedocumenteerde antwoordstructuren en slaat de gevonden resultaten op. Vervolgens controleert het team de beschrijvingen handmatig, voegt vergelijkbare formuleringen samen en zet ze om in FAQ-thema’s of tips voor een productpagina.
Waarom u zoekresultaten in een tabel wilt omzetten
Handmatig door zoekresultaten bladeren maakt herhaald controleren lastig: u moet de resultaten opnieuw opzoeken en notities blijven vaak in de browser of in berichten staan. Een opgeslagen tabel biedt één centrale werklijst, met per vermelding een video-ID, link, beschrijving, auteur en beschikbare statistieken. U kunt de uitvoering herhalen volgens een schema en met het JSON-archief achterhalen wat de API bij een specifieke uitvoering precies heeft teruggegeven.
Belangrijk is de beperking van deze methode: de zoekopdracht geeft resultaten voor de opgegeven zoekterm, maar geen gegarandeerd volledige catalogus van alle vermeldingen. De tabel is daarom geschikt om voorbeelden te vinden en terugkerende vragen te volgen. Voor uitspraken over de frequentie zijn herhaalde uitvoeringen en handmatige controle nodig.
Wat de zoekopdracht teruggeeft
Volgens de documentatie van TikTok Scraper API vereist het endpoint /searchVideo de parameter keyword. De ondersteunde parameters omvatten ook count, cursor, date_posted, sort_by en region. Voor dit scenario volstaan een zoekterm en het gewenste aantal resultaten.
Het antwoord bevat een externe status en een object tiktok. In het gecontroleerde schema kunnen video’s staan in aweme_list of in items van search_item_list, binnen het veld aweme_info. De code houdt rekening met beide vormen en haalt alleen velden op die daadwerkelijk aanwezig zijn. Afhankelijk van het resultaat zijn een video-ID, beschrijving, link, auteursnaam en -ID, publicatiedatum en aantallen weergaven, likes, reacties en gedeelde berichten beschikbaar.
Een minimale verzamelaar in Python
Installeer de requests-bibliotheek en stel de sleutel in via de omgevingsvariabele JSONSCRAPER_TIKTOK_LICENSE_KEY. De code werkt met Python 3.8 en hoger. Het script slaat het oorspronkelijke antwoord op als JSON en de genormaliseerde rijen als CSV. De geheime sleutel wordt aan het verzoek meegegeven, maar niet op het scherm weergegeven.
import csv
import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests
API_KEY = os.environ["JSONSCRAPER_TIKTOK_LICENSE_KEY"]
KEYWORD = "Acme кофемашина"
response = requests.get(
"https://tiktok.evelode.com/searchVideo",
params={
"license_key": API_KEY,
"keyword": KEYWORD,
"count": 30,
"region": "US",
},
timeout=60,
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok":
raise RuntimeError("TikTok API gaf een onverwachte externe status terug")
tiktok = payload.get("tiktok") or {}
items = list(tiktok.get("aweme_list") or [])
for result in tiktok.get("search_item_list") or []:
video = result.get("aweme_info")
if video:
items.append(video)
# Verwijder duplicaten en behoud de volgorde van de eerste keer dat ze voorkomen.
unique = {}
for item in items:
video_id = item.get("aweme_id")
if video_id:
unique.setdefault(video_id, item)
stamp = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ")
Path("data").mkdir(exist_ok=True)
Path(f"data/raw-{stamp}.json").write_text(
json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8"
)
columns = [
"video_id", "description", "share_url", "author", "author_id",
"created_at", "views", "likes", "comments", "collected_at"
]
with open("data/videos.csv", "w", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=columns)
writer.writeheader()
for item in unique.values():
author = item.get("author") or {}
stats = item.get("statistics") or {}
created = item.get("create_time")
writer.writerow({
"video_id": item.get("aweme_id"),
"description": item.get("desc"),
"share_url": item.get("share_url"),
"author": author.get("nickname"),
"author_id": author.get("uid"),
"created_at": created,
"views": stats.get("play_count"),
"likes": stats.get("digg_count"),
"comments": stats.get("comment_count"),
"collected_at": stamp,
})
print(f"Opgeslagen rijen: {len(unique)}")
Installeer de afhankelijkheid met de opdracht python -m pip install requests. Als een veld in een bepaalde vermelding ontbreekt, laat de code de bijbehorende cel leeg. Dat is vooral belangrijk voor statistieken: een lege waarde betekent dat het veld niet is aangeleverd en wordt niet vervangen door nul.
Van CSV naar een bruikbare lijst met vragen
De eerste stap is filteren op de inhoud van de beschrijving. U kunt zoeken naar woorden als ‘hoe’, ‘waarom’, ‘werkt niet’, de modelnaam en kenmerkende onderdeelnamen. Zo ontstaat een wachtrij voor redactionele controle, maar de filter stelt op zichzelf niet vast wat de auteur bedoelde: een merkvermelding kan een recensie, grap of compatibiliteitsvraag zijn.
Geef voor thematische groepering alleen de tekstvelden door die een classificatiemodel nodig heeft: de beschrijving en, als dat relevant is voor de taak, een geanonimiseerde record-ID. Vraag het model om vaste categorieën terug te geven, zoals ‘eerste keer opstarten’, ‘reinigen’, ‘compatibiliteit’, ‘defect’ en ‘aankoop’. Bewaar de oorspronkelijke beschrijving naast de categorie, zodat een medewerker de indeling kan controleren en fouten kan corrigeren.
Een werkrapport kan het thema, het aantal gevonden voorbeelden, links naar enkele illustratieve video’s en een aparte kolom ‘door een medewerker gecontroleerd’ bevatten. Het aantal voorbeelden in de verzamelde dataset beschrijft de resultaten van deze zoekopdracht en verzamelperiode; het is niet gelijk aan het aandeel van alle klanten dat het probleem ervaart.
Paginering en regelmatige uitvoering
Als u de volgende resultatenpagina nodig hebt, noemt de documentatie cursor als pagineringsparameter: geef de cursorwaarde uit het vorige antwoord mee aan de volgende aanvraag. Behandel die als een ondoorzichtig token en stop wanneer het antwoord geen resultaten meer bevat of de API aangeeft dat er geen volgende pagina is. Voor een beperkte proef is het verstandig met één zoekopdracht te beginnen, de samenstelling van de resultaten te controleren en pas daarna paginering toe te voegen.
Voor regelmatige verzameling kunt u het script volgens een schema uitvoeren met de taakplanner van het besturingssysteem of via CI. Bewaar voor iedere uitvoering een afzonderlijk JSON-bestand met het oorspronkelijke antwoord en voeg het verzameltijdstip toe aan de tabel. Als de geschiedenis groeit, verwijder dan duplicaten op basis van video-ID, maar bewaar herhaalde momentopnamen apart wanneer u veranderende statistieken wilt volgen. Statistieken vergelijken heeft alleen zin als er meerdere momentopnamen van dezelfde vermelding beschikbaar zijn.
Bewaar de sleutel in de secretmanager van CI of in een omgevingsvariabele, beperk de toegang tot het archief en stel een interne bewaartermijn vast. Controleer voordat u materiaal aan een classificatiesysteem doorgeeft welke velden het echt nodig heeft. Zo voorkomt u onnodig kopiëren van gebruikersgegevens en wordt toegangsbeheer eenvoudiger.
Wat het team eraan heeft
Na uitvoering beschikt u over een archief van het oorspronkelijke antwoord en een CSV met gevonden video’s en beschikbare velden. Het supportteam kan links controleren en terugkerende vragen verzamelen; marketing kan zien hoe het publiek de taak omschrijft; een analist kan de verzameling herhalen en waarnemingen van verschillende datums vergelijken.

Begin met een gerichte zoekopdracht op productnaam en een specifiek probleem. Controleer handmatig 20–30 gevonden vermeldingen en verfijn de categorielijst. Voeg daarna eventueel enkele thematische zoekopdrachten, een schema en export naar een spreadsheet of database toe. De mogelijkheden en parameters van het endpoint staan in de beschrijving van TikTok Scraper API. Controleer eerst de gekozen zoekopdracht voordat u een uitgebreidere monitoring opzet.