jsonscraper
Marknader
Tillbaka till journalen

TikTok: gör sökresultaten till en veckolista över supportämnen

Ett Python-skript samlar in hittade videor, normaliserar två varianter av API-svaret och skapar en tabell för manuell märkning av kundfrågor.

Redaktionella riktlinjer Rapportera ett fel

Supportteamet behöver en lista över offentliga TikTok-videor där människor diskuterar en oklar funktion eller ställer frågor om en produkt. Manuell sökning är svår att upprepa på samma sätt, och sök-API:ets svar kan lagra videor på olika ställen i JSON. Nedan finns ett enkelt Python-skript som hämtar resultat med nyckelord, slår ihop de båda strukturerna, tar bort dubbletter utifrån ID och sparar de hittade posterna i en CSV-fil.

Det här ger skriptet

Resultatet blir en tabell med videons ID, länk, beskrivning, publiceringstid, skapare och tillgängliga reaktionsräknare. Support- eller marknadsteamet kan manuellt markera vilka ämnen som kräver ett svar, en uppdatering av instruktioner eller en kontroll i det egna CRM-systemet. Tabellen återger de API-resultat som kom tillbaka för de angivna sökningarna. Se den som ett arbetsurval för genomgång, inte som en fullständig katalog över alla diskussioner.

Artikel: TikTok: gör sökresultaten till en veckolista över supportämnen
Sammanfattning: Ställ in återkommande insamling av TikTok-videor utifrån produktsökningar och få en deduplicerad CSV med länkar, beskrivningar och tillgängliga offentliga mätvärden. Listan hjälper supportteamet att gå igenom ämnen som bör kontrolleras mot befintligt material och kundärenden.
Bildroll: omslagsbild — huvudidén
Avsnitt: Det här ger skriptet
Visuellt motiv: redaktionellt foto, fysiskt
Återkommande videor i sökresultaten samlas i en granskningsbar kö över supportämnen.© jsonscraper · skapad med AI

Skriptet hanterar insamling och en första sortering. Det avgör inte automatiskt om en beskrivning är en fråga, ett klagomål eller ett skämt. Lägg hellre till en etikett efter manuell granskning eller med en separat klassificerare, och dokumentera originaltexten och skälet till beslutet.

Vad som ska sökas och hur svaret är uppbyggt

För videosökning dokumenterar jsonscraper GET-rutten /searchVideo på värden https://tiktok.evelode.com. Den obligatoriska parametern är keyword. Du kan även ange count, region, sortering, publiceringsperiod och en markör för nästa sida. Du kan till exempel upprepa sökningen med flera förutbestämda fraser: ett funktionsnamn, en vanlig formulering av ett fel och en kort fråga om en inställning. Parametrarna och tillåtna värden listas i TikTok API-referensen.

Sökningen har en viktig egenskap som parsern måste hantera: arrayen aweme_list kan vara tom, medan de hittade objekten i stället finns i search_item_list, med aweme_info inuti varje objekt. Därför kontrollerar hanteraren nedan båda strukturerna. Exempel på ett svar och fält som observerades vid kontrollen den 25 oktober 2026 finns i jsonscrapers primära specifikation. Statistikfält kan saknas, så koden hittar inte på värden.

Förbered nyckeln och söklistan

Spara nyckeln i miljövariabeln JSONSCRAPER_TIKTOK_LICENSE_KEY i stället för i källfilen. I ett Linux- eller macOS-skal kan du göra så här:

export JSONSCRAPER_TIKTOK_LICENSE_KEY="din_nyckel"

Installera förfrågningsbiblioteket och skapa filen queries.txt med ett sökuttryck per rad, till exempel produktnamn inställning och funktionsnamn fungerar inte. Välj formuleringar utifrån målgruppens språk och håll dem i en separat lista, så att de veckovisa utdragen jämför samma sökningar.

python -m pip install requests

Samla in och normalisera hittade videor

Exemplet fungerar med Python 3.8 eller senare. Det gör en förfrågan per fras med en resultatgräns, kontrollerar HTTP-fel och API:ets övergripande status och sparar sedan bara fält som faktiskt finns. Dubbletter slås ihop utifrån aweme_id, och alla sökningar där videon hittades sparas i fältet keywords. Det separata fältet collected_at_utc registrerar när uppgifterna hämtades, så att senare körningar kan jämföras.

