jsonscraper

Övervaka TikTok-hashtaggar med Python: ett fungerande API-anrop

Kontrollera slutpunkt och parametrar i Postman, spara API-svar och bygg en historik över observationer baserad på verifierade data.

Redaktionella riktlinjer Rapportera ett fel

Marknadsföringsteamet märker att videor om en ny produkt dyker upp på TikTok, men det är svårt att manuellt kontrollera flera hashtaggar varje dag. För att kunna jämföra inlägg och synliga mätvärden över tid behövs en återkommande insamling med tidsstämpel, arkiv över de ursprungliga svaren och kontroll av förändringar.

Artikel: Övervaka TikTok-hashtaggar med Python: ett fungerande API-anrop
Sammanfattning: En praktisk guide till insamling av offentliga TikTok-videor efter hashtag: verifiera slutpunkten, skicka förfrågningar med Python, arkivera JSON och hantera bekräftade svarsfält.
Bildens roll: omslag – huvudidén
Avsnitt: 
Visuellt motiv: Redaktionellt stilleben med en utskriven tidslinje för sociala medier bredvid en smartphone som visar ett generiskt kortvideoflöde för hashtaggar, färgade hashtagkort och daterade JSON-observationer
© jsonscraper · AI-genererad illustration

För en sådan prototyp passar TikTok Scraper API från jsonscraper: på produktsidan listas slutpunkter för hashtaggar, användare, videor och sökning. Första steget är att kontrollera den aktuella slutpunkten och svarsformatet i Postman och sedan överföra den verifierade konfigurationen till Python. På så sätt går det att bygga en återkommande process och bara hämta de fält som faktiskt finns i svaret.

Uppgiften: se utvecklingen, inte bara en populär video

Ett enskilt inlägg med många visningar kan väcka uppmärksamhet, men för kampanjplanering är det mer användbart att förstå hur många nya videor som upptäcks inom ett ämne och hur offentliga mätvärden förändras för redan hittade inlägg. En webbutik med sportprodukter kan till exempel vilja bedöma flödet av videor om en viss typ av träning innan den tar fram relaterat kampanjmaterial.

Manuell kontroll försvårar jämförelser: resultatlistan förändras, mätvärden ackumuleras och medarbetare kan registrera dem i olika format. Om varje körnings ögonblicksbild sparas tillsammans med insamlingstid och den ursprungliga JSON-filen får teamet en historik över sina egna observationer och kan bearbeta data på nytt om analysschemat ändras.

Automatiseringen består av flera steg: kontrollera slutpunkt och parametrar, begära data enligt ett schema, spara svaret, verifiera dess struktur och sedan hämta de fält som behövs. Den resulterande tabellen kan användas för diagram, ämnesklassificering eller rapportering.

Vad API-dokumentationen bekräftar

På sidan TikTok Scraper API anges basadressen https://tiktok.evelode.com och slutpunkterna i Hashtag-klassen listas: GET /getHashtagInfo, GET /getHashtagFeed och GET /getHashtagFeedByID. Sidan visar också ett exempel på en förfrågan till en annan slutpunkt med parametern license_key och beskriver hur nyckeln konfigureras i en Postman-samling.

För GET /getHashtagFeed anger den officiella specifikationen för slutpunkter den obligatoriska parametern query (hashtag-URL eller taggnamn) samt de valfria parametrarna cursor, count, region och cache_timeout. Flödessvaret förväntas innehålla en array i tiktok.aweme_list. Bland de listade fälten för varje objekt finns aweme_id, desc, create_time, share_url, författardata och statistics. Enskilda fält kan saknas, så kontrollera den faktiska JSON-filen innan du bearbetar den.

I jsonscrapers Postman-samling kan du enkelt göra en testförfrågan, jämföra det faktiska svaret och hämta ett testexempel för senare kodkontroller. För autentisering skickas license_key; förvara nyckeln i en miljövariabel och skriv inte ut den i loggar.

Kontrollera först förfrågan i Postman

