jsonscraper

Slik finner du tidlige signaler på TikTok-trender: automatisk overvåking av søkeresultater

Samle gjentatte øyeblikksbilder av søk etter nøkkelord, sammenlign videomålinger og gjør endringer om til et etterprøvbart signal for innholdsteamet.

Redaksjonelle retningslinjer Meld fra om en feil

Innholdsteamet oppdager et nytt tema på TikTok først når konkurrentene allerede snakker om det. Årsaken er ofte enkel: Søkene kontrolleres manuelt og uregelmessig, og lenker som blir funnet, blir liggende i en chat uten en felles tabell, innsamlingsdato eller sammenlignbare målinger. For å oppdage endringer tidligere er det nyttig å gjøre søk til en gjentakbar prosess: registrere søkene, lagre videoene som blir funnet regelmessig, og bare sammenligne resultater som faktisk er observert.

Artikkel: Slik finner du tidlige signaler på TikTok-trender: automatisk overvåking av søkeresultater
Sammendrag: Manuelle søk på TikTok egner seg dårlig til regelmessig analyse: Resultatene endrer seg raskt, og enkeltvideoer kan lett forveksles med en trend. Her viser vi hvordan du bygger daglig overvåking av søk med TikTok Scraper API jsonscraper, lagrer originalresponsene, normaliserer dataene og finner temaer som bør undersøkes nærmere.
Bildets rolle: omslag – hovedideen
Seksjon: 
Visuelt motiv: En phy
© jsonscraper · AI-generert illustrasjon

Nedenfor finner du en løsning for slik overvåking med Python og TikTok Scraper API jsonscraper. Den passer for eksempel for et byrå som følger med på flere tematiske søk til en publiseringskalender, eller for en merkevare som vil se hvilke offentlige videoer om et tema som får merkbare visninger og reaksjoner. API-et returnerer TikTok-søkeresultater, blant annet videobeskrivelse, skaper, publiseringsdato, lenke og tilgjengelige tellere. Skriptet legger hver respons i et arkiv og lager et CSV-øyeblikksbilde for analyse.

Hovedprinsippet er å måle endringer i egen observasjonslogg, ikke en abstrakt «trend»: hvilke videoer som har kommet inn i utvalget, hvilke kjente videoer som har endret offentlige tellere, og hvilke formuleringer som går igjen i beskrivelsene. Denne tilnærmingen gir innholdsteamet en etterprøvbar kø med temaer for manuell vurdering og bevarer sporbarheten til hvert funn.

Hvorfor manuelle søk gir dårlig overvåking

Søkeresultater er et utvalg i stadig endring, ikke en stabil publikasjonskatalog. Hvis en medarbeider finner ti videoer på et søkeord i dag og søker på nytt neste uke, er det vanskelig å sammenligne resultatene: Tidligere lenker kan ha gått tapt, søkeresultatene vil være annerledes, og tellerne har rukket å få nye verdier. Uten lagrede øyeblikksbilder kan man ikke rekonstruere nøyaktig hva teamet så på en bestemt dag.

Selv en enkel daglig innsamling løser en del av problemet. For hver kjøring lagres observasjonsdato, søkeord, video-ID, skaper, beskrivelse, lenke og tilgjengelige målinger. Ved neste kjøring kan oppføringene sammenlignes etter video-ID, og tellerforskjeller beregnes dersom begge versjonene inneholder de aktuelle feltene.

Disse verdiene bør tolkes som offentlige målinger for videoer som dukket opp i API-svaret, ikke som TikToks samlede rekkevidde eller en uttømmende popularitetsrangering. Søkeresultatene kan endre seg, enkeltfelt kan mangle, og målingene avhenger av tidspunktet for innsamlingen. Målet med datastrømmen er derfor å lage et reproduserbart arbeidsutvalg og identifisere kandidater som bør undersøkes, ikke å erklære et tema som en universell trend på grunnlag av ett tall.

Løsningsskisse: søk, arkiv, sammenligning

