Jos asiakkaat keskustelevat tuotteestasi TikTokissa, haku brändin nimellä voi tarjota tiimille aineistoa toistuvien kysymysten kokoamiseen. Käytännön tuloksena on CSV-tiedosto, jossa on videon kuvaus, tekijä, linkki ja saatavilla olevat reaktiomäärät. Tiedoston voi välittää asiakastuen asiantuntijalle tai käyttää aiheiden luokittelun lähtöaineistona.

Otetaan esimerkiksi kysymys ”miten Acme-kahvinkeitintä käytetään”. Alla oleva skripti tekee yhden haun TikTokista, poimii videot huolellisesti kahdesta dokumentoidusta vastausrakenteesta ja tallentaa löydetyt tulokset. Sen jälkeen tiimi tarkistaa kuvaukset manuaalisesti, yhdistää samankaltaiset ilmaukset ja muotoilee niistä FAQ-aiheita tai tuotesivun vinkkejä.
Miksi haku kannattaa muuttaa taulukoksi
Hakutulosten selaaminen manuaalisesti vaikeuttaa tarkistamista myöhemmin: tulokset on etsittävä uudelleen, ja muistiinpanot jäävät usein selaimeen tai viestiketjuihin. Tallennettu taulukko tarjoaa yhteisen työlistan: jokaisella rivillä on videon tunniste, linkki, kuvaus, tekijä ja saatavilla olevat mittarit. Uudelleenhaun voi ajastaa, ja JSON-arkiston avulla voi tarkistaa, mitä API palautti tietyllä hakukerralla.
Menetelmän rajaus on tärkeä: haku palauttaa kyselyyn sopivia tuloksia, ei taattua täydellistä luetteloa kaikista maininnoista. Taulukko sopii siis esimerkkien löytämiseen ja toistuvien kysymysten seuraamiseen; esiintyvyyttä koskevia johtopäätöksiä kannattaa tukea uusintahauilla ja manuaalisella tarkistuksella.
Mitä haku palauttaa
TikTok Scraper API -dokumentaatiossa reitti /searchVideo edellyttää keyword-parametria. Tuettujen parametrien joukossa ovat myös count, cursor, date_posted, sort_by ja region. Tässä käyttötapauksessa riittävät hakusana ja tulosten määrä.
Vastaus sisältää ulomman tilan ja tiktok-olion. Tarkistetussa rakenteessa videot voivat olla joko aweme_list-kentässä tai search_item_list-kentän alkioiden sisällä aweme_info-kentässä. Koodi ottaa huomioon molemmat muodot ja poimii vain kentät, jotka ovat todella mukana vastauksessa. Tuloksesta riippuen käytettävissä ovat videon tunniste, kuvaus, linkki, tekijän nimi ja tunniste, julkaisupäivä sekä katselu-, tykkäys-, kommentti- ja jakomäärät.
Yksinkertainen Python-kerääjä
Asenna requests-kirjasto ja määritä avain ympäristömuuttujaan JSONSCRAPER_TIKTOK_LICENSE_KEY. Koodi on yhteensopiva Python 3.8:n ja uudempien kanssa. Se tallentaa alkuperäisen vastauksen JSON-tiedostoon ja normalisoidut rivit CSV-tiedostoon. Salaisuus välitetään pyyntöön, mutta sitä ei tulosteta näytölle.
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 palautti odottamattoman ulomman tilan")
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)
# Poistetaan toistot säilyttäen ensimmäisen esiintymän järjestys.
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"Tallennettuja rivejä: {len(unique)}")
Riippuvuuden voi asentaa komennolla python -m pip install requests. Jos jokin kenttä puuttuu yksittäisestä tietueesta, koodi jättää vastaavan solun tyhjäksi. Tämä on mittareiden kohdalla tärkeää: tyhjä arvo kertoo, ettei kenttää saatu, eikä sitä korvata nollalla.
Näin muutat CSV:n hyödylliseksi kysymyslistaksi
Ensimmäisessä vaiheessa kuvaukset suodatetaan sisällön perusteella. Voit etsiä sanoja, kuten ”miten”, ”miksi” ja ”ei toimi”, mallin nimeä sekä tyypillisiä osien nimiä. Suodatus muodostaa jonon toimitukselliseen tarkistukseen, mutta ei yksin kerro julkaisijan tarkoitusta: brändimaininta voi olla arvostelu, vitsi tai yhteensopivuutta koskeva kysymys.
Jos ryhmittelet sisältöä aiheittain, välitä luokittelijalle vain tarvittavat tekstikentät: kuvaus ja tarvittaessa tehtävään soveltuva anonymisoitu tietuetunniste. Pyydä luokittelemaan sisältö ennalta määrättyihin kategorioihin, kuten ”ensikäynnistys”, ”puhdistus”, ”yhteensopivuus”, ”vika” ja ”ostaminen”. Säilytä alkuperäinen kuvaus kategorian rinnalla, jotta työntekijä voi tarkistaa luokituksen ja korjata virheen.
Työraportissa voi olla aihe, löydettyjen esimerkkien määrä, linkit muutamaan havainnollistavaan videoon ja erillinen ”ihmisen tarkistama” -sarake. Kerätyn aineiston esimerkkimäärä kuvaa kyseisen kyselyn ja keruuajanjakson tuloksia; se ei vastaa niiden asiakkaiden osuutta, joilla ongelma on.
Sivutus ja säännöllinen ajo
Jos tarvitset seuraavan tulossivun, dokumentaatiossa mainitaan cursor sivutuksen parametrina: välitä edellisestä vastauksesta saatu kursorin arvo seuraavaan pyyntöön. Käsittele sitä läpinäkymättömänä tunnisteena ja lopeta haku, kun vastaus ei enää sisällä tuloksia tai API ilmoittaa, ettei seuraavaa sivua ole. Rajatussa kokeilussa on järkevää aloittaa yhdellä pyynnöllä, tarkistaa tulosten sisältö ja lisätä sivutus vasta sen jälkeen.
Voit automatisoida keruun ajamalla skriptin aikataulutetusti käyttöjärjestelmän ajastimella tai CI-putkessa. Tallenna kunkin ajon alkuperäinen JSON erikseen ja lisää taulukkoon keruuaika. Kun historiaa kertyy, poista duplikaatit videon tunnisteen perusteella, mutta tallenna erilliset tilannekuvat, jos tehtävään kuuluu muuttuvien mittareiden seuraaminen. Mittareita kannattaa verrata vain, jos samasta tietueesta on useita tilannekuvia.
Säilytä avain CI:n salaisuuksien hallinnassa tai ympäristömuuttujassa, rajoita arkiston käyttöoikeuksia ja määritä sisäinen säilytysaika. Ennen materiaalin siirtämistä luokittelujärjestelmään tarkista, mitä kenttiä se todella tarvitsee. Näin käyttäjätietoja kopioidaan vähemmän ja käyttöoikeuksien hallinta helpottuu.
Mitä tiimi saa tulokseksi
Ajosta saat alkuperäisen vastauksen arkiston ja CSV-tiedoston, jossa on löydetyt videot ja saatavilla olevat kentät. Asiakastuki voi tarkistaa linkit ja koota toistuvia kysymyksiä, markkinointi voi tarkastella, miten yleisö kuvailee tarpeitaan, ja analyytikko voi toistaa keruun sekä vertailla eri päivien havaintoja.

Aloita rajaamalla haku tuotteen nimeen ja tiettyyn ongelmaan. Tarkista 20–30 löydettyä tietuetta manuaalisesti ja tarkenna kategorioiden sanastoa. Sen jälkeen voit lisätä useita aihekohtaisia hakuja, ajastuksen ja viennin taulukkoon tai tietokantaan. Reitin ominaisuudet ja parametrit löytyvät TikTok Scraper API:n kuvauksesta; tarkista valitsemasi haku ennen laajemman seurannan rakentamista.