jsonscraper
Markeder
Tilbake til journalen

TikTok: Gjør søkeresultater til en ukentlig liste over støttetemaer

Et Python-skript samler inn videoer fra søk, normaliserer to varianter av API-svar og lager en tabell for manuell merking av kundespørsmål.

Redaksjonelle retningslinjer Meld fra om en feil

Kundestøtteteamet trenger en liste over offentlige TikTok-videoer der folk diskuterer en funksjon de ikke forstår eller stiller spørsmål om et produkt. Manuelt søk er vanskelig å gjenta på samme måte, og API-svar fra søk kan lagre videoer på ulike steder i JSON. Nedenfor finner du et enkelt Python-skript som søker etter nøkkelord, slår sammen begge datastrukturene, fjerner duplikater basert på ID og lagrer de funne oppføringene i en CSV-fil.

Dette får du ut av skriptet

Resultatet er en tabell med video-ID, lenke, beskrivelse, publiseringstidspunkt, forfatter og tilgjengelige reaksjonstall. Kundestøtte eller markedsføring kan manuelt merke hvilke temaer som krever et svar, en oppdatert veiledning eller en kontroll i eget CRM-system. Tabellen viser bare API-resultatene for søkene du har angitt; betrakt den som et arbeidsutvalg for gjennomgang, ikke som en fullstendig katalog over alle diskusjoner.

Artikkel: TikTok: Gjør søkeresultater til en ukentlig liste over støttetemaer
Sammendrag: Sett opp gjentatt innsamling av TikTok-videoer basert på produktsøk, og få en deduplisert CSV-fil med lenker, beskrivelser og tilgjengelige offentlige måltall. Listen hjelper kundestøtteteamet med å gjennomgå temaer som bør sjekkes mot eksisterende materiell og kundehenvendelser.
Bildets rolle: Omslagsbilde – hovedideen
Del: Dette får du ut av skriptet
Visuelt motiv: Redaksjonelt foto, fysisk
Gjentatte treff samles i en kø for gjennomgang av støttetemaer, slik at de kan kontrolleres.© jsonscraper · laget med KI

Skriptet håndterer innsamling og innledende sortering. Det avgjør ikke automatisk om en beskrivelse er et spørsmål, en klage eller en spøk. En slik merking bør gjøres etter manuell gjennomgang eller med en egen klassifikator, samtidig som originalteksten og begrunnelsen for avgjørelsen registreres.

Hva du skal søke etter, og hvordan svaret er strukturert

Til videosøk dokumenterer jsonscraper GET-endepunktet /searchVideo på verten https://tiktok.evelode.com. Den obligatoriske parameteren er keyword; du kan også sende med count, region, sortering, publiseringsperiode og en markør for neste side. Du kan for eksempel gjenta søket med flere forhåndsdefinerte fraser: navnet på en funksjon, en vanlig formulering av en feil og et kort spørsmål om oppsett. Parametrene og gyldige verdier er oppført i TikTok API-referansen.

Søket har en viktig egenskap som parseren må ta høyde for: matrisen aweme_list kan være tom, mens treffene ligger i search_item_list, med aweme_info inni hvert element. Derfor sjekker behandleren nedenfor begge formatene. Et eksempel på svaret og feltene som ble observert i en kontroll 25. oktober 2026, finnes i den opprinnelige jsonscraper-spesifikasjonen. Statistikkfeltene kan mangle, så koden finner ikke på verdier.

Klargjør nøkkelen og søkelisten

Lagre nøkkelen i miljøvariabelen JSONSCRAPER_TIKTOK_LICENSE_KEY, ikke i kildefilen. I et Linux- eller macOS-skall kan du gjøre det slik:

export JSONSCRAPER_TIKTOK_LICENSE_KEY="din_nøkkel"

Installer forespørselsbiblioteket, og opprett filen queries.txt med én søkefrase per linje, for eksempel produktnavn oppsett og funksjonsnavn fungerer ikke. Velg formuleringer ut fra publikums språk, og før dem opp i en egen liste, slik at ukentlige eksportfiler kan sammenligne de samme søkene.