Datastrømmen består av fem deler: konfigurasjon av nøkkelord, API-kall, uendret JSON-arkiv, et normalisert datalag og en rapport over endringer. Denne oppdelingen gjør det mulig å kontrollere hvert trinn separat. Hvis svarstrukturen endrer seg eller enkelte felt mangler, er original-JSON-en fortsatt tilgjengelig for ny behandling.

  1. Definer søkene. Bruk konkrete fraser knyttet til produktet, bransjen eller målgruppens behov. Et merke for kjøkkenutstyr kan for eksempel følge med på «meal prep», «air fryer recipes» og navnet på en bestemt produktkategori. Oppbevar søkene i en konfigurasjonsfil i stedet for å bygge dem inn i behandlingslogikken.
  2. Sett innsamlingsreglene. Velg et tidsskjema og et lite resultatvolum for en pilot. Registrer dato, region og søkeparametere. For tidsmessig sammenligning er det viktigere å gjenta innstillingene enn å prøve å hente et så bredt svar som mulig i én kjøring.
  3. Lagre originalsvaret. Skriv JSON til fil sammen med kjøringstidspunktet og søkeordet. Arkivet gjør det mulig å hente frem originaloppføringen og rette normaliseringen uten et nytt API-kall.
  4. Normaliser bekreftede felt. Hent ut bare felt som finnes i svaret: ID, bildetekst, publiseringstidspunkt, skaper, lenke og tilgjengelige statistikkverdier. La manglende verdier stå tomme; ikke erstatt dem med null.
  5. Sammenlign øyeblikksbilder. Match videoer etter ID, og lagre hver observasjon separat. Deretter kan du finne publikasjoner som er nye i arkivet, og beregne forskjellen mellom observerte måleverdier.

Start piloten med to–tre søk og et lite antall resultater. Kontroller hvor godt beskrivelser og skapere passer til oppgaven, hvilke felt som faktisk returneres, og hvor stabilt utvalget er når du bruker samme innstillinger. Først etter dette er det hensiktsmessig å utvide listen over søkeord og legge kjøringen inn i en tidsplan.

Hva du kan be TikTok Scraper API om

I jsonscrapers offisielle dokumentasjon er ruten GET /searchVideo ment for å søke etter videoer med et nøkkelord. Den obligatoriske parameteren er keyword. Dokumenterte valgfrie parametere omfatter count, cursor, date_posted, sort_by, region og cache_timeout. Dokumentasjonen angir verdier som this-week og this-month for date_posted, og relevance, most-liked og date-posted for sort_by. De nøyaktige parameternavnene og funksjonene er oppført i oversikten over TikTok API-rutene.

Tjenestens grunnadresse er https://tiktok.evelode.com; nøkkelen sendes som query-parameteren license_key. I eksemplet nedenfor lagres nøkkelen i miljøvariabelen JSONSCRAPER_TIKTOK_LICENSE_KEY. Dermed trenger du ikke å legge hemmeligheten direkte i kildekoden eller skrive den ut i kjøringsloggen.

Svaret må tolkes med tanke på den nøstede strukturen. Kontroller først den ytre status-verdien, og gå deretter videre til tiktok-objektet. Søkeresultater kan ha to ulike listeformer: Videoene kan ligge direkte i tiktok.aweme_list, eller i elementer av tiktok.search_item_list under aweme_info. I et søkesvar kan aweme_list være tom selv om videoer finnes i search_item_list. Skriptet nedenfor støtter begge formene.

I videoobjektet viser dokumentasjonen og et verifisert eksempel på svar felt som aweme_id, desc, create_time, share_url, informasjon om skaperen og objektet statistics. Statistikken kan inneholde tellere for visninger, likerklikk, kommentarer og delinger. Kontroller hvilke felt og verdier som faktisk finnes i hvert svar: Koden lar manglende felt stå tomme. Et eksempel på ruten og de dokumenterte parameterne finnes i beskrivelsen av TikTok Scraper API.

Et fungerende eksempel i Python

Eksemplet er laget for Python 3.8 eller nyere og bruker pakken requests. Installer den med kommandoen python -m pip install requests. Lagre koden i filen collect_tiktok.py, angi nøkkelen i miljøet, og kjør skriptet med et søkeord. Skriptet oppretter katalogen data, skriver original-JSON og legger normaliserte observasjoner til i en CSV-fil.

