Hvis kunder stiller det samme spørsmålet i flere TikTok-videoer, er det nyttig for kundestøtteteamet å få en liste over originalvideoene og formuleringene som kan kontrolleres. Du kan begynne med å hente søkeresultater for flere søk, slå dem sammen etter video-ID og sende utvalget til manuell merking.
Nedenfor finner du et Python-skript som samler inn returnerte resultater og lager en CSV-fil med lenker, videobeskrivelser og søkefrasene hver video ble funnet med. Skriptet hjelper deg med å se overlapp mellom søkene, men identifiserer ikke i seg selv semantisk lignende spørsmål. Det må en fagperson eller en separat klassifikator gjøre, med påfølgende kontroll.
Hvilket spørsmål innsamlingen skal besvare
La oss si at et team selger en termokopp og vil finne ut hva folk spør om i offentlige videoer. Søket «termokoppen lekker» kan gi videoer med klager, anmeldelser og instruksjoner. Søket «hvordan vaske termokopp» vil gi et annet utvalg. Flere uttrykk gir et arbeidsutvalg av eksempler som kundestøtten og innholdsplanen kan gjennomgå.

Resultatet av skriptet er en tabell med publiserings-ID, beskrivelse, lenke og en liste over søkefrasene videoen ble funnet med. At en video dukker opp i flere søkeresultater, viser at resultatene overlapper, men beviser ikke at videoen inneholder et gjentakende spørsmål. For å lage en kø med spørsmål åpner du lenkene, kontrollerer sammenhengen og tildeler bekreftede formuleringer et tema.
Denne arbeidsflyten er nyttig for utviklere som automatiserer innsamlingen, og analytikere som trenger et reproduserbart utvalg til gjennomgang. Koblingen til originalvideoen gjør det mulig å kontrollere konklusjonen før en veiledning endres eller nytt innhold utarbeides.
Hvilke data søket returnerer
Ruten /searchVideo og parameterne er oppført i referansen for TikTok API. keyword er obligatorisk. Blant tilleggsparameterne finner du count, cursor, region, date_posted, sort_by og cache_timeout. Forespørselen autentiseres med parameteren license_key. Eksemplet nedenfor bruker en søkefrase og sidestørrelse.
Den kontrollerte svarformen inneholder et overordnet status-felt og et tiktok-objekt. Elementer kan ha ID, beskrivelse, lenke, forfatteropplysninger og statistikk, blant annet visninger og kommentarer. Enkelte felt kan mangle. Derfor blir slike verdier stående tomme i CSV-filen i stedet for å bli gjort om til null.
Søkesvaret støtter to strukturer: elementene kan ligge i aweme_list eller i search_item_list[].aweme_info. Normaliseringsfunksjonen håndterer begge variantene. Koden kontrollerer også at tiktok-objektet finnes, slik at en uventet svarform ikke forveksles med et vellykket, tomt søkeresultat.
Ferdig innsamler i Python
Eksemplet er kompatibelt med Python 3.8+ og biblioteket requests. Det sender én forespørsel for hver frase, kontrollerer HTTP-svaret og API-statusen, slår sammen oppføringer etter ID, lagrer søkefrasene som ga treff og skriver en CSV-fil. Nøkkelen leses fra en miljøvariabel og skrives ikke ut.

