Om kunder diskuterar din produkt på TikTok kan en sökning på varumärket ge teamet underlag för en lista över återkommande frågor. Det praktiska resultatet är en CSV-fil med videobeskrivning, skapare, länk och tillgängliga reaktionssiffror. Filen kan lämnas till supportpersonal eller användas som indata för ämnesklassificering.

Vi utgår från frågan ”hur använder man kaffemaskinen Acme?”. Skriptet nedan gör en sökning på TikTok, hämtar videor från två dokumenterade varianter av svarstrukturen och sparar resultaten. Därefter granskar teamet beskrivningarna manuellt, slår ihop liknande formuleringar och omvandlar dem till FAQ-ämnen eller tips för produktsidan.
Varför göra om sökresultaten till en tabell?
Det är svårt att granska sökresultat manuellt på nytt: man måste leta upp resultaten igen, och anteckningar blir ofta kvar i webbläsaren eller en chatt. En sparad tabell ger en gemensam arbetslista där varje post har ett video-ID, en länk, en beskrivning, en skapare och tillgängliga mätvärden. En ny körning kan schemaläggas, och ett JSON-arkiv gör det möjligt att ta reda på exakt vad API:et returnerade vid en viss körning.
Det är viktigt att känna till metodens begränsning: sökningen returnerar träffar för frågan, inte en garanterat komplett katalog över alla omnämnanden. Tabellen passar därför för att hitta exempel och följa återkommande frågor. Slutsatser om frekvens bör stödjas av upprepade körningar och manuell granskning.
Vad sökningen returnerar
Enligt dokumentationen för TikTok Scraper API tar sökvägen /searchVideo emot den obligatoriska parametern keyword. Bland parametrarna som också stöds finns count, cursor, date_posted, sort_by och region. För det här exemplet räcker det med en sökterm och ett antal resultat.
Svaret innehåller en övergripande status och objektet tiktok. I det verifierade schemat kan videor finnas i aweme_list eller i posterna i search_item_list under fältet aweme_info. Koden hanterar båda formerna och hämtar bara fält som faktiskt finns. Beroende på resultatet kan posten innehålla video-ID, beskrivning, länk, skaparens namn och ID, publiceringsdatum samt antal visningar, gilla-markeringar, kommentarer och delningar.
En enkel insamlare i Python
Installera biblioteket för HTTP-förfrågningar och ange nyckeln i miljövariabeln JSONSCRAPER_TIKTOK_LICENSE_KEY. Koden fungerar med Python 3.8 eller senare. Den sparar det ursprungliga svaret i JSON och normaliserade rader i CSV. Hemligheten skickas med förfrågan men skrivs inte ut på skärmen.
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 returnerade en oväntad övergripande status")
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)
# Ta bort dubbletter och behåll den första förekomsten.
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"Sparade rader: {len(unique)}")
Installera beroendet med kommandot python -m pip install requests. Om ett fält saknas i en viss post lämnar koden motsvarande cell tom. Det är särskilt viktigt för mätvärden: ett tomt värde betyder att fältet inte fanns i svaret och ersätts inte med noll.
Så gör du CSV-filen till en användbar frågelista
Det första steget är att filtrera beskrivningarna efter innehåll. Du kan söka efter ord som ”hur”, ”varför”, ”fungerar inte”, modellnamnet och vanliga benämningar på delar. Filtret skapar en kö för redaktionell granskning, men avgör inte i sig vad skaparen menade: ett varumärkesomnämnande kan vara en recension, ett skämt eller en fråga om kompatibilitet.
Om du grupperar innehållet efter ämne kan du skicka en klassificerare endast de textfält som behövs: beskrivningen och, om uppgiften kräver det, en avidentifierad postidentifierare. Be den returnera fasta kategorier, till exempel ”första start”, ”rengöring”, ”kompatibilitet”, ”fel” och ”köp”. Spara originalbeskrivningen tillsammans med kategorin så att en medarbetare kan kontrollera klassificeringen och rätta eventuella misstag.
En arbetsrapport kan innehålla ämne, antal hittade exempel, länkar till några illustrativa videor och en separat kolumn för ”granskad av människa”. Antalet exempel i den insamlade mängden beskriver resultaten för just den sökningen och insamlingsperioden; det motsvarar inte andelen av alla kunder som upplever problemet.
Sidnumrering och regelbundna körningar
Om du behöver nästa resultatsida anger dokumentationen cursor som parameter för sidnavigering: skicka vidare cursorn från det föregående svaret i nästa förfrågan. Behandla den som en ogenomskinlig token och avsluta genomgången när svaret inte längre innehåller resultat eller API:et meddelar att det inte finns någon nästa sida. För en avgränsad pilot är det rimligt att börja med en enda sökning, kontrollera resultatens sammansättning och först därefter lägga till sidnavigering.
Om insamlingen ska ske regelbundet kan du schemalägga skriptet med operativsystemets schemaläggare eller CI. Spara en separat JSON-fil för varje körning och lägg till insamlingstid i tabellen. När historiken växer kan du deduplicera poster med video-ID, men spara upprepade ögonblicksbilder separat om du vill följa hur mätvärden förändras. Det är bara meningsfullt att jämföra mätvärden om det finns flera ögonblicksbilder av samma post.
Förvara nyckeln i CI-systemets hemlighetshanterare eller som en miljövariabel, begränsa åtkomsten till arkivet och ange en intern lagringstid. Kontrollera vilka fält som klassificeringssystemet faktiskt behöver innan du överför material. Det minskar onödig kopiering av användardata och förenklar åtkomstkontrollen.
Vilket resultat får teamet?
Efter körningen har du ett arkiv med det ursprungliga svaret och en CSV-fil med hittade videor och tillgängliga fält. Supportteamet kan kontrollera länkar och samla återkommande frågor; marknadsföringsteamet kan se hur målgruppen beskriver sina behov; analytikern kan upprepa insamlingen och jämföra observationer från olika datum.

Börja med en avgränsad sökning på produktnamnet och ett specifikt problem, granska 20–30 poster manuellt och justera kategoriernas ordlista. Därefter kan du lägga till flera ämnessökningar, schemaläggning och export till ett kalkylblad eller en databas. Funktioner och parametrar beskrivs i beskrivningen av TikTok Scraper API; kontrollera den valda sökningen innan du bygger en bredare bevakning.