import csv
import json
import os
import sys
from datetime import datetime, timezone
from pathlib import Path
from urllib.parse import urlparse

import requests

BASE_URL = "https://tiktok.evelode.com"
ARCHIVE = Path("data/raw")
OUT_CSV = Path("data/observations.csv")


def get_videos(tiktok):
    """Samle videoer fra bekreftede varianter av searchVideo-svaret."""
    videos = []

    aweme_list = tiktok.get("aweme_list") or []
    if isinstance(aweme_list, list):
        videos.extend(item for item in aweme_list if isinstance(item, dict))

    search_items = tiktok.get("search_item_list") or []
    if isinstance(search_items, list):
        for item in search_items:
            if not isinstance(item, dict):
                continue
            aweme_info = item.get("aweme_info")
            if isinstance(aweme_info, dict):
                videos.append(aweme_info)

    # Fjern duplikater, behold rekkefølgen og oppføringer uten ID.
    result = []
    seen = set()
    for video in videos:
        video_id = video.get("aweme_id")
        if video_id and video_id in seen:
            continue
        if video_id:
            seen.add(video_id)
        result.append(video)
    return result


def fetch(keyword, count=20, region="US"):
    license_key = os.environ.get("JSONSCRAPER_TIKTOK_LICENSE_KEY")
    if not license_key:
        raise RuntimeError("Set JSONSCRAPER_TIKTOK_LICENSE_KEY in the environment")

    params = {
        "license_key": license_key,
        "keyword": keyword,
        "count": count,
        "region": region,
        "sort_by": "relevance",
    }
    response = requests.get(
        f"{BASE_URL}/searchVideo", params=params, timeout=60
    )
    response.raise_for_status()
    payload = response.json()

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

    tiktok = payload.get("tiktok")
    if not isinstance(tiktok, dict):
        raise RuntimeError("Response does not contain a TikTok result object")
    return payload, tiktok


def write_rows(keyword, videos, collected_at):
    OUT_CSV.parent.mkdir(parents=True, exist_ok=True)
    fields = [
        "collected_at", "keyword", "aweme_id", "create_time",
        "author_id", "author_name", "author_username", "description",
        "share_url", "play_count", "digg_count", "comment_count",
        "share_count", "collect_count",
    ]
    write_header = not OUT_CSV.exists()

    with OUT_CSV.open("a", newline="", encoding="utf-8") as file:
        writer = csv.DictWriter(file, fieldnames=fields)
        if write_header:
            writer.writeheader()

        for video in videos:
            author = video.get("author") or {}
            stats = video.get("statistics") or {}
            writer.writerow({
                "collected_at": collected_at,
                "keyword": keyword,
                "aweme_id": video.get("aweme_id"),
                "create_time": video.get("create_time"),
                "author_id": author.get("uid"),
                "author_name": author.get("nickname"),
                "author_username": author.get("unique_id"),
                "description": video.get("desc"),
                "share_url": video.get("share_url"),
                "play_count": stats.get("play_count"),
                "digg_count": stats.get("digg_count"),
                "comment_count": stats.get("comment_count"),
                "share_count": stats.get("share_count"),
                "collect_count": stats.get("collect_count"),
            })


def main():
    if len(sys.argv) 

Send nøkkelen via miljøet. I Bash-shell ser kommandoen for den gjeldende økten slik ut:

export JSONSCRAPER_TIKTOK_LICENSE_KEY="din_nøkkel"
python collect_tiktok.py "meal prep"

I Windows PowerShell kan du angi variabelen for den gjeldende prosessen med kommandoen $env:JSONSCRAPER_TIKTOK_LICENSE_KEY="din_nøkkel", og deretter kjøre den samme Python-filen. Ikke legg nøkkelen i et repository, en CSV-fil, et svararkiv eller feilmeldinger. Siden API-et mottar nøkkelen som en query-parameter, bør du være oppmerksom på at hele forespørsels-URL-en kan havne i HTTP-klientens og infrastrukturens logger. Konfigurer loggingen slik at hemmeligheter utelates.

Slik leser du koden og kontrollerer resultatet