Börja med en testhashtag. Välj hashtagflödets slutpunkt i samlingen, ange license_key på det sätt som anges i dokumentationen och skicka taggnamnet i query. Lägg vid behov till count och landskoden i region. Skicka förfrågan och kontrollera HTTP-statusen, toppnivåfältet status och innehållet i tiktok.aweme_list.

Spara ett lyckat svar som en testfil i JSON-format. Kontrollera att den innehåller inläggets ID, beskrivning, publiceringstid, länk och statistik. Ta bara med ett fält i analysschemat efter att du har bekräftat att det returneras med rätt datatyp.

Förvara API-nyckeln i en miljövariabel i stället för i källfilen. Om nyckeln skickas i URL:en ska du maskera den när förfrågan loggas, så att hela adressen inte hamnar i loggarna.

En Python-klient för förfrågningar och arkivering

Slutpunkten och parameternamnen nedan följer den publicerade specifikationen: hashtaggen anges med query och autentiseringen sker med license_key. Exemplet är kompatibelt med Python 3.8+ och sparar det ursprungliga svaret tillsammans med metadata om körningen.

import json
import os
from datetime import datetime, timezone
from pathlib import Path

import requests

BASE_URL = "https://tiktok.evelode.com"
API_KEY = os.environ["JSONSCRAPER_TIKTOK_LICENSE_KEY"]


def fetch_hashtag_feed(hashtag: str) -> dict:
    params = {
        "license_key": API_KEY,
        "query": hashtag,
        "count": 20,
    }
    response = requests.get(
        f"{BASE_URL}/getHashtagFeed",
        params=params,
        timeout=45,
    )
    response.raise_for_status()
    payload = response.json()
    if payload.get("status") != "ok":
        raise RuntimeError("API:et returnerade en annan status än ok")
    return payload


def archive_response(hashtag: str, payload: dict) -> Path:
    collected_at = datetime.now(timezone.utc).isoformat()
    safe_tag = hashtag.lstrip("#").replace("/", "_")
    output_dir = Path("data/raw") / safe_tag
    output_dir.mkdir(parents=True, exist_ok=True)

    filename = datetime.now(timezone.utc).strftime("%Y%m%dT%H%M%SZ.json")
    file_path = output_dir / filename
    file_path.write_text(
        json.dumps(
            {
                "hashtag": hashtag,
                "collected_at": collected_at,
                "response": payload,
            },
            ensure_ascii=False,
            indent=2,
        ),
        encoding="utf-8",
    )
    return file_path


if __name__ == "__main__":
    tag = "#exempelämne"
    payload = fetch_hashtag_feed(tag)
    saved_path = archive_response(tag, payload)
    print(f"Arkivet sparades: {saved_path}")

Ange miljövariabeln JSONSCRAPER_TIKTOK_LICENSE_KEY innan du kör skriptet. Förfrågan använder det verifierade fältet query och begränsar antalet begärda objekt med count. Svaret kontrolleras både på HTTP-nivå och genom JSON-statusen; arkivet sparar de faktiska uppgifterna för senare bearbetning. Testa med en hashtag innan du lägger till schemaläggning och analys.

Så lägger du till normalisering utan sköra antaganden

Dokumentationen anger att flödessvaret innehåller arrayen tiktok.aweme_list. Kontrollera att tiktok är ett objekt och att aweme_list är en lista innan du omvandlar svaret. Hämta endast verifierade fält för varje objekt, till exempel aweme_id, desc, create_time, share_url och värden från statistics, om de finns.

Den interna tabellen kan innehålla den efterfrågade hashtaggen, insamlingstid, video-ID och utvalda mätvärden. Spara ett tomt värde för ett valfritt mätvärde eller ett mätvärde som saknas: ett saknat mätvärde är inte samma sak som ett uppmätt nollvärde. Förvara de ursprungliga svaren separat så att tabellen kan byggas om utan en ny förfrågan.

Om svarsformatet ändras ska typkontrollen stoppa felaktig bearbetning och skapa ett diagnostiskt meddelande. Spara testfilen i JSON-format tillsammans med parserns test så att du kan kontrollera att den nya kodversionen fortfarande hanterar det kända schemat.