python -m pip install requests

Samle inn og normaliser videoene

Eksemplet er kompatibelt med Python 3.8 og nyere. Det sender én forespørsel per frase med en grense for antall resultater, kontrollerer HTTP-feil og statusfeltet, og lagrer deretter bare felter som faktisk finnes. Gjentatte treff slås sammen etter aweme_id, og alle søk som fant videoen, føres opp i feltet keywords. Et eget felt, collected_at_utc, registrerer tidspunktet for innsamlingen, slik at dataene kan sammenlignes med senere kjøringer.

Artikkel: TikTok: Gjør søkeresultater til en ukentlig liste over støttetemaer
Sammendrag: Sett opp gjentatt innsamling av TikTok-videoer basert på produktsøk, og få en deduplisert CSV-fil med lenker, beskrivelser og tilgjengelige offentlige måltall. Listen hjelper kundestøtteteamet med å gjennomgå temaer som bør sjekkes mot eksisterende materiell og kundehenvendelser.
Bildets rolle: Støtteillustrasjon 2 – et annet konkret aspekt
Del: Samle inn og normaliser videoene
Diagrammet viser begge svarstrukturene for søk, hvordan søkeordene slås sammen, og hvordan innsamlingstidspunktet registreres før eksport til CSV.© jsonscraper · KI-generert illustrasjon
import csv
import os
import sys
from datetime import datetime, timezone

import requests

BASE_URL = "https://tiktok.evelode.com/searchVideo"
API_KEY = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")

if not API_KEY:
    raise SystemExit("Angi JSONSCRAPER_TIKTOK_LICENSE_KEY")


def get_items(tiktok):
    """Henter videoer fra begge dokumenterte formatene for søkesvar."""
    items = list(tiktok.get("aweme_list") or [])
    for entry in tiktok.get("search_item_list") or []:
        info = entry.get("aweme_info") if isinstance(entry, dict) else None
        if info:
            items.append(info)
    return items


with open("queries.txt", encoding="utf-8") as query_file:
    queries = [line.strip() for line in query_file if line.strip()]

collected_at = datetime.now(timezone.utc).isoformat()
videos = {}

for keyword in queries:
    response = requests.get(
        BASE_URL,
        params={
            "license_key": API_KEY,
            "keyword": keyword,
            "count": 30,
            "region": "US",
            "sort_by": "relevance",
        },
        timeout=30,
    )
    response.raise_for_status()
    payload = response.json()

    if payload.get("status") != "ok":
        print("API-en returnerte mislykket status for søket:", keyword, file=sys.stderr)
        continue

    tiktok = payload.get("tiktok") or {}
    for item in get_items(tiktok):
        video_id = item.get("aweme_id")
        if not video_id:
            continue

        if video_id not in videos:
            author = item.get("author") or {}
            stats = item.get("statistics") or {}
            videos[video_id] = {
                "aweme_id": video_id,
                "keywords": [keyword],
                "description": item.get("desc"),
                "share_url": item.get("share_url"),
                "create_time": item.get("create_time"),
                "author": author.get("unique_id") or author.get("nickname"),
                "play_count": stats.get("play_count"),
                "digg_count": stats.get("digg_count"),
                "comment_count": stats.get("comment_count"),
                "share_count": stats.get("share_count"),
                "collected_at_utc": collected_at,
            }
        elif keyword not in videos[video_id]["keywords"]:
            videos[video_id]["keywords"].append(keyword)

columns = [
    "aweme_id", "keywords", "description", "share_url", "create_time",
    "author", "play_count", "digg_count", "comment_count", "share_count",
    "collected_at_utc",
]
with open("tiktok_support_review.csv", "w", newline="", encoding="utf-8-sig") as output:
    writer = csv.DictWriter(output, fieldnames=columns)
    writer.writeheader()
    for video in videos.values():
        row = dict(video)
        row["keywords"] = " | ".join(row["keywords"])
        writer.writerow(row)