Funksjonen fetch sender dokumenterte parametere og kontrollerer HTTP-status, den ytre statusverdien og om tiktok-objektet finnes. Den regner ikke ethvert gyldig svarinnhold som et vellykket resultat: Hvis formatet er uventet, stopper kjøringen med en tydelig feil. Det gjør det enklere å skille tomme søkeresultater fra tilgangsproblemer eller en endret struktur.

Funksjonen get_videos slår sammen elementer fra den direkte listen aweme_list og oppføringer som ligger i search_item_list[].aweme_info. Deretter fjerner den duplikater basert på aweme_id, siden en video kan forekomme i begge samlingene. Hvis ID mangler, beholdes oppføringen; det gjør det mulig å undersøke det opprinnelige resultatet uten å finne på en verdi.

Normaliseringen henter nøstede objekter på en trygg måte. Felter for skaper eller statistikk kan mangle, så koden bruker et tomt objekt som reserve før den leser dem. De tilsvarende CSV-cellene forblir tomme. Dette er et viktig skille: En tom celle betyr at verdien ikke kom med i observasjonen, mens null er en numerisk verdi som API-et faktisk returnerte.

Arkivet får én egen JSON-fil per søk. Filnavnet inneholder UTC-tidspunktet og en renset versjon av søkeordet. CSV-filen lagrer flate oppføringer for analyse, mens original-JSON-en forblir referansegrunnlaget når nye felt skal undersøkes eller dataene behandles på nytt. Dette formatet passer både for en lokal prototyp og en senere overgang til en database eller objektlagring.

For å kontrollere den første kjøringen åpner du JSON-filen og bekrefter at status er ok, at det finnes et tiktok-objekt, og at én eller begge av de støttede samlingene inneholder elementer. Sammenlign deretter flere CSV-verdier med originalobjektet. Kontroller særlig at tellerne ikke blir feilformaterte strenger, at publiseringsdatoene lagres som de opprinnelige verdiene, og at lenkene tilhører de samme videoene som ID-ene.

Hvis et gyldig svar ikke inneholder videoer, registrerer du dette som et tomt resultat for kjøringen, ikke som en kodefeil. Hvis den ytre statusverdien eller HTTP-svaret angir en feil, må du ikke legge oppføringen inn i analyseobservasjonene: Finn først årsaken og kjør på nytt. For en produksjonsprosess bør du også logge HTTP-statuskode, søkeord, tidspunkt og en kort feilmelding, men utelate nøkkelen og hele URL-en med hemmeligheten.

Sideinndeling og gjentakbar datainnsamling

Søket støtter parameteren cursor for å bla gjennom resultatene. Når du vil hente neste side, bruker du markøren fra det forrige svaret og sender den videre uten å endre den. Markøren er en ugjennomsiktig API-verdi: Appen skal lagre og returnere den som den er, ikke regne den ut fra antall rader eller tolke den som et sidetall.

For den første overvåkingen kan du begrense deg til ett søk per nøkkelord og samme count. Det gjør resultatene enklere å tolke: Teamet vet at hver kjøring lagrer et begrenset øyeblikksbilde av søkeresultatene. Hvis du legger til sideinndeling, må du lagre hver side og markør, og sette en øvre grense for antall sider per kjøring. En slik grense beskytter jobben mot en uendelig løkke dersom svaret er uventet.

Parameteren date_posted kan begrense søket til en av periodene som er angitt i dokumentasjonen, mens sort_by lar deg sortere etter relevans, publiseringsdato eller likerklikk. Hvis du analyserer utvikling over tid, må du registrere disse innstillingene sammen med kjøringen. Sammenligning av søk med ulike perioder eller sorteringer kan gjenspeile endrede søkevilkår snarere enn endringer i selve temaet.

Parameteren cache_timeout styrer hurtigbufring av svaret. Dokumentasjonen beskriver et standardvindu for hurtigbufferen på 3600 sekunder og verdien 0 for å slå av hurtigbufring. Velg innstillinger bevisst for planlagt overvåking, og lagre dem i konfigurasjonen. Hvis en serie søk kjøres oftere enn én gang i timen og du må skille svar innenfor dette vinduet, bør du kontrollere hurtigbufferens oppførsel separat før gjentatte resultater tolkes som fravær av endringer.