import csv
import os
import sys
import requests
BASE_URL = "https://tiktok.evelode.com/searchVideo"
KEY = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
QUERIES = [
"termokoppen lekker",
"hvordan vaske termokopp",
"termokoppen holder ikke på varmen",
]
if not KEY:
sys.exit("Sett JSONSCRAPER_TIKTOK_LICENSE_KEY")
def extract_items(payload):
data = payload.get("tiktok")
if not isinstance(data, dict):
raise RuntimeError("Objektet tiktok mangler i svaret")
items = list(data.get("aweme_list") or [])
for entry in data.get("search_item_list") or []:
video = entry.get("aweme_info") if isinstance(entry, dict) else None
if isinstance(video, dict):
items.append(video)
return items
rows = {}
for query in QUERIES:
response = requests.get(
BASE_URL,
params={"license_key": KEY, "keyword": query, "count": 20},
timeout=30,
)
response.raise_for_status()
payload = response.json()
if payload.get("status") != "ok":
raise RuntimeError("API-et returnerte en annen status enn ok")
for item in extract_items(payload):
video_id = item.get("aweme_id")
if not video_id:
continue
stats = item.get("statistics") or {}
author = item.get("author") or {}
row = rows.setdefault(video_id, {
"video_id": video_id,
"description": item.get("desc"),
"share_url": item.get("share_url"),
"author": author.get("nickname"),
"play_count": stats.get("play_count"),
"comment_count": stats.get("comment_count"),
"matched_queries": set(),
})
row["matched_queries"].add(query)
fields = ["video_id", "description", "share_url", "author",
"play_count", "comment_count", "matched_queries"]
with open("tiktok_questions.csv", "w", newline="", encoding="utf-8-sig") as file:
writer = csv.DictWriter(file, fieldnames=fields)
writer.writeheader()
for row in rows.values():
output = dict(row)
output["matched_queries"] = " | ".join(sorted(row["matched_queries"]))
writer.writerow(output)
Installer avhengigheten med kommandoen python -m pip install requests, angi JSONSCRAPER_TIKTOK_LICENSE_KEY i prosessens miljø og kjør filen. Ikke legg nøkkelen i kildekoden, CSV-filen eller logger. For planlagte kjøringer bruker du et beskyttet miljø der variabelen er tilgjengelig for oppgaven.
Slik gjør du CSV-filen om til en kø med spørsmål
Etter innsamlingen åpner du videoene og trekker manuelt ut faktiske spørsmål. Gruppér deretter de bekreftede formuleringene etter tema, for eksempel «tetthet», «vedlikehold» eller «holde på varmen». Søkefrasen hjelper deg med å finne innlegget, men verken videobeskrivelsen eller overlapp mellom søk erstatter kontroll av sammenhengen.
Hvis du bruker en språkmodell, kan du gi den beskrivelsen og be om et kort temamerke og et mulig spørsmål. Lagre originalteksten, lenken og modellresultatet sammen, slik at en fagperson kan kontrollere grunnlaget for klassifiseringen. Ikke framstill modellens forslag som et ordrett spørsmål hvis det ikke står i beskrivelsen.
Antallet oppføringer som blir funnet, beskriver bare resultatene som returneres for de konkrete søkene. Det måler ikke det samlede omfanget av diskusjonene eller etterspørselen. I interne rapporter bør du lagre datoen for kjøringen, den opprinnelige frasen, ID-en og det ubehandlede API-svaret. Da kan du sammenligne resultater fra nye kjøringer og merke nye ID-er separat.
Eksemplet har med vilje ingen automatisk paginering. Dokumentasjonen oppgir parameteren cursor for neste side. Verdien hentes fra forrige svar og sendes videre uten endringer. Én side er bare den mottatte delen av resultatene, ikke hele søkeresultatet.
Dette får teamet se
Filen tiktok_questions.csv inneholder én rad for hver unik ID som ble funnet med de angitte frasene. Kolonnen matched_queries viser hvilke søk som ga treff på videoen. Dette er en praktisk måte å finne overlapp mellom resultater på og velge eksempler til kontroll, men spørsmålene må klassifiseres separat.
Deretter kan CSV-filen inngå i en ukentlig automatisert arbeidsflyt: en planlegger kjører innsamlingen, et datalager lagrer et øyeblikksbilde, og et varsel sendes når det dukker opp en ID som ikke finnes i loggen fra før. Dette er logikk for ekstern orkestrering, ikke en funksjon i søkeendepunktet. Teamet får en kø med lenker til analyse, ikke en ferdig konklusjon om årsakene til kundenes atferd.
Ruteparametrene er tilgjengelige i API-dokumentasjonen, og du kan prøve en forespørsel på demoen for TikTok API. Før du setter opp regelmessig innsamling, bør du kontrollere formen på det faktiske svaret og lagre verdiene som trengs for å gå fra en oppsummering til en bestemt video. Produktbeskrivelsen finner du på siden for TikTok Scraper API.
Et nyttig resultat er et etterprøvbart utvalg videoer knyttet til bestemte søkeuttrykk. Det hjelper deg med å velge materiale for manuell gjennomgang og ta vare på kildene til hvert tema som tas inn i innholdsplanen.