print("Antall lagrede, unike videotreff:", len(videos))

Forespørselen sendes med parameteren params, slik at biblioteket koder tekstfrasene korrekt i URL-en. Nøkkelen ligger dermed i en spørringsparameter, slik dokumentasjonen beskriver. Ikke skriv ut hele forespørsels-URL-en i programloggen. For feilsøking kan du lagre HTTP-statuskode, søkefrase og starttidspunkt, men utelat hemmeligheter og personopplysninger som ikke er nødvendige for oppgaven.

Slik tolker du CSV-filen uten å trekke feil konklusjoner

Kolonnen keywords inneholder alle frasene som fant videoen; collected_at_utc skiller innsamlingstidspunktet fra publiseringstidspunktet. ID-en er nyttig for deduplisering, og lenken gjør det mulig for en person å kontrollere treffet. En tom teller betyr at feltet manglet i det aktuelle svaret, ikke at verdien var null.

Legg til kolonnene tema, signaltype, krever svar og lenke til internt materiell i en arbeidskopi av CSV-filen for den første sorteringen. Temaene bør passe til produktet ditt, for eksempel installering, betaling, kompatibilitet eller feilsøking. Denne strukturen gjør eksporten til en kø for gjennomgang, samtidig som avgjørelsen kan kontrolleres mot den opprinnelige videoen.

Sett opp innsamling etter en tidsplan

Kjør først skriptet manuelt, og kontroller noen rader og lenker. Legg det deretter til i cron, en CI-jobb eller et automatiseringsskript som kan starte en Python-prosess. For regelmessige rapporter kan du lagre hver eksportfil eller legge rader til i et datalager med video-ID og øyeblikksbildedato som unik nøkkel. Slik kan teamet skille nye videotreff fra gjentatte observasjoner og følge med på hvordan tilgjengelige tellere endres mellom kjøringene.

Parameteren cursor er beregnet på paginering av søkeresultater; den må sendes videre fra svaret på forrige kall. Paginering er med vilje utelatt fra dette minimale eksemplet: et begrenset sett med søk er enklere å kontrollere og gjenta. Hvis du legger til flere sider, bør du lagre markøren som en ugjennomsiktig verdi, stoppe når flagget viser at det ikke finnes flere sider, og sette en øvre grense for antall kall per kjøring. API-et returnerer et utvalg; ikke tolk antall rader som full dekning av TikTok.

Praktiske begrensninger

Søkeresultater egner seg til å finne videoer ut fra formuleringer teamet allerede kjenner. De hjelper deg med å samle materiale til klassifisering, men erstatter ikke innkommende henvendelser, analyse av eget nettsted eller kontroll av videokonteksten. Beskrivelsen gjengir kanskje ikke innholdet i videoen, og tilgjengelige måltall viser datatilstanden på innsamlingstidspunktet. Registrer temaer og konklusjoner separat fra originalfeltene, slik at medarbeidere kan vurdere klassifiseringen på nytt.

Før du starter regelmessig overvåking, bør du bestemme hvem som skal ha tilgang til eksportfilene, hvor lenge dataene skal lagres, og hva de offentlige opplysningene skal brukes til. Oppbevar bare feltene som trengs for produktgjennomgangen, og foretrekk lenker til de opprinnelige innleggene framfor å kopiere mediefiler. Se siden om TikTok Scraper API og dokumentasjonen for søkeendepunktet for å undersøke API-et og tilgjengelige integrasjonsalternativer.

Mennesker

Ingen personer er oppført for denne artikkelen ennå.

Fortsett å leseSlik sjekker du TikTok-leads på IG før CRM
Les neste artikkel

Gjør det du leser til en fungerende integrasjon

Utforsk jsonscrapers API-er for sosiale data, test forespørsler og bygg neste arbeidsflyt.

Utforsk API-er