Sammenlign daglige observasjoner

CSV-filen inneholder allerede grunnlaget for en enkel rapport. Grupper radene etter søkeord og aweme_id, sorter etter collected_at, og sammenlign bare par av observasjoner der begge måleverdiene finnes. Forskjellen i visninger kan for eksempel beregnes som siste observerte verdi minus den forrige. Behold begge opprinnelige datapunktene: Den absolutte forskjellen og tiden mellom observasjonene er nødvendige for å tolke resultatet riktig.

Ikke kall denne forskjellen visningshastighet uten å angi et bestemt tidsintervall. Hvis én kjøring skjedde om morgenen og den neste flere dager senere, viser verdien den akkumulerte endringen i denne perioden. For en sammenlignbar takt kan du dele forskjellen på den faktiske tiden mellom observasjonene, men resultatet er fortsatt gjennomsnittstakten mellom to øyeblikksbilder, ikke kontinuerlig telemetri.

Beregn to typer signaler separat. Det første er nye ID-er som har dukket opp i søkeresultatene for den aktuelle kjøringen. Det andre er endringer i statistikken for videoer som allerede er observert. En ny video kan være verdt å undersøke uavhengig av det nåværende visningstallet, mens økning i en eldre video kan vise at den fortsatt får reaksjoner. Signalene svarer på ulike spørsmål og er nyttige i forskjellige situasjoner for redaksjonell planlegging.

Legg til enkle kontroller av datakvaliteten: andelen rader med ID, andelen rader med beskrivelse, om innsamlingsdato finnes, antall unike videoer per søk og antall manglende statistikkverdier. Dette gjør det mulig å oppdage at datastrømmen har sluttet å hente den forventede strukturen før teamet trekker konklusjoner fra en ufullstendig fil. Det viser også hvilke søkefraser som gir et nyttig utvalg for bransjen din.

For den første rapporten holder det med en tabell med kolonnene: søkeord, ID, publiseringsdato, skaper, beskrivelse, lenke, nåværende visninger, visninger i forrige øyeblikksbilde, forskjell og tid mellom observasjonene. Legg til et «ny i arkivet»-flagg og et felt for redaksjonell vurdering. En medarbeider kan markere om innholdet passer merkevaren, om formatet kan brukes, og om det er en mulig risiko for å kopiere andres idé — dette vurderer ikke API-et i seg selv.

Ikke forveksle populariteten til en video med hvor nyttig et tema er

Visninger, likerklikk, kommentarer og delinger bidrar til å beskrive publikums offentlige reaksjon på en bestemt video. For innholdsplanlegging er selve teksten også viktig: hvordan spørsmålet formuleres, hva som loves i åpningen, tilbakevendende forklaringsformater eller typen demonstrasjon. Gi derfor redaktøren lenken og beskrivelsen sammen med målingene; ett tall forklarer sjelden hvorfor et innlegg fungerte.

Når du sammenligner flere videoer, kan du beregne forholdet mellom interaksjoner og visninger hvis begge tellerne finnes. Summen av likerklikk, kommentarer og delinger delt på antall visninger gir for eksempel en enkel måling av den observerte reaksjonsandelen. Dokumenter formelen, og ikke bland inn videoer med manglende verdier: Da blir resultatet ikke sammenlignbart. Forholdstallet beskriver bare de valgte offentlige tellerne og videoene.

Ikke summer målinger fra flere øyeblikksbilder som om de var uavhengige hendelser. Hvis samme video dukker opp i fem daglige svar, er visningene i disse radene påfølgende tilstander for én teller, ikke fem ulike målgrupper. Når du summerer unike publikasjoner, bruker du ett konsistent observasjonstidspunkt per video, for eksempel det siste øyeblikksbildet i rapporteringsperioden, og dokumenterer valgregelen.

Et annet nyttig perspektiv er gjentakende ord i beskrivelsene. Enkel tekstanalyse kan gruppere publikasjoner etter forhåndsdefinerte ordlister, for eksempel «oppskrift», «anmeldelse», «før/etter», «feil» og «tips». En klassifikator eller språkmodell kan foreslå kategorier og korte sammendrag, men tabellen bør fortsatt inneholde originalbeskrivelsen og URL-en, slik at redaktøren kan kontrollere tolkningen mot selve videoen.