Mätvärden baserade på upprepade observationer

Om svaret innehåller räknare ska varje observation sparas med en tidsstämpel. Jämför värdena för ett inlägg mellan två körningar och beräkna den observerade förändringen under intervallet. Använd aweme_id, som anges i specifikationen, för matchningen och kontrollera att det finns i varje objekt.

Antalet inlägg som upptäckts för första gången under en dag kan räknas utifrån resultaten från dina körningar. Det här mätvärdet beskriver flödet som returnerats av specifika förfrågningar med givna parametrar och ett bestämt schema. Det gör det möjligt att jämföra egna ögonblicksbilder om insamlingsmetoden förblir konsekvent.

En grundläggande rapport kan visa antalet nyupptäckta inlägg per dag, fördelningen av tillgängliga räknare och förändringar i värden för videor som hittats på nytt. Lägg till förfrågningens tid och källfilens namn så att analytikern kan kontrollera varje posts ursprung.

Schemaläggning och felhantering

När förfrågan och tolkningen har testats kan du köra skriptet enligt ett schema, till exempel med cron, GitHub Actions eller en dataorkestrerare. Lägg hashtaglistan i en separat konfiguration så att ämnen kan läggas till och tas bort utan att klientlogiken behöver ändras.

Ställ in en tidsgräns för automatiserade körningar, ett begränsat antal återförsök vid tillfälliga nätverksfel och loggning av HTTP-status och förfrågningens varaktighet. Skriv inte nyckeln i loggen. Vid tolkningsfel ska du spara säker diagnostisk information och meddela den ansvariga medarbetaren.

Specifikationen stöder paginering med parametern cursor för hashtagflödet. Om paginering behövs ska du spara markören från svaret och skicka den oförändrad i nästa förfrågan. Bearbeta bara returnerade resultat och kontrollera has_more, om fältet finns. Om förfrågningar för flera hashtaggar returnerar samma inlägg väljer du en dedupliceringsnyckel utifrån uppgiften: antingen räkna inlägget separat för varje hashtag eller bara räkna unika videor.

Klassificering och automatiserade rapporter

När du har fått verifierade rader kan du klassificera videobeskrivningar efter angivna ämnen: fältet desc ingår i objektets schema. En modell kan gruppera inlägg efter format, till exempel instruktioner, recensioner eller användarerfarenheter. Spara originaltexten, etiketten, instruktionens version och resultatet, och skicka osäkra fall till en människa för granskning.

Beräkna numeriska mätvärden med vanlig kod så att upprepade körningar ger reproducerbara resultat. En klassificerare är användbar för textbearbetning; den slutliga rapporten bör koppla slutsatserna till specifika rader och observationsdatum.

I ett no-code-flöde kan samma steg kopplas samman i ett automatiseringsverktyg: schemaläggning, en HTTP-förfrågan med verifierad konfiguration, svarskontroll, lagring av JSON, omvandling av bekräftade fält och felmeddelande. Verifiera först kontraktet i Postman och flytta det sedan till Python, n8n eller Make.

Förväntat resultat och nästa steg

När konfigurationen är klar har teamet ett arkiv med API-svar och en observationstabell för utvalda hashtaggar. Dessa gör det möjligt att hitta nya inlägg, jämföra tillgängliga mätvärden över tid och välja material för en mer ingående analys. Spara ett enhetligt schema, samma parametrar för förfrågningarna och konsekventa normaliseringsregler för att få jämförbara resultat.

Börja med en slutpunkt och ett verkligt svar: skicka en förfrågan till /getHashtagFeed med parametern query, spara JSON-filen och lägg sedan till fälttolkning och schemaläggning. Sidan TikTok Scraper API visar basadressen och översikten över slutpunkterna, och specifikationen för slutpunkter innehåller parameternamnen för klientimplementationen.

People

No people listed for this article yet.

Keep readingSå arkiverar du TikToks sökresultat med Python
Read the next article

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