jsonscraper

TikTok Scraper API: TikTok-videotiedot JSON-muodossa jsonscraperilla

Käytännön aloitus getVideoByID-reitillä, JSON-tarkistuksella ja avaimen käsittelyllä cURLissa ja Pythonissa.

Jos sovellus tarvitsee tietoja tietystä TikTok-videosta, kannattaa aloittaa yhdellä pyynnöllä ja tarkistaa, mitä tietoja se palauttaa. Sen jälkeen vastauksen voi validoida ja valmistella tallennusta tai analytiikkaa varten.

jsonscraperin TikTok Scraper API -sivulla luetellaan reitit videoille, käyttäjille, haulle, hashtageille, musiikille ja muuntyyppisille tiedoille. Alla käsittelemme dokumentoitua getVideoByID-pyyntöä ja tapoja käsitellä sen vastaus turvallisesti. Esimerkit perustuvat palveluntarjoajan aineistoihin; testaa ne ennen käyttöä voimassa olevalla avaimella ja ajantasaisen dokumentaation avulla.

Ensimmäinen pyyntö: hae videon tiedot

Kannettava tietokone, jossa on koodia, ja kasvi kahvilassa
James Harrison

Postmanin getVideoByID-dokumentaatiossa ilmoitetaan GET-metodi ja video_id-parametri. Esimerkissä näkyvät myös region ja cache_timeout. Palvelusivulla julkaistu perusosoite on https://tiktok.evelode.com.

Esimerkkipyyntö cURLilla:

export JSONSCRAPER_LICENSE_KEY="oma_avaimesi"

curl --get "https://tiktok.evelode.com/getVideoByID" \
  --data-urlencode "video_id=7106855913906081070" \
  --data-urlencode "license_key=$JSONSCRAPER_LICENSE_KEY" \
  --data-urlencode "region=US"

Esimerkin tunniste on peräisin julkaistusta pyynnöstä. Korvaa se sen videon tunnisteella, jonka haluat tarkistaa. Säilytä avain ympäristömuuttujassa tai salaisuuksien hallintapalvelussa: älä lisää sitä julkiseen repositorioon, asiakaspuolen JavaScriptiin tai lokitietoihin.

Postman kuvaa region-parametrin aluekoodiksi ja ilmoittaa oletusarvoksi US. cache_timeout-parametrin dokumentaatiossa oletusarvoinen välimuistiaika on 3600 sekuntia; arvo 0 poistaa välimuistin käytöstä. Jos parametri on tarpeen käyttötapauksessasi, voit välittää sen erikseen:

curl --get "https://tiktok.evelode.com/getVideoByID" \
  --data-urlencode "video_id=7106855913906081070" \
  --data-urlencode "license_key=$JSONSCRAPER_LICENSE_KEY" \
  --data-urlencode "region=US" \
  --data-urlencode "cache_timeout=0"

Tämä on reitille julkaistujen parametrien sovellus, ei tae siitä, että kaikki vastaukset olisivat rakenteeltaan samanlaisia tai että välimuistin poistaminen käytöstä sopisi jokaiseen tehtävään. Tarkista valtuutus ja parametrit ajantasaisesta kokoelmasta ennen käyttöönottoa: Postman voi välittää avaimen määritettynä API-avaimena, kun taas yllä oleva cURL-esimerkki näyttää sen URL-parametrina.

Sama pyyntö Pythonilla

Alla on versio Pythonin vakiokirjastolla. Se muodostaa GET-pyynnön, välittää parametrit ja käsittelee verkkovirheen, HTTP-virheen sekä virheellisen JSONin.

import json
import os
from urllib.error import HTTPError, URLError
from urllib.parse import urlencode
from urllib.request import Request, urlopen

base_url = "https://tiktok.evelode.com/getVideoByID"
license_key = os.environ.get("JSONSCRAPER_LICENSE_KEY")

if not license_key:
    raise RuntimeError("Aseta ympäristömuuttuja JSONSCRAPER_LICENSE_KEY")

params = {
    "video_id": "7106855913906081070",
    "license_key": license_key,
    "region": "US",
}

url = f"{base_url}?{urlencode(params)}"
request = Request(url, method="GET")

try:
    with urlopen(request, timeout=30) as response:
        status_code = response.status
        payload = json.loads(response.read().decode("utf-8"))
except HTTPError as error:
    print(f"HTTP-virhe: {error.code}")
    raise
except URLError as error:
    print(f"Verkkovirhe: {error.reason}")
    raise
except json.JSONDecodeError:
    raise RuntimeError("Palvelun vastausta ei voitu jäsentää JSONiksi")