Automatisering etter en tidsplan

Når du har kontrollert en manuell kjøring, kan du legge innsamlingen i en planlegger: cron på din egen server, GitHub Actions eller en arbeidsflyt i n8n/Make. Integrasjonen bør kjøre det samme testede skriptet, hente nøkkelen fra et hemmelighetslager, arkivere JSON og sende varsel bare hvis kjøringen fullføres. Den konkrete planleggeren avhenger av infrastrukturen; API-kallet og behandlingsformatet er det samme.

Eksempel på en cron-plan for daglig kjøring kl. 08.15 etter maskinens lokale tid:

15 8 * * * cd /srv/tiktok-monitor && /usr/bin/python3 collect_tiktok.py "meal prep" >> logs/collector.log 2>&1

Før du bruker denne linjen, må du konfigurere miljøvariabelen i tjenesten eller skallet som cron kjører under, og angi riktig tidssone på verten. Hvis du har flere nøkkelord, er det best å lagre listen i en fil og la skriptet behandle hvert søk separat. Da trenger ikke en feil i ett søk å avbryte hele settet, og arkivene blir enklere å sammenligne.

Når antallet nøkkelord øker, bør du flytte konfigurasjonen til JSON eller YAML og legge til en kjøringslogg med status, antall hentede videoer og arkivsti. For bedre robusthet kan du angi et begrenset antall nye forsøk ved midlertidige nettverksfeil, en tidsavbruddsgrense og egen håndtering av HTTP-feil. Ikke prøv på nytt i det uendelige: Jobben må avsluttes med en synlig status, slik at neste kjøring ikke skjuler problemet.

Hvis resultatene skal inn i Google Sheets, en database eller et internt kontrollpanel, bør du legge dette til etter at arkiveringen er pålitelig. Skriv først originalsvaret, og last deretter opp normaliserte rader. Hvis eksporten mislykkes, kan du laste opp fra arkivet på nytt uten nødvendigvis å samle inn dataene på nytt. Video-ID og innsamlingstidspunkt gjør det lettere å organisere gjentatte innsettinger og skille nye øyeblikksbilder fra gamle.

Slik legger du til KI: sortering, ikke erstatning av kilden

Når arkivet har samlet mange beskrivelser, kan en modell hjelpe med å gruppere videoer etter tema, finne formuleringer som går igjen, og lage korte forklaringer til redaktøren. Gi modellen et begrenset sett med felt: søkeord, beskrivelse, publiseringsdato og offentlige tellere. Be den returnere strukturerte kategorier og en kort begrunnelse, ikke bastante påstander om årsakene til popularitet som dataene ikke underbygger.

Lagre modellresultatet i egne kolonner, for eksempel ai_topic, summary og review_status. Ikke overskriv originalbeskrivelsen eller API-verdiene. Hvis instruksjonen eller modellen endres, bør du kunne behandle de lagrede oppføringene på nytt. Derfor er det nyttig å lagre promptversjon og klassifiseringsdato.

En praktisk oppgave for modellen er å foreslå temagrupper for redaktøren, som «raske oppskrifter», «sammenligning av apparater» og «nybegynnerfeil». Analytikeren kontrollerer deretter noen eksempler i hver gruppe via lenkene og justerer ordlisten. En slik human-in-the-loop-prosess gjør KI til et hjelpemiddel for å navigere i materialet, samtidig som de etterprøvbare originalobservasjonene forblir tilgjengelige.

Ikke la modellen erklære en årsakssammenheng mellom format og rekkevidde på grunnlag av et lite søkeutvalg. En slik konklusjon krever en forhåndsdefinert metode, sammenlignbare publikasjoner og tilleggsdata. I praktisk redaksjonelt arbeid er det nok å rangere kandidater for gjennomgang, lage hypoteser om tilbakevendende temaer og sette opp en liste med lenker for manuell vurdering.

Utvalgets kvalitet og grensene for konklusjonene