Artikel: TikTok: gör sökresultaten till en veckolista över supportämnen
Sammanfattning: Ställ in återkommande insamling av TikTok-videor utifrån produktsökningar och få en deduplicerad CSV med länkar, beskrivningar och tillgängliga offentliga mätvärden. Listan hjälper supportteamet att gå igenom ämnen som bör kontrolleras mot befintligt material och kundärenden.
Bildroll: stödillustration 2 — en annan specifik aspekt
Avsnitt: Samla in och normalisera hittade videor
Diagrammet visar båda strukturerna för söksvaret, hur söketiketter slås ihop och hur insamlingstiden registreras före export till CSV.© jsonscraper · AI-genererad illustration
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("Ange JSONSCRAPER_TIKTOK_LICENSE_KEY")


def get_items(tiktok):
    """Extraherar videor från båda dokumenterade formerna av söksvaret."""
    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-status misslyckades för sökningen:", 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("Antal sparade unika videor:", len(videos))

Förfrågan skickas med parametern params, så att biblioteket kodar textfraserna korrekt i URL:en. Nyckeln skickas däremot som en query-parameter, enligt dokumentationen. Skriv inte ut hela förfrågnings-URL:en i programmets logg. För felsökning kan du spara HTTP-svarskod, sökfras och starttid, men uteslut hemligheter och personuppgifter som inte behövs för uppgiften.

Så läser du CSV-filen utan att dra förhastade slutsatser

Kolumnen keywords innehåller alla fraser där videon hittades; collected_at_utc skiljer insamlingstid från publiceringstid. ID:t är praktiskt för deduplicering, och länken gör det möjligt för en person att kontrollera resultatet. En tom räknare betyder att fältet saknades i det aktuella svaret, inte att värdet var noll.

Lägg till kolumnerna ämne, signaltyp, svar behövs och länk till internt material i en arbetskopia av CSV-filen för den första sorteringen. Ämnesalternativen bör motsvara din produkt, till exempel installation, betalning, kompatibilitet eller felsökning. Då blir utdraget en granskningskö, samtidigt som det går att kontrollera beslutet mot den ursprungliga videon.

Schemalägg insamlingen

Kör först skriptet manuellt och kontrollera några rader och länkar. Lägg sedan till det i cron, ett CI-jobb eller ett automatiseringsflöde som kan köra en Python-process. För regelbundna rapporter sparar du varje utdrag separat eller lägger till rader i en lagring med videons ID och ögonblicksbildens datum som unik nyckel. Då kan teamet skilja nya hittade inlägg från upprepade observationer och följa hur tillgängliga räknare förändras mellan körningarna.

Parametern cursor är avsedd för att bläddra vidare i resultaten och ska skickas vidare från föregående anrop. Paginering ingår avsiktligt inte i den här minimala versionen: ett begränsat antal sökningar är enklare att kontrollera och återskapa. Om du lägger till sidor ska du lagra markören utan att tolka den, sluta när det inte finns någon fortsättning och sätta en övre gräns för antalet anrop per körning. API-förfrågan returnerar ett urval; tolka inte antalet rader som att hela TikTok har täckts.

Praktiska begränsningar

Sökresultat passar för att hitta videor utifrån formuleringar som teamet redan känner till. De hjälper till att samla in material för klassificering, men ersätter inte inkommande kundärenden, analys av den egna webbplatsen eller granskning av videons sammanhang. Beskrivningen kanske inte fångar videons innehåll, och tillgängliga mätvärden speglar uppgifterna när de hämtades. Håll ämnesetiketter och slutsatser åtskilda från originalfälten, så att medarbetare kan ompröva klassificeringen.

Innan du startar regelbunden bevakning bör du bestämma vem som får tillgång till utdraget, hur länge uppgifterna sparas och i vilket syfte offentliga uppgifter används. Spara bara fält som behövs för produktgranskningen och föredra länkar till originalinläggen framför att kopiera mediefiler. Läs sidan om TikTok Scraper API och dokumentationen för sökrutten om du vill undersöka och kontrollera tillgängliga integrationsalternativ.

Personer

Inga personer listade för denna artikel ännu.

Fortsätt läsaSå kontrollerar du TikTok-leads på IG före CRM
Läs nästa artikel

Gör det du läser till en fungerande integration

Utforska jsonscrapers API:er för social data, testa anrop och bygg nästa arbetsflöde.

Utforska API:er