print("HTTP-tila:", status_code)
print("Ylimmän tason avaimet:", list(payload.keys()))

Tämä on dokumentoidun pyynnön sovellus, ei esimerkki, jonka palveluntarjoaja olisi erikseen testannut Pythonilla. Se ei myöskään kuvaa kaikkia palvelun mahdollisia vastauksia. Koska avain välitetään URLissa, älä tulosta koko URLia lokiin: se voi sisältää salaisuuden.

JSON-vastauksen tarkistaminen

Postmanin julkaistussa vastauksessa on status-kenttä ja sisäkkäinen tiktok.aweme_detail-objekti, jossa on video- ja tekijätietoja. Se on esimerkki yhden vastauksen rakenteesta, ei tae skeeman muuttumattomuudesta. Voit tutustua siihen getVideoByID-vastauksen esimerkissä.

Tarkista sisäkkäisiä kenttiä luettaessa jokainen taso:

def get_video_details(payload):
    tiktok = payload.get("tiktok")
    if not isinstance(tiktok, dict):
        return None

    details = tiktok.get("aweme_detail")
    if not isinstance(details, dict):
        return None

    return details

details = get_video_details(payload)

if details is None:
    print("Vastauksessa ei ole odotettua video-objektia")
else:
    video_id = details.get("id")
    description = details.get("desc")
    author = details.get("author")

    print("Tunniste:", video_id)
    print("Kuvaus:", description)
    print("Tekijä:", author)

Kenttien nimet ovat peräisin julkaistusta esimerkistä. .get()-tarkistus ei tarkoita, että kentät olisivat pakollisia: sen avulla voidaan käsitellä vastaus, josta odotetut arvot puuttuvat. Jos sovelluksen logiikka riippuu tietystä kentästä, tarkista sen esiintyminen käyttötapauksesi vastauksissa ja varaudu siihen, että kenttä puuttuu.

Hyödyllistä on erottaa kolme tarkistusta:

  1. Siirto: tuliko HTTP-vastaus ja mikä sen tila on.
  2. Muoto: voitiinko vastausrunko jäsentää JSONiksi.
  3. Sisältö: löytyvätkö vastauksesta sovelluksen tarvitsemat tiedot.

JSONin onnistunut jäsentäminen ei vielä tarkoita, että vastaus sisältää tarvittavan objektin. Kirjaa tekniset virheet ja tarkistusten tulokset virheenmääritystä varten ja peitä avaimet.

Yhdestä pyynnöstä toimivaan käsittelyputkeen

Speedcurve Performance Analytics
Luke Chesser

Prototyyppiä varten riittää, että lähetät pyynnön ja tulostat muutaman arvon. Säännöllistä käsittelyä varten jaa työ eri vaiheisiin:

Pyyntö → tarkistus → normalisointi → duplikaattien poisto → tallennus.

  • Pyyntö. Hae vastaus dokumentoitua reittiä käyttäen ja tallenna tekninen tila erikseen.
  • Tarkistus. Varmista, että vastausrunko voidaan jäsentää JSONiksi ja että se sisältää juuri kyseisessä tehtävässä tarvittavat tiedot.
  • Normalisointi. Siirrä tarvittavat arvot omaan tietomalliisi. Älä kopioi koko sisäkkäistä rakennetta tietokantaan, jos sovellus tarvitsee vain yksittäisiä kenttiä.
  • Duplikaattien poisto. Valitse tunniste vasta tarkistettuasi, että se on saatavilla ja sopii käyttötarkoitukseesi. Älä oleta, että tunniste on aina käytettävissä kaikissa vastauksissa.
  • Tallennus. Tallenna tarvittaessa pyyntöaika ja alkuperäinen vastaus erillään normalisoidusta tietueesta. Näin voit selvittää, mitä muutoksia sovellus teki.

Nämä ovat sovelluksen rakenteeseen liittyviä suosituksia, eivät palvelulle kuuluvia ominaisuuksia. Ulkoisen vastauksen erottaminen sisäisestä tietomallista helpottaa myös muutosten käsittelyä: ongelmia voidaan etsiä tarkistus- tai normalisointivaiheesta sen sijaan, että niitä etsittäisiin kaikkialta koodista.

Määritä toistuvia pyyntöjä varten etukäteen, milloin tiedot päivitetään ja mitkä virheet kannattaa yrittää uudelleen. Rajoita uudelleenyritysten määrää: loputon silmukka ei korjaa väärää parametria tai valtuutusongelmaa.

Välimuisti ja alue

getVideoByID-reitin kuvauksessa cache_timeout-parametri määrittää välimuistiajan sekunteina: oletusarvoksi ilmoitetaan 3600 sekuntia, ja 0 poistaa välimuistin käytöstä. region-parametri kuvataan maakoodiksi; dokumentaatiossa esimerkkinä on US. Tarkista nämä tiedot ennen käyttöönottoa ajantasaisesta Postman-pyynnön dokumentaatiosta.

Välimuistiasetuksen olemassaolo ei itsessään vahvista yksittäisen vastauksen tuoreutta. Jos tuoreudella on merkitystä, tarkista toistuvien pyyntöjen tulokset oman käyttötapauksesi tiedoilla ja valitse sopiva toimintatapa.

Mitä tehtäviä voi tutkia seuraavaksi

Tuotesivulla luetellaan reittejä videoiden ja käyttäjien hakuun sekä hashtageille, sijainneille, musiikille ja trendeille. Esimerkkejä ovat searchVideo, searchHashtag, getUserFeed ja getTrendingFeed. Tämä on palveluntarjoajan julkaisema reittikartta, ei riippumaton tarkistus niistä jokaisesta. Tutki parametreja ja vastausten rakennetta kyseisen reitin dokumentaatiosta: niitä ei voi suoraan soveltaa getVideoByID-esimerkistä.

jsonscraper suosittelee Postman-kokoelman käyttöä avaimen määrittämiseen ja pyyntöjen suorittamiseen. Se voi olla kätevä tapa testata yksittäistä reittiä ennen integraation kirjoittamista. Palvelu luettelee myös automaatioskenaarioita, mutta tarkista erikseen, toimiiko tietty työnkulku omassa kokoonpanossasi. Kun viet kokoelman tai jaat sen, varmista, ettei siihen ole jäänyt toimivaa avainta.

Tarkistettavaa ennen sovelluksessa käyttöä

Tarkista pyyntö niillä videoilla ja parametreilla, joita projekti tarvitsee, ennen kuin liität sen säännölliseen prosessiin:

  • Toimiiko pyyntö voimassa olevalla avaimella ja oikealla tunnisteella.
  • Miten sovellus käsittelee virheellisen tai puuttuvan parametrin.
  • Mitä tapahtuu, jos JSON on kelvollinen mutta tarvittava kenttä puuttuu.
  • Miten HTTP-virhe, verkkohäiriö ja aikakatkaisu käsitellään.
  • Mitkä kentät sopivat tunnistamiseen ja duplikaattien poistoon juuri sinun tehtävässäsi.
  • Miten toistuvan pyynnön tulos muuttuu eri cache_timeout-arvoilla, jos käytät tätä parametria.

Kirjaa tarkistuksen päivämäärä, parametrit ilman salaisuutta sekä anonymisoitu esimerkkivastaus. Yksi onnistunut pyyntö vahvistaa vain tietyn skenaarion toiminnan tietyissä olosuhteissa; se ei todista kaikkien reittien ja vastausten vakautta.

Aloita yhdestä toistettavasta käyttötapauksesta

Testaa getVideoByID tarvittavalla videolla, tutki todellinen JSON ja kirjoita käsittelijä, joka huomioi puuttuvat kentät ja virheet. Laajenna prosessia sen jälkeen tarvittaessa normalisoinnilla, duplikaattien poistolla ja tallennuksella.

jsonscraperin dokumentaatio tarjoaa lähtökohdan: perusosoitteen ja reittikartan. Tuotantokoodissa on silti tarkistettava yksittäinen vastaus, suojattava avain ja varauduttava tilanteisiin, joissa tiedot poikkeavat odotetusta rakenteesta.

Aiheeseen liittyvät

Security · Opas

Unohtuneet API-avaimet: näin perut ne pysäyttämättä palvelua

OpenRouter kertoi löytäneensä 85 työntekijältään yli tuhat aktiivista avainta – kyse on yrityksen omasta auditoinnista, ei koko alaa kuvaavasta mittauksesta. Käymme läpi omistajien ja riippuvuuksien tarkistamisen, avainten kierrätyksen sekä avaintenhallintatyökalujen rajat.

Community Pulse · Opas

Claude Code vai Codex: vertaa työkalua omaan työhösi

Kehittäjien kokemukset Claude Codesta ja Codexista eroavat, eikä PR-tutkimus osoita yhtä yleispätevää voittajaa. Käytännöllisin tapa vertailla työkaluja on testata niitä tehtävissä ja ympäristössä, jossa todella työskentelet.

Muuta lukemasi toimivaksi integraatioksi

Tutustu jsonscraperin sosiaalisen datan rajapintoihin, testaa pyyntöjä ja rakenna seuraava työnkulkusi.

Tutki API:t