Datastrømmen lagrer svarene som er hentet med bestemte søk og parametere. Den hjelper deg med å sammenligne disse observasjonene, men søkeutvalget er begrenset av det konkrete søket, innsamlingstidspunktet, innstillingene og tjenestens svar. Formuler derfor konklusjonene presist: «Blant resultatene vi fikk for søk X i ukens øyeblikksbilder, forekom tema Y oftere» — ikke «TikTok som helhet snakker om Y nå».

Sammenlign bare serier med like innstillinger: samme region, sorteringsparametere, publiseringsperiode og antall forespurte resultater. Hvis du endrer søket eller filteret, må du merke det som en ny serie. For analyse av sesongvariasjoner eller kampanjer er det nyttig å lagre konfigurasjonsversjonen, ellers kan endrede inndata se ut som en endring i innholdet.

Offentlige målinger kan oppdateres mellom øyeblikksbilder, og videoene kan være publisert på ulike tidspunkter: En nylig publisert video og en eldre video er på ulike stadier i oppbyggingen av reaksjoner. Ta hensyn til publiseringsdato og observasjonsintervall når du sammenligner resultater. Sammenlign publikasjoner som er omtrent like gamle, eller analyser utviklingen for samme ID i påfølgende øyeblikksbilder.

Hvis prosjektet gjelder konkurrenter eller skapere, bør innsamlingen begrenses til formålet og til dataene som er strengt nødvendige. Ikke samle inn sensitiv informasjon, og ikke bruk offentlige målinger til å vurdere skaperens person. For en rapport til markedsføringsteamet holder det vanligvis med lenke, beskrivelse, profilnavn, publiseringstidspunkt og aggregerte målinger. Før automatisering bør du kontrollere gjeldende plattformvilkår, organisasjonens krav og reglene for datalagring.

Praktisk sjekkliste før oppstart

  • Formuler forretningsspørsmålet: Hvilke temaer, formater eller publikasjoner vil du oppdage?
  • Begynn med noen få stabile søkefraser, og hold skrivemåten konsekvent.
  • Kontroller ruten /searchVideo, det obligatoriske keyword og de øvrige parameterne i dokumentasjonen.
  • Lagre nøkkelen i en miljøvariabel, og utelat den fra utskrift, logger og repository.
  • Kontroller svarenes ytre status og at tiktok-objektet finnes.
  • Behandle både aweme_list og search_item_list[].aweme_info.
  • Lagre rå JSON før normalisering.
  • La manglende felt stå tomme; ikke erstatt dem med null.
  • Match publikasjoner etter aweme_id, og send markøren videre uten å endre den.
  • Registrer innsamlingsdato og søkeparametere for hvert øyeblikksbilde.
  • Kontroller flere videoer manuelt før du trekker konklusjoner eller sender resultatene til en modell.

Dette får du til slutt

Når løsningen er satt opp, får teamet en gjentakbar prosess: En liste med søk kjøres etter en tidsplan, hvert svar lagres som original-JSON, og normaliserte observasjoner legges til i en CSV-fil. Analytikeren kan se hvilke videoer som er nye i arkivet, gå tilbake til lenke og beskrivelse, sammenligne tilgjengelige offentlige tellere på tvers av øyeblikksbilder og lage temagrupper.

For redaktøren blir resultatet ikke en automatisk dom over «den største trenden», men en kort liste med kandidater som kan kontrolleres: nye publikasjoner, videoer med merkbare endringer i målingene og tilbakevendende tematiske formuleringer. Dette forkorter veien fra manuelle søk til diskusjon av et tema og gir et etterprøvbart grunnlag for å avgjøre hva som bør inn i innholdsplanen.

Du kan begynne med ett søk, en daglig lokal kjøring og en CSV-fil. Når du har kontrollert at utvalget passer til oppgaven, kan du legge til tidsplan, database eller klassifisering av beskrivelser. Dokumenterte parametere og rutefunksjoner kan kontrolleres i TikTok API-dokumentasjonen, og informasjon om tilgang og produktet finnes på siden for TikTok Scraper API jsonscraper.

People

No people listed for this article yet.

Keep readingOvervåking av TikTok-hashtagger med Python: et fungerende API-kall
Read